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