一、短网址服务的简介:
短网址(short URL),就是形式上比较短的网址,为了方便传输和分享。所以短网址服务就是将长网址转换为短网址的服务。
短网址服务就是提供一个非常短小的url以代替原来较长的url,用户在访问短的url时会重定义到原来的url。此服务主要用于短信,邮件等,google,微软。
二、短网址服务的工作原理:
1.基本服务流程:短网址服务器接收到提交过来的长url后,通过算法转换为短url,并将这个长网址和短网址同时存贮在数据库中。
具体而言,我们可以创建一个用于保存长网址的数据表,比如就叫Url,这张表很简单,只需要两个字段,一个主键用于保存id,一个url字段用于存放原始的长网址,每个长网址都在这张表有一条记录。当进行长网址转换时,先检查数据表中是否存在该长网址,若存在就直接获取该记录的id,否则在数据表中创建一条新记录,并返回其id。对于这个id,算法简述:一个以数字、大小写字母共62个字符的任意进制的算法:
数据库中ID递增,当ID为123,则对应短网址计算过程如下:
首先设置序列为“0123456789abcdefghijklmnopqrstuvwxyz” 其次123/36=3以及233%36= 15。所以取出序列中的第三位和第十五位:2和e
其生成之后的短网址为xx.xx/2e。
而当用户点击了我们生成的短网址后,只需要将代表多进制的这部分提取出来,还原成十进制的数字后查表即可得到原始的长网址,再根据网址做一个重定向即可让用户访问到原始的网页。
三、短网址服务隐含的漏洞:
一般短网址采用6到7位字母和数字的组合,可以被枚举和爆破。
存在危害:
爆破短网址会获取大量系统敏感信息,泄露用户的个人信息。
(1)SSRF(服务端请求伪造)安全问题:远程访问功能过滤不严谨的情况下存在SSRF漏洞,使用自定义域名绑定一个内网地址后进行访问,可以通过该短网址访问到内网地址。
(2)获取TITLE功能和展示长网址页面,在过滤不严谨的情况下造成XSS:
部分短网址服务提供了长网址TITLE的展示功能和在当前页展示长网址的功能,在过滤不严谨的情况下也会造成xss比如可以构造payload:“</title><script>alert(1)<script><title>“。
(3)sql注入问题:
进行拼接查询时会造成SQL注入。
四、短网址漏洞防御方法:
1、增加单IP访问频率和单IP访问总量的限制,超过阈值进行封禁。
2、对包含权限、敏感信息的短网址进行过期处理。
3、对包含权限、敏感信息的长网址增加二次鉴权。
来源:freebuf.com 2019-02-21 13:45:52 by: 凯信特安全团队
请登录后发表评论
注册