![CTF实战:技术、解题与进阶](https://wfqqreader-1252317822.image.myqcloud.com/cover/482/47755482/b_47755482.jpg)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
1.2.4 XSS CTF例题
我们以CISCN2019-华东北赛区-Web2题目为例,本题的考点为XSS和SQL注入,我们重点来看XSS的部分,题目如图1-78所示。
![](https://epubservercos.yuewen.com/2B7BD9/27167019607668606/epubprivate/OEBPS/Images/58_01.jpg?sign=1739135774-SB6uDqfLuzQVO2HBUe5mzOTQZ9SxdebU-0-904e2403d23c531e4fba1d2a1adb1763)
图1-78 题目首页
打开题目环境是一个博客,我们能够注册普通账户并投稿,投稿需要通过管理员的审核。一个很经典的XSS漏洞场景是,我们在文章中构造XSS Payload,获取管理员的cookie,然后通过cookie获取管理员权限。我们随意提交数据并测试,结果如图1-79所示。
![](https://epubservercos.yuewen.com/2B7BD9/27167019607668606/epubprivate/OEBPS/Images/58_02.jpg?sign=1739135774-kIdGSk4MBE9dk3XUbnmdcVDVY8GLr3u4-0-736ef51d7105eebf79f4c8de5ba842d9)
图1-79 随意提交数据
在文章页面还设置了CSP,如图1-80所示。
![](https://epubservercos.yuewen.com/2B7BD9/27167019607668606/epubprivate/OEBPS/Images/59_01.jpg?sign=1739135774-sDd1MbC5UH8xktrIhIJqTqziSdSZXUYI-0-bffb4df702db50323007a3a78c52aa60)
图1-80 CSP策略
CSP策略代码如下。
![](https://epubservercos.yuewen.com/2B7BD9/27167019607668606/epubprivate/OEBPS/Images/59_02.jpg?sign=1739135774-D4YBHU3UuAZFmDqmRGfMZ3VD4vNltkHA-0-41d3ff51eeee3816988a2265992bf775)
策略允许执行内联JavaScript代码,例如内联script元素,但不允许加载外部资源,可以使用eval()函数。要获得cookie,就必须绕过CSP不允许加载外部资源这个限制。在CSP策略允许unsafe-inline的情况下,我们可以通过跳转来绕过限制,代码如下。
![](https://epubservercos.yuewen.com/2B7BD9/27167019607668606/epubprivate/OEBPS/Images/59_03.jpg?sign=1739135774-MSgjhiYxQ7VhGXzCpsmqp1XeZLCoAzPN-0-eb2f919ff9d23748289146a45d7a9f2e)
这样管理员访问时就会把cookie回带到我们用于接收数据的服务器http://dataserver上。
这题还将(、)、'等符号替换为中文符号,我们可以通过svg标签加HTML Markup去编码绕过,最终Payload如下。
![](https://epubservercos.yuewen.com/2B7BD9/27167019607668606/epubprivate/OEBPS/Images/59_04.jpg?sign=1739135774-Q9wFl4EyE5s7FfvjJNLk3tRPAsEZ6Xeb-0-5271eb6d4fdf0247b79a86c027fda001)