Webshell文件上传漏洞

简述:

文件上传漏洞是由于网站对上传的文件没有进行严格筛查,导致用户可以上传一些可执行文件的恶意代码,或webshell,如asp,hph等,然后再通过url访问执行恶意代码,或是通过webshell,达到对网站的控制。

本次在一个靶场题目上进行测试:WebShell文件上传漏洞分析溯源

过程:

界面:
Webshell文件上传漏洞

  • 前端检测查看

Webshell文件上传漏洞
不属于前端检测

  • 00截断测试

1、创建一句话木马:<?php phpinfo();?>,保存为如下形式:
Webshell文件上传漏洞
Webshell文件上传漏洞
执行该文件时查看php信息

2、打开burpsuit设置代理服务器进行数据包拦截
Webshell文件上传漏洞
3、在文件名处的111.php后加空格
Webshell文件上传漏洞
4、在16进制信息形式处找到添加的空格(20)
Webshell文件上传漏洞
将其修改为00
Webshell文件上传漏洞
5、返回文界面,发现空格消失
Webshell文件上传漏洞
6、forword提交,页面报错
Webshell文件上传漏洞
因此00截断测试失败。

  • 扩展名变换测试

1、创建一句话木马文件111.php,内容与之前相同
Webshell文件上传漏洞
2、打开burpsuit进行数据包拦截,并提交上传
Webshell文件上传漏洞
Webshell文件上传漏洞
3、将文件后缀改为.php5(.php1,.php2,.php3,.php4,.php5都可测试)
Webshell文件上传漏洞
4、提交发现上传成功
Webshell文件上传漏洞
5、访问该路径下的该文件
Webshell文件上传漏洞
发现弹出所上传的php脚本内容,上传成功。

根据更改扩展名上传大致能判断,该防护属于黑名单过滤,由于.php5也可以解析为php文件,而黑名单中并未添加,因此可以成功绕过拦截。

  • 继续进行深入:

1、重写一个一句话木马,并按照之前的方式进行上传Webshell文件上传漏洞
2、上传成功后,打开菜刀,添加上传了木马文件的url地址及命令
Webshell文件上传漏洞
3、右键查看该url的文件管理器
Webshell文件上传漏洞
可以看到,整个服务器的文件已经被获取,包括此前进行测试的木马文件,并且可以对文件任意进行查看,更改,添加,删除,执行。

在文件目录中找到了key文件,得到key,实验结束。

学习整理,若有问题请指出。