拿下DVBBS php官网详细过程(图)

所属分类: 网络安全 / 黑客教程 阅读数: 1647
收藏 0 赞 0 分享

注意:文章已经发表在2008第7期《黑客手册》上,转载请注明出处。
几 个月前,DVBBS php2.0暴了一个可以直接读出管理员密码的sql注入漏洞,当时这个漏洞出来的时候,我看的心痒,怎么还会有这么弱智的漏洞,DVBBS php2.0这套代码我还没仔细看过,于是5月中旬我down下来粗略看了下,接着我花了三天的时间,拿下p.dvbbs.net,即动网php的官方网 站,并得到了webshell。总的来说,这次入侵凭的是二分技术加一分运气。

  一、 SQL注入漏洞:

  晚上检查了好久,终于在topicother.php中发现了一处sql注入漏洞,但是并不像前段时间暴的漏洞那么简单,因为不能把密码直接读出数据库并显示出来,这是个活动帖子的报名主函数,我简单搜索了下,1.0好像后来就增加了这个功能。好了,来看具体函数:

function PostActive_Main(){
……
$TopicID = $GLOBALS['id'];
$activeid = trim($_GET['activeid']);//activeid并没有过滤
$timemode = $_POST['payment'];
$systemmode = trim($_POST['contact']);
$message = trim($_POST['message']);

$gettimemode = trim($_POST['timemode']);
$getstarttime = trim($_POST['starttime']);
$getendtime = trim($_POST['endtime']);
$getexpiretime = trim($_POST['expiretime']);

if($timemode ==0)
$costnum = 0;
else
$costnum = intval(trim($_POST['payvalue']));
//直接带进来使用了
if( $query = $db->query("SELECT u1.sex,u1.strength,u2.usersex FROM {$dv}active as u1,{$dv}user as u2 WHERE activeid={$activeid}")){
$activeinfo =& $db->fetch_array($query);
if( !empty($activeinfo) ) {
$db->free_result($query);
}
}
if( $num = $db->query("SELECT count(*) as num from {$dv}activeuser where activeid='".$activeid."'")){
$activenum = $db->fetch_array($num);
if( !empty($activenum) ) {
$db->free_result($num);
}
}

//如果查取的activeid不正确或者后面注入的条件不成立,则显示显示str1:对不起!本活动报名人数已满!
if($activenum['num']>=$activeinfo['strength']){
head(0,0,0,$arrNavMenu);
showmsg($lang['Active_Error.str1']);
exit;
}
//如果activeid正确(后面注入的条件也成立),但没有登陆,就显示str2:请登陆后操作!
if ($userid==0) {
head(0,0,0,$arrNavMenu);
showmsg($lang['Active_Error.str2']);
exit;
}

//如果activeid正确并且已经登陆了,递交的时候没有递交联系方式,则会显示str6这个错误:对不起联系方式不能为空或小于8个字符!
if (''==$systemmode||strlen($systemmode)<8) {
head(0,0,0,$arrNavMenu);
showmsg($lang['Active_Error.str6']);
exit;
}

}


  首先先确定有没有activeid为1的活动帖子,就是在论坛目录后加上

  topicother.php?t=9&action=join&activeid=1

  显示“对不起!本活动报名人数已满!”则有可能不存在,自己注册个号进去发个活动帖子先。

  根 据上面解释,大家是否已经看出来该怎么注入啦,并不是什么都需要工具的,想当年ACCESS手工注入又不是没注入过,判断条件正确就返回正常,错误就不正 常显示;这里不也是同样的道理么,不管有没登陆,出错都显示:“对不起!本活动报名人数已满!”,如果判断条件正确,没有登陆的话显示:“请登陆后操 作!”,已经登陆了显示:“对不起联系方式不能为空或小于8个字符!”于是当晚我手动测试了一下官方,并成功获得了一个管理员的16位MD5的密码。兴奋 的去睡觉,躺在床上却怎么也睡不着:怎么去更简单的利用呢?一边思考,一边入睡,睡着的时候天都亮了。


更多精彩内容其他人还在看

linux入侵踪迹隐藏攻略

前言: 被警察叔叔请去喝茶时间很痛苦的事情,各位道长如果功力不够又喜欢出风头的想必都有过这样的“待遇”。如何使自己在系统中隐藏的更深,是我们必须掌握的基本功。当然,如果管理员真的想搞你而他的功力又足够足的话,相信没什么人能够真正的“踏雪无痕”。Fore
收藏 0 赞 0 分享

关于趋势科技等网站被攻击的分析

一. 首先在网上找到了这次攻击的新闻报道 http://www.nsfocus.net/news/6697 http://hi.baidu.com/secway/blog/item/e80d8efa4bf73ddab48f31a3.html 通过GOOGLE搜索到
收藏 0 赞 0 分享

实战讲解跨站入侵攻击

很多时候在企业网络安全,特别是服务器上数据库安全防范方面需要特别注意,弥补所有漏洞,减少因设置不当带来的入侵事件的发生。然而在实际使用与维护过程中我们经常会听到一个新的名词——“跨站入侵”,那么什么是“跨站入侵”,他是如何产生如何被利用的呢?今天就请各
收藏 0 赞 0 分享

黑客入侵网络的五十种方法

现在网上的攻击事件越来越多,黑客都是通过什么方法来攻击我们的呢?下面我们给大家总结了黑客入侵网络的五十种方法,让大家做到有备无患。   1.网宽网络有限公司制作的网站基本都有注入漏洞 搜索网宽网络   2.搜索栏里输入   关键字%'and 1=1 and '%'
收藏 0 赞 0 分享

解析CSRF攻击原理

|=——————————————————————=| |=————–=[ CSRF攻击原理解析 ]=——————=| |=——————————————————————=| |=——————-=[ By rayh4c ]=————————=| |=————-=[ r
收藏 0 赞 0 分享

Session Fixation 攻防实战(图)

最近笔者在网上看到一个新文章《JSESSIONID Regeneration in Struts 2》,讲的是一段代码,在STRUTS 2框架中,防御Session Fixation攻击。笔者比较老土,看不懂英文,还好能看懂代码,发现这是一种平时开发中(至少自己是这样),从来没注
收藏 0 赞 0 分享

介绍初级黑客常用兵器(图)

俗话说:“工欲善其事,必先利其器”。不管你是黑客高手,还是菜鸟级人物,要想侵入一家网站,都是需要借助黑软工具,才能达到自己的目的,因此每位“黑鸟”的工具,决定了你能否侵入成功的关键。下面笔者将会为大家循序渐进的介绍,初级黑客一般比较常用的兵器。  
收藏 0 赞 0 分享

教你如何通过Radmin拿服务器

Radmin 是一款很不错的服务器管理 无论是 远程桌面控制 还是 文件传输 速度都很快 很方便 这样也形成了 很多服务器都装了 radmin这样的 现在你说 4899默认端口 没密码的 服务器你上哪找? 大家都知道radmin的密码都是32位m
收藏 0 赞 0 分享

黑客最新障眼法 淘宝用户注意(图)

淘宝,一个充满互联网的名字,可以让你足不出户就可以在家买到想买的东西,特别受到年轻人和在校学生青睐。可是淘宝的使用必定牵涉到网银的使用,很多用户都会提出,使用网银,我们安全吗?如何去辨别有害程序,让自己也具有一双悟空的“火眼金睛”,是我们今天来教大
收藏 0 赞 0 分享

常见的木马所有隐藏启动方式总结

木马的最大的特点之一就是它一定是要和系统一起启动而启动,否则它就完全失去了意义!下面为大家介绍一下它的几种隐藏启动的方法:   方法一:注册表启动项:这个大家可能比较熟悉,请大家注意以下的注册表键值:   HKEY_LOCAL_MACHINESOFTWAR
收藏 0 赞 0 分享
查看更多