最近刷了几道文件上传的题,其中包括 js 绕过、.htaccess 上传、phar 绕过,文件上传的题
目一般都是黑盒,白盒审计很少,奇奇怪怪的东西还是挺多的。就我自己来说,做这种题一
般都是各种都试试,基本上都能出来。
姿势一:Phar 绕过上传限制
进行压缩,之后把 rar 的后缀名改成 jpeg 格式
首先我们在本地测试一下:
首先准备一句话木马
test.php
index.php
<?php include('phar://./test.jpg/test.php'); ?>可以看到,是可以执行的。
安恒月赛:image_up
首先我们把源码读出来:
这里是利用伪协议读取源码
/index.php?page=php://filter/read=convert.base64-encode/resource=
index.php
login.php
upload.php
这道题就是利用 phar 伪协议去包含我们写好的一句话
具体做法: 木马文件打包成压缩包,然后改后缀,再利用 phar 伪协议读取
phar://./uploads/4h214215521321.jpg/1
最后用蚁剑链接就可以拿到 flag
姿势二:js 绕过
查看源码之后发现文件上传,图片马
先来做一个吧
合成图片马的命令:copy 1.png /b + 1.txt /a 2.png
我们先来上传一个一句话木马吧,
这里发现是能够上传成功的,但是不解析,最后利用 JS 绕过
payload:
利用 file 读取上传的文件,发现是解析 php 文件的
查看文件名发现有 flag 相关文件,直接读就出
例题二:[GXYCTF2019]BabyUpload
js 绕过:
合成图片马:
直接上传蚁剑连接
姿势三:.htaccess 上 传
文件上传这种题,一般都是一把梭,这道题考察点是 后端验证+.htaccess 文件上传
我们把 content-type 改成 image/jpeg 格式
发现上传成功,下一步就是传图片马