upload-lab-文件上传漏洞

基本原理

利用文件上传存在的漏洞,向目标网站中上传一句话木马,然后可以在本地通过中国菜刀、蚁剑进行连接,连接后即可获取和控制整个网站目录。

最简单的一句话木马如下:

<?php @eval($_POST['123']);?>
@表示后面即使执行错误,也不报错。eval()函数表示括号内的语句字符串什么的全都当做代码执行。$_POST['123']表示从页面中获得123这个参数值。

绕过方法:

1.利用htaccess文件漏洞

1
2
3
4
<FilesMatch "">
SetHandler application/x-httpd-php
</FilesMatch>

htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过 修改默认的htaccess文件,使上传的文件均能被当作PHP代码执行。

2.分号配合IIS解析漏洞

还有另外一种方式是通过分号来命名,这是一个windows2003上的IIS服务的解析漏洞

将文件改成asp.asp;.jpg,通过后缀绕过检测,asp读取文件为从左向右读取,即可执行webshell文件

3.冒号配合PHP 和 Windows文件命名环境的叠加特性

windows文件中名称不允许添加冒号,上传一个名为123.php:.jpg,Windows服务器中会自动删除掉后面的jpg,就剩下123.php了,但是会导致文件大小为0kb,需要进行补充文件的信息,然后将文件名改为 123.<或 123.<<<或 123.>>>或 123.>><后再次上传,会执行重写 123.php的 文件内容,会讲想要植入的Webshell代码写入上传的 123.php 空文件中。

4.大小写混合绕过

通过更改后缀名的大小写来进行绕过

5.空格和点配合绕过

利用Windows系统的文件名特性。通过在文件名的最后增加空格和点,用burpsuite抓包修改降上传的文件后缀名写成1.php .,上传后保存在Windows系统上的文件名最后的一个,会被去掉,实际上保存的文件名就是1.php。

upload-lab第一关

1.上传准备好的一句话木马

发现页面弹出警告,需要判断是前端验证还是后端验证

判断是前端验证还是后端验证的三种方式

1.利用burpsuite进行抓包
2.

第一种方式:利用burpsuite进行抓包

通过burpsuite进行抓包,发现未抓到包,说明后缀检查为前端js检查过滤

修改后缀为.jpg,绕过前端过滤,通过burpsuite抓包更改后缀上传


将后缀jpg修改为.php
第4关:

第六关.空格和点配合绕过

利用Windows系统的文件名特性。通过在文件名的最后增加空格和点,用burpsuite抓包修改降上传的文件后缀名写成1.php. .,上传后保存在Windows系统上的文件名最后的一个,会被去掉,实际上保存的文件名就是1.php。

第七关.空格和点配合绕过

第八关:基于文件流特性::$DATA来绕过

将文件名改为1.php::$DATA

第九关:空格和点配合绕过

后缀加入点空格点改成1.php. .

第十关:双写绕过

黑名单替换多次匹配,所以不能使用.PHPPHP,可以通过.pphphp进行替换

第十一关:双写绕过


upload-lab-文件上传漏洞
http://yoursite.com/2024/10/18/upload-lab-文件上传漏洞/
Author
John Doe
Posted on
October 18, 2024
Licensed under