搜狐首页 科技 拜见宫主大人

手机搜狐

SOHU.COM

重磅:利用麦当劳网站的漏洞获取用户密码

纯手工打造每一篇开源资讯与技术干货,数十万程序员和Linuxer已经关注。

导读本文讲述了利用不安全的加密存储(Insecure_Cryptographic_Storage)漏洞和服务端反射型XSS漏洞,实现对麦当劳网站(McDonalds.com)注册用户的密码窃取,进一步测试,还可能获取到网站注册用户的更多信息。

POC-利用反射型XSS漏洞绕过AngularJS框架沙箱

麦当劳网站McDonalds.com设置有一个搜索页面,该页面存在XSS反射型漏洞,可以返回搜索参数值,假设搜索参数q为***********-test-reflected-test-***********,对应链接:

https://www.mcdonalds.com/us/en-us/search-results.html?q=***********-test-reflected-test-***********

则执行效果如下:

麦当劳网站采用AngularJS框架,所以可以使用特殊字符在搜索区域进行返回值尝试。通过更改搜索参数q为{{$id}}之后,发现返回值对应AngularJS范围内的对应ID数字9:

Link used: https://www.mcdonalds.com/us/en-us/search-results.html?q={{$id}}

AngularJS是一个流行的Java框架,通过这个框架可以把表达式放在花括号中嵌入到页面中。例如,表达式1+2={{1+2}}将会得到1+2=3。其中括号中的表达式被执行了,这就意味着,如果服务端允许用户输入的参数中带有花括号,我们就可以用Angular表达式来进行xss攻击。

由于AngularJS工作在沙箱模式,所以使用参数{{alert(1)}}无任何返回信息,但这并不代表AngularJS沙箱没有漏洞。在 AngularJS1.6版本中,由于沙箱机制不能很好地起到安全防护目的,已经被从源码中移除。而PortSwigger还对AngularJS的各版本沙箱进行了绕过测试,并给出了相应绕过执行命令。

在这里,我们来看看McDonalds.com使用的AngularJS版本,通过在浏览器控制端输入angular.version命令:

可以发现AngularJS为1.5.3版本,参照PortSwigger的测试,我们选用

精选