1.pass-1 前端js检查,修改js或修改后缀绕过
查看源代码,可以发现是客户端的进行检查:
![](https://img-blog.csdnimg.cn/img_convert/437181661a1b4db9cb004e223a4c38dc.png)
两种方法:
(1).禁用js或修改js代码
(2).抓包修改后缀
这里采用抓包修改后缀
先改成可以上传的后缀名,在抓包修改后缀名为php
1.php代码
<?php phpinfo();?>
![](https://img-blog.csdnimg.cn/img_convert/caaadc92b1d34a7f848b3be5b3a99324.png)
把包发送,访问1.php
![](https://img-blog.csdnimg.cn/img_convert/51d316e1d789943a57cb852b60743730.png)
2.pass-2服务端(后端)MIME检查,修改content-type值绕过
MIME (Multipurpose Internet Mail Extensions) 是描述消息内容类型,通俗来说就是表示这个文件是什么类型的文件(是图片,还是音频,视频,代码)
Content-Type 标头告诉客户端实际返回的内容的内容类型
比如说Content-type:image/jpeg 这表示是一张图片
上传1.php文件,修改content-type的值为image/png即可
![](https://img-blog.csdnimg.cn/img_convert/cee6d77c11b1effb6a0b15f3975ed256.png)
放包,访问1.php
![](https://img-blog.csdnimg.cn/img_convert/1a1e07d775ba68d8e859f422b2f01aa4.png)
源代码,这里检测了content-type的值
![](https://img-blog.csdnimg.cn/img_convert/66981f1df0e38ec0f02699f4d56fb8c6.png)
3.pass-3 黑名单,特殊后缀绕过
源码:这里给文件重新命名了
![](https://img-blog.csdnimg.cn/img_convert/238c0624a12f2a374f7defa835e1c251.png)
特殊后缀有php3,php4,php5 ,phtml等
因为apache把这些特殊后缀都解析成了php代码,所以就造成了文件上传后可以执行php
需要修改apache的配置文件httpd.conf
没有添加,有的就删除#号,重启apache
AddType application/x-httpd-php .php .phtml .php3 .php4
![](https://img-blog.csdnimg.cn/img_convert/a1d1e2076eb765f02538ba409ddf022e.png)
注意这里php版本选择不带nts的,用nts的版本会出现解析不了,只能下载保存文件
![](https://img-blog.csdnimg.cn/img_convert/cb8db3fbe67957134c56b3e06697beb7.png)
上传1.php3,访问1.php3,注意这里文件名,查看图像或复制图像地址在进行访问
![](https://img-blog.csdnimg.cn/img_convert/a5008411645a04121dbdf13abf0b3cbc.png)
4.pass-4黑名单,.htaccess或.user.ini
这题在上传php3就失败了
查看提示
![](https://img-blog.csdnimg.cn/img_convert/f235843bed571677a20d22b20dda7709.png)
可以通过传配置文件进行绕过,配置文件分为.htaccess,
user.ini
.htaccess配置内容可以下方任意一个
第一个将此目录及子目录下的文件全部按照php代码去解析
第二个经特定的后缀名解析为php
第三个使用php5-script处理器解析匹配到和后缀名一致的文件
SetHandler application/x-httpd-php
AddType application/x-httpd-php .png
AddHandler php5-script .png
.user.ini可以是下面任意的一种
是当其他php文件执行时会自动包含1.png,如果1.png有代码会被执行
auto_append_file = 1.png
auto_prepend_file = 1.png
注意这里是访问1.php,而不是1.png,访问的是当前目录存在的php文件,而不是上传还有木马的图片
.user.ini内容的意思是当执行php代码时,会在php文件中自动包含1.png
使用htaccess前提:
AllowOverride All不为none
服务器是apache
php版本是不带nts的
使用.user.ini前提:
上传目录有php文件
服务器为fastcgi,php版本是带nts
apache和nginx服务器都可以使用
这题使用的.htaccess
<FilesMatch "1.png">
SetHandler application/x-httpd-php
</FilesMatch>
上传.htaccess
上传1.png
成功解析
![](https://img-blog.csdnimg.cn/img_convert/a36d36bddb83402df6d7882294e79549.png)
5.pass-5黑名单,大小写绕过
.htacceess不可上传
![](https://img-blog.csdnimg.cn/img_convert/af625f086d0139bef9a80fc905cf94e4.png)
查看源码
![](https://img-blog.csdnimg.cn/img_convert/5121d2c35557b6e33247c13b67619215.png)
上传1.PHP,访问文件,注意这里被重命名了,所以.user.ini也不可用
![](https://img-blog.csdnimg.cn/img_convert/554ac315783bdeda9de2229904794b36.png)
参考文章:
(12条消息) Upload-labs 1-21关 靶场通关攻略(全网最全最完整)_upload靶场_晚安這個未知的世界的博客-CSDN博客