——
蚁剑连:http://your-ip/upload/1.php
——
验证content-type
抓包注意:Content-Type: image/jpeg
同样传1.png 抓包改1.php
——
过滤情况:小写,删除文件名末尾点,首尾去空格
黑名单,不允许上传.asp,.aspx,.php,.jsp后缀文件!
php3 ,php4 ,pht ,phtml 之类能上传成功
上传的文件名被更改为时间戳
利用:/upload/202207250818552340.php3
,可蚁剑连接
条件:
要在apache的httpd.conf中有如下配置代码:AddType application/x-httpd-php .php .phtml .phps .php5 .pht,如果不配置他是无法解析php5代码的,访问的时候就是一个空白页
——
过滤情况:小写,删除文件名末尾点,首尾去空格,去除字符串::$DATA
(上传到服务器的文件在Windows中会自动去掉::$DATA
)
跟上一题比不能用php4 ,pht ,phtml 之类
这里通过htaccess文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。
设置当前目录所有文件都使用PHP解析,那么无论上传任何文件,只要文件内容符合PHP语言代码规范,就会被当作PHP执行。不符合则报错。
需要上传两个文件
一个 .htaccess
文件:
内容:
<FilesMatch "上传的图片马的文件名">
SetHandler application/x-httpd-php
FilesMatch>
另一个图片马 1.jpg ,就是直接把前面几题传的马后缀改为.jpg
——
过滤情况:删除文件名末尾的点,去除字符串::$DATA,首尾去空, .htaccess
后缀文件也被过滤
上传的文件名会修改为时间戳
没有把文件名全部小写的条件了,大小写过滤:.Php
利用:/upload/202207251044098514.Php
有方法说用第四关的构造后缀,但是我这里尝试似乎行不通,比如上传5.php. .
文件名就变成了 xxx.
(无后缀)
——
过滤情况:删除文件名末尾的点,转换为小写,去除字符串::$DATA
源码和前面相比,没有首尾去空格这条过滤。
所以可以在后缀 php 后面加个空格 “1.php ”
虽然能够上传成功,但是好像无法被利用,访问并没有被php解析。
——
过滤情况:转换为小写,去除字符串::$DATA,首尾去空
对比前面,没有删除文件名末尾的点
上传7.php.
利用:/upload/7.php.
——
过滤情况:删除文件名末尾的点,转换为小写,首尾去空
相比前面没有去除字符串::$DATA
上传 8.php::$DATA
这里是 linux ,不得行。
——
过滤情况:删除文件名末尾的点,转换为小写,去除字符串::$DATA
,首尾去空
按网上方法传 php. .
但是返回的文件名有问题
Apache/2.4.38 (Debian) Server
apache解析漏洞
传 .php.jpg
利用:/upload/2.php.jpg
——
str_ireplace($deny_ext,"", $file_name);
利用:/upload/10.php
——
这些全部为黑名单绕过,而且只是验证一次,所以这些关卡全部可以用一个思路解出来,那就是.php. . 都是可以这样的,但是这就违背了创建靶场者的心思,靶场也就失去了意义,发挥不出靶场真正的作用。