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