1.pass-1 前端js检查,修改js或修改后缀绕过
查看源代码,可以发现是客户端的进行检查:
两种方法:
(1).禁用js或修改js代码
(2).抓包修改后缀
这里采用抓包修改后缀
先改成可以上传的后缀名,在抓包修改后缀名为php
1.php代码
<?php phpinfo();?>
把包发送,访问1.php
2.pass-2服务端(后端)MIME检查,修改content-type值绕过
MIME (Multipurpose Internet Mail Extensions) 是描述消息内容类型,通俗来说就是表示这个文件是什么类型的文件(是图片,还是音频,视频,代码)
Content-Type 标头告诉客户端实际返回的内容的内容类型
比如说Content-type:image/jpeg 这表示是一张图片
上传1.php文件,修改content-type的值为image/png即可
放包,访问1.php
源代码,这里检测了content-type的值
3.pass-3 黑名单,特殊后缀绕过
源码:这里给文件重新命名了
特殊后缀有php3,php4,php5 ,phtml等
因为apache把这些特殊后缀都解析成了php代码,所以就造成了文件上传后可以执行php
需要修改apache的配置文件httpd.conf
没有添加,有的就删除#号,重启apache
AddType application/x-httpd-php .php .phtml .php3 .php4
注意这里php版本选择不带nts的,用nts的版本会出现解析不了,只能下载保存文件
上传1.php3,访问1.php3,注意这里文件名,查看图像或复制图像地址在进行访问
4.pass-4黑名单,.htaccess或.user.ini
这题在上传php3就失败了
查看提示
可以通过传配置文件进行绕过,配置文件分为.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
成功解析
5.pass-5黑名单,大小写绕过
.htacceess不可上传
查看源码
上传1.PHP,访问文件,注意这里被重命名了,所以.user.ini也不可用
参考文章:
(12条消息) Upload-labs 1-21关 靶场通关攻略(全网最全最完整)_upload靶场_晚安這個未知的世界的博客-CSDN博客
(12条消息) .htaccess文件上传解析漏洞_mmzkyl的博客-CSDN博客