BUUCTF做题Upload-Labs记录pass-01~pass-10

BUUCTF做题Upload-Labs记录pass-01~pass-10

——

pass-01

前端验证后缀。
传1.png 抓包改1.php 即可。
BUUCTF做题Upload-Labs记录pass-01~pass-10_第1张图片

蚁剑连:http://your-ip/upload/1.php
BUUCTF做题Upload-Labs记录pass-01~pass-10_第2张图片

——

pass-02

验证content-type
抓包注意:Content-Type: image/jpeg
同样传1.png 抓包改1.php

——

pass-03

过滤情况:小写,删除文件名末尾点,首尾去空格
黑名单,不允许上传.asp,.aspx,.php,.jsp后缀文件!
BUUCTF做题Upload-Labs记录pass-01~pass-10_第3张图片

php3 ,php4 ,pht ,phtml 之类能上传成功
上传的文件名被更改为时间戳
利用:/upload/202207250818552340.php3,可蚁剑连接
BUUCTF做题Upload-Labs记录pass-01~pass-10_第4张图片

条件:
要在apache的httpd.conf中有如下配置代码:AddType application/x-httpd-php .php .phtml .phps .php5 .pht,如果不配置他是无法解析php5代码的,访问的时候就是一个空白页

——

pass-04

过滤情况:小写,删除文件名末尾点,首尾去空格,去除字符串::$DATA(上传到服务器的文件在Windows中会自动去掉::$DATA

跟上一题比不能用php4 ,pht ,phtml 之类

这里通过htaccess文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。

设置当前目录所有文件都使用PHP解析,那么无论上传任何文件,只要文件内容符合PHP语言代码规范,就会被当作PHP执行。不符合则报错。

需要上传两个文件
一个 .htaccess文件:
内容:

<FilesMatch "上传的图片马的文件名">
SetHandler application/x-httpd-php
FilesMatch>

BUUCTF做题Upload-Labs记录pass-01~pass-10_第5张图片

另一个图片马 1.jpg ,就是直接把前面几题传的马后缀改为.jpg

利用:/upload/2.jpg
BUUCTF做题Upload-Labs记录pass-01~pass-10_第6张图片

——

pass-05

过滤情况:删除文件名末尾的点,去除字符串::$DATA,首尾去空, .htaccess后缀文件也被过滤
上传的文件名会修改为时间戳
没有把文件名全部小写的条件了,大小写过滤:.Php

利用:/upload/202207251044098514.Php
BUUCTF做题Upload-Labs记录pass-01~pass-10_第7张图片

有方法说用第四关的构造后缀,但是我这里尝试似乎行不通,比如上传5.php. .
文件名就变成了 xxx. (无后缀)

——

pass-06

过滤情况:删除文件名末尾的点,转换为小写,去除字符串::$DATA

源码和前面相比,没有首尾去空格这条过滤。
所以可以在后缀 php 后面加个空格 “1.php ”
虽然能够上传成功,但是好像无法被利用,访问并没有被php解析。
BUUCTF做题Upload-Labs记录pass-01~pass-10_第8张图片

——

pass-07

过滤情况:转换为小写,去除字符串::$DATA,首尾去空
对比前面,没有删除文件名末尾的点
上传7.php.
利用:/upload/7.php.
BUUCTF做题Upload-Labs记录pass-01~pass-10_第9张图片

——

pass-08

过滤情况:删除文件名末尾的点,转换为小写,首尾去空
相比前面没有去除字符串::$DATA
上传 8.php::$DATA
这里是 linux ,不得行。

——

pass-09

过滤情况:删除文件名末尾的点,转换为小写,去除字符串::$DATA,首尾去空
按网上方法传 php. .
但是返回的文件名有问题

Apache/2.4.38 (Debian) Server
apache解析漏洞
.php.jpg
利用:/upload/2.php.jpg
BUUCTF做题Upload-Labs记录pass-01~pass-10_第10张图片

——

pass-10

str_ireplace($deny_ext,"", $file_name);

函数将匹配到的字符替换为空
双写绕过
上传 .pphphp
BUUCTF做题Upload-Labs记录pass-01~pass-10_第11张图片

利用:/upload/10.php

——

这些全部为黑名单绕过,而且只是验证一次,所以这些关卡全部可以用一个思路解出来,那就是.php. . 都是可以这样的,但是这就违背了创建靶场者的心思,靶场也就失去了意义,发挥不出靶场真正的作用。

你可能感兴趣的:(靶场测试,buuctf,文件上传,upload-labs)