![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=1739179526-xC5pPY6cx5gjiolFnluZcloYTpMeqPgX-0-8596b42aa843019033d2f692da27306e)
图1-78 题目首页
打开题目环境是一个博客,我们能够注册普通账户并投稿,投稿需要通过管理员的审核。一个很经典的XSS漏洞场景是,我们在文章中构造XSS Payload,获取管理员的cookie,然后通过cookie获取管理员权限。我们随意提交数据并测试,结果如图1-79所示。
![](https://epubservercos.yuewen.com/2B7BD9/27167019607668606/epubprivate/OEBPS/Images/58_02.jpg?sign=1739179526-Dm5N90sowt2HWTSs0BUutL57fwFSK1GC-0-44b12510119d5fda1c7c92198db1e2cf)
图1-79 随意提交数据
在文章页面还设置了CSP,如图1-80所示。
![](https://epubservercos.yuewen.com/2B7BD9/27167019607668606/epubprivate/OEBPS/Images/59_01.jpg?sign=1739179526-aTvzGjGqi3muKj2We6PZVNFGIQWQF1Cd-0-7433cf82d4e66001bebfce76d983605d)
图1-80 CSP策略
CSP策略代码如下。
![](https://epubservercos.yuewen.com/2B7BD9/27167019607668606/epubprivate/OEBPS/Images/59_02.jpg?sign=1739179526-4qqsTMdFCodbB0eohHYVjtIdRvbco2Nh-0-89593ca539308a74092a75ae5a11c05d)
策略允许执行内联JavaScript代码,例如内联script元素,但不允许加载外部资源,可以使用eval()函数。要获得cookie,就必须绕过CSP不允许加载外部资源这个限制。在CSP策略允许unsafe-inline的情况下,我们可以通过跳转来绕过限制,代码如下。
![](https://epubservercos.yuewen.com/2B7BD9/27167019607668606/epubprivate/OEBPS/Images/59_03.jpg?sign=1739179526-U5w71GutSh9WOvFqJjVEXwcr9uqjzYWH-0-318b3ba82a8a060f0b22c1c7c174f553)
这样管理员访问时就会把cookie回带到我们用于接收数据的服务器http://dataserver上。
这题还将(、)、'等符号替换为中文符号,我们可以通过svg标签加HTML Markup去编码绕过,最终Payload如下。
![](https://epubservercos.yuewen.com/2B7BD9/27167019607668606/epubprivate/OEBPS/Images/59_04.jpg?sign=1739179526-FyIj5StUGVK8dgvVf8SsCIpjNjp40Hxp-0-6103d621d4ccb112f94eefa0063ed2d4)