由参数URL想到的

瞌睡龙 2013-06-28 16:25:00

0x00 抛砖引玉


当你看到一个参数的值是url的时候你会想到什么?

结合wooyun里的案例看,可能产生的危害分为三方面:

1url重定向跳转漏洞
2底层操作类库支持其他协议导致读取本地或探测网络信息
3不支持其他协议但是没有设置网络边界

0x01 详细介绍


URL重定向跳转

url跳转漏洞的科普之前已经发过http://drops.wooyun.org/papers/58

url跳转可能集中过滤不严格的情况:

一是白名单同域下可能有其他的302跳转漏洞结合绕过。
二是单纯判断字符串中是否包含白名单域名,可用http://www.attack.com/test.com/index.php或http://www.test.com.attack.com/index.php绕过。
三是后端取host的时候跟浏览器识别的差异导致http://www.attack.com\test.com/index.php(测试除了gecko内核,其他浏览器都把attack.com当做host)可绕过。
后端如果仅仅是依靠获取/来结束的话,就会产生差异,包括php中的parse_url函数获取host的结果也是www.attack.com\test.com

底层操作类库支持其他协议导致读取本地或探测网络信息

wooyun中案例:

WooYun: 微博--微收藏多处任意文件读取漏洞

WooYun: 人人网的分享网页功能存在诸多安全漏洞

获取地址的内容输出出来,后端采用curl库,支持其他的协议,如果没有做任何过滤防范措施,可使用file协议时便可读取本地的文件,telnet探测端口信息等。

http://share.renren.com/parse_share.do?link=file:///etc/passwd
http://share.renren.com/parse_share.do?link=file:///etc/sysconfig/
http://mark.appsina.com/read.php?sid=2247&type=0&url=telnet://221.179.193.1&pos=1&from=0&gsid=3_5bc7d139d8527229d2df38b6765c6b91b8428eda66bd8c1e61b5df&vt=2

不支持其他协议但是没有设置网络边界

wooyun中案例:

WooYun: 我是如何漫游腾讯内部网络的

WooYun: 我是如何漫游搜狗和搜狐内部网络的

这两个漏洞已经对核心白帽子公开,并且厂商已经修复,就拿来做例子了。

当已经针对url做了协议控制只允许http访问时还能做什么呢?

尝试下访问内网吧

http://wap.sogou.com/tc?url=http%3A%2F%2Fno.sohu.com%2F

可以用暴力破解二级域名的工具找内网的域名跑一下试试,然后尝试访问看看是否成功~!

0x02 修复方案


加入有效性验证Token

我们保证所有生成的链接都是来自于我们可信域的,通过在生成的链接里加入用户不可控的Token对生成的链接进行校验,可以避免用户生成自己的恶意链接从而被利用,但是如果功能本身要求比较开放,可能导致有一定的限制。

设置严格白名单及网络边界

功能要求比较开放的情况下,需要严格限定协议以及可访问的网络。

评论

X

xsser 2013-06-28 16:50:31

给力啊!

梧桐雨 2013-07-01 13:48:06

原来结界师是这么打破结界的呀,学习了。(*^__^*) ~

骨灰 2014-01-13 20:30:47

膜拜高手,原来我还没有入门!

P

possible 2014-01-15 13:53:42

越看越觉得一个合格的程序员是多么的难...

枯荣 2015-08-06 16:22:48

学习了

瞌睡龙

fighting……

twitter weibo github wechat

随机分类

无线安全 文章:27 篇
网络协议 文章:18 篇
Exploit 文章:40 篇
MongoDB安全 文章:3 篇
浏览器安全 文章:36 篇

扫码关注公众号

WeChat Offical Account QRCode

最新评论

Article_kelp

因为这里的静态目录访功能应该理解为绑定在static路径下的内置路由,你需要用s

N

Nas

师傅您好!_static_url_path那 flag在当前目录下 通过原型链污

Z

zhangy

你好,为什么我也是用windows2016和win10,但是流量是smb3,加密

K

k0uaz

foniw师傅提到的setfge当在类的字段名成是age时不会自动调用。因为获取

Yukong

🐮皮

目录