目前网上有种新的趋势,黑客们的攻击目标开始从网站延伸到论坛和聊天室及留言板等公共场所,而许多用户的论坛密码竟然与E-mail和QQ的密码完全相同,因此对大家的网络安全威胁非常大。换个角度来说,黑客们通过入侵这些地方,可以得到更高的权限。比如通过80端口进行渗透入侵,甚至于还可以得到论坛和聊天室、留言板等服务主机的最高权限,是不是很可怕?许多人以为只有黑客高手才能做到这一点,其实不然,只要简单的几步,连菜鸟都能得到论坛或聊天室及留言板的一切!本文将以常见的论坛为例,谈谈主要的论坛攻击方法和防范手段。
针对论坛的攻击手段
第一招:霸王硬上弓破解论坛数据库
目前很多国内论坛都采用了动网先锋引擎(一款由ASPSKY.NET开发和维护的asp论坛引擎)。要想控制整个论坛就得有管理员密码,怎样才能得到动网论坛的管理员密码呢?黑客常用的招数之一是先获得动网论坛的数据库文件,然后再破解数据库中的管理员密码,不过该数据库文件中的密码是用MD5加密的,所以要使用工具软件进行破解。举个例子,黑客会可以先猜一下数据库文件存放在哪个目录里,如果猜对的话下载数据库的成功率就比较高了。一般说来,管理员都有个习惯,就是给数据库文件存放的目录起个好记的名字,如data、database、bd、mdb等。所以黑客们可以在浏览器中输入:http://www.target.com/database或http://www.target.com/mdb或者是http://www.target.com/db试试,如果显示“HTTP错误404-找不到文件”,说明对方没有这个目录,再换一个目录名试试,假设你输入http://www.target.com/data,显示“HTTP错误403-禁止访问”,则说明对方有这个目录,但是不允许我们浏览该目录,这样就有希望了!
下一步只要有办法找到数据库文件并下载下来就有希望得到对方的管理员密码。比方说,黑客可以使用漏洞扫描器X-SCAN扫描目标,看是否有漏洞,如果目标做了端口过滤,只开了80端口,我们可以这样试试:把一些常用的数据库地址如data.mdb、db.mdb、database.asp等添加到X-Scan的CGI数据库中,或者用一些黑客字典来生成数据库地址,然后单独作一个数据库,把它添加到X-Scan的CGI数据库中。然后只扫描CGI漏洞,过一段时间扫描完毕,假设显示的扫描结果为“/data/database.asp”,就表示我们成功地扫描到了数据库文件。现在用下载工具把数据库下载下来即可,然后把文件扩展名改为.mdb。接下来就可以使用MD5的暴力破解程序和字典解出密码。不要小瞧了这个办法,许多人就是这样破解了你的论坛管理员密码!
下一步只要有办法找到数据库文件并下载下来就有希望得到对方的管理员密码。比方说,黑客可以使用漏洞扫描器X-SCAN扫描目标,看是否有漏洞,如果目标做了端口过滤,只开了80端口,我们可以这样试试:把一些常用的数据库地址如data.mdb、db.mdb、database.asp等添加到X-Scan的CGI数据库中,或者用一些黑客字典来生成数据库地址,然后单独作一个数据库,把它添加到X-Scan的CGI数据库中。然后只扫描CGI漏洞,过一段时间扫描完毕,假设显示的扫描结果为“/data/database.asp”,就表示我们成功地扫描到了数据库文件。现在用下载工具把数据库下载下来即可,然后把文件扩展名改为.mdb。接下来就可以使用MD5的暴力破解程序和字典解出密码。不要小瞧了这个办法,许多人就是这样破解了你的论坛管理员密码!
第三招:鱼目混珠冒名发言
举个例子,黑客可以在打开记事本后按下tab键或CapsLock+Tab键,这样就会形成一个特殊的空格。复制该空格,用他想冒名发言的用户名加上该空格注册一个新用户,这样就会成功注册一个和对方一样的名字,接下来就可以冒名发言了,稍不留意别人就会上当。形成特殊空格还可以采用区位输入法输入aaaa或aaab或aaac。另外在html标签里还可以使用 ( 就是显示空白内容的意思)制造一个特殊的空格。用区位输入法输入的aaaa/aaab/aaac在ASP编写的程序里冒名的成功率极高,而tab键和 制造的特殊空格在php程序里成功率更高些。更可怕的是,在wdb论坛和ibb论坛,用Tab键构造的特殊用户名可以取得和原用户相同的权限。如果原用户名是管理员,那黑客构造的这个冒名用户也会变成管理员!
第四招:暗渡陈仓形成网页后门
大家知道,在cgi或perl程序里如果写入“system @ARGV;#”(注意输入时没有引号),就会形成一个有趣的网页后门。在IE地址栏中输入http://ip/*.pl?dir就会看到网站的物理目录。以网上非常流行的Agbii免费cgi留言本为例,该留言本里的留言是以第n条留言的数目、用户名、标题和内容等等来排列的,而且留言都是按照顺序排放在一个固定目录data/用户名下面的。说起来好像很复杂,让我们来看图7,假设这是黑客在Agbii免费cgi留言本中的留言,它是该留言本中的第14条留言,假设其注册的用户名是;system,标题为@ARGV;#,内容则是“呵呵”,在data/222目录下的14.pl的文件内容就是如图8所示。由于此留言本的用户就是222,因此只要黑客在浏览器地址栏中输入http://IP/book/data/222/14.pl?dir就会得到一个shell了(图9)。注意这里的http://IP/book/是留言本的地址。得到shell之后,黑客还可以得到该管理员的密码!只要在浏览器的地址栏中输入“http://IP/book/data/管理员名字/14.pl?type+该留言本的物理目录\user\管理员名字.cgi”就可以了。以本文为例,只要输入“http://www.xxx.com/book/data/lxgyp/14.pl?type+d:\虚拟主机\web\book\user\lxgyp.cgi”就可以得到该管理员的用户名和密码、注册时的邮件地址、他的网站地址、IP地址以及登陆时间,一目了然,尽在掌握!
第五招:太公钓鱼进行跨站脚本攻击
还有一种比较有趣也比较难利用的方法,其实就是所谓的跨站脚本攻击。先说一个有趣的现象,在论坛中流行的UBB代码中有一个bug,
这对标签是UBB代码中经常会用到的,用来引用一个图片。在中如果插入的不是图像而是javascript脚本它同样会执行!举个例子,如假设你在某论坛中所发帖子内容为:,当有人点击这个贴子就会弹出一个对话框。如果把上面的内容换为:
,则点击后不仅会弹出一个对话框,而且还会打开一个新的网页窗口。如果黑客在这个网页里放入网页木马会怎么样呢?答案是你会中木马!不仅如此,利用这个办法还可以使论坛中没有任何权限的用户提升为管理员!假设某论坛加新管理员hacker的url是http://ip/bbs/upadmin?user=hacker,由于这个url只有以管理员身份执行才可以成功,所以你直接在地址栏中输入是没有任何用处的。但是利用刚刚提到的跨站脚本攻击,只要黑客先注册一个名为hacker的用户,然后新建一个帖子,在里面写入:,然后给这个帖子起个醒目的主题,如“管理员论坛好像有大漏洞”,来引诱该论坛的管理员来查看此贴,当管理员点击此贴后,hacker这个用户就会提升为该论坛的管理员!同样的道理,黑客还可以上传一个txt附件,txt文件里就是那个加hacker管理员的url,由于IE浏览器存在一个问题,即只要文件里面含有html代码就会执行(IE才不理会后缀名是什么呢),所以论坛管理员只要点此txt附件,就会在论坛中增加一个名为hacker的管理员。如果对[img][/img]之间或txt附件里面的代码进行精心伪造,黑客还可以让论坛管理员在点击帖子或txt附件后毫无察觉,所以很难防范。之所以会出现论坛或留言板等遭受攻击,关键是由于有漏洞存在,只要将这些漏洞堵上就没有问题了。但是许多漏洞的存在是由于论坛或留言板编程时作者的疏漏所致,作为使用者是较难防范的,我们只能寄希望于作者早日解决这些问题。从这个角度来说,论坛管理员经常给自己的论坛打补丁是必不可少的。应该经常留心各大黑客组织发布的漏洞公告,及时发现自己的论坛所存在的问题。再有,要严格过滤特殊字符,防止有人利用特殊字符进行攻击。无论是管理员还是论坛中的普通用户,都建议您能设置一个强壮的密码,并定期更换,以防止别人暴力破解你的密码。
针对论坛数据库被人下载下来然后破解的问题,建议管理员能将论坛的数据库文件改成一个没有规律的复杂名字,并将扩展名由mdb改为asa,如3sdal9eklz9c0ad.asa,3sdal9eklz9c0ad.inc等,有点像用MD5加密过,对吧?同时还要将该文件放到深层目录中,这样在一定程度上可以减少被人下载的危险。
将数据库database.mdb改成#database.mdb,这是最简单有效的办法。我们来解释一下这样做的好处:假设别人得到你的数据库地址串将是:http://www.yourserver.com/yourfolder/#database.mdb,但实际上他得到是:http://www.yourserver.com/yourfolder/,因为#在这里起到间断符的作用,地址串遇到#号,自动认为访问地址串结束。注意不要设置目录可访问,用这种方法,不管别人用何种工具都无法下载。注:只要数据库文件名任何地方含有'#',别人都无法正常下载。同理,空格号也可以起到'#'号作用,但必须是文件名中间出现空格。
另外,还要使用Access软件来为数据库文件编码及加密。首先选取 “工具→安全→加密/解密数据库”,选取数据库文件然后确定,接着会出现“数据库加密后另存为”的窗口,确定后文件就会被编码加密。以上的操作并不是对数据库设置密码,而只是对数据库文件加以编码,目的是为了防止他人使用别的工具来查看数据库文件的内容。接下来还可以为数据库设置访问密码。首先打开经过编码的库文件, 在打开时,选择“独占”方式。然后选取功能表的“工具→安全→设置数据库密码”,接着输入密码即可。这样即使他人得到了这个文件,没有密码也是无法看到内容的。这样就算黑客知道Access数据库的名字也无法轻易下载,这种方法通常在租用别人服务器时使用。最后,建议您在IIS中把数据库所在的目录设为不可读,这样就可以防止文件被人下载了!
对于普通用户而言,建议大家不要在论坛中留下真实的联络方式,如E-mail和QQ等,如果非要留下不可,论坛中你的密码一定不要和其他密码相同,免得被人顺藤摸瓜,得到你的全部秘密!