入侵网站学习_程序篇_输入参数漏洞(1)

5月1日,一早就接到公司网管打来的电话,说是网站被人黑了!汗...

赶紧起床,打开电脑,打开公司网站,原来有人侵入了后台管理程序,在新闻、文章系统中加了一条:"xxx到此一游,如有意请联系QQ:xxxxxxx"字样的内容。

前段时间正好加上了管理员登陆时记录其IP、用户名、密码和时间的功能。立刻用teminal连上(3389端口只对我这里上网的IP的C类地址开放),发现这个家伙是凌晨2点到4点多干的坏事。管理区的所有账号和密码几乎都被他试了个遍,而且有3个IP,估计是用代理登陆的。

查日志吧,www昨天的日志(记录到今天早上8点)有2G多,没法查(只要超过200M就没办法查看了,试了好些办法,都是出错或程序死掉)。其它的域名都好查,因为都不会超过100M,就是www的日志比较烦人。在看iis日志选项时,这才发现有按小时生成日志文件的选项。恩,好主意,这样文件就小多啦:)

先把他干的坏事去掉再说吧!然后检查了一下最近24小时有修改过的文件,没有发现可疑文件。仔细查看判断管理登陆的那页,突然发现居然没有判断checkcode(即验证码)为空的情况,他人可以利用远程提交的方式来绕过验证码的判断,然后用软件猜用户名和密码方式不断提交破解的?赶紧加上验证码为空的判断,然后改了一下超级管理员的密码,有事先出去了。

下午快回来,发现又被这家伙改了,内容还是一样。而且IP又换了,这就可以肯定是用代理上的了,查ip来源也没用!网管给我发了封mail,内容是他下午和这个家伙的部分对话。这家伙原来是要钱,看来不是什么高手。真正高手哪里会在乎这些,而且也不会盯上我们的网站。

由于IIS日志是按小时生成的,因为化了点时间Down到本机,仔细查看他用的用于登陆管理区的IP干了些什么坏事!发现了,他频繁的连一个网址,浏览器类型是sqlinj,然后不断的测试是否有member.asp、admin.asp等文件的存在,再后就是去管理区了。打开他频繁连接的那个页面,要死!没有判断输入的参数。知道原因了,这家伙用工具测试我站的一些有带输入参数的asp页面,发现有Sql注入漏洞的页面,就再用工具(页面访问的时间间隔很少,手动不可能那么快的)通过Sql注入的一些技巧得到表名、字段名,最后是管理员的账号和密码!

上个星期刚好有看54nb联盟的sql注入的三部曲,所以多少了解了一些,他还提供了工具下载呢,不过当时下载下来后,没有去用它。好像有这功能,打开看看吧。好家伙,一个网站漏洞抄描器,一个漏洞注入器。先试试公司网站,一扫,晕晕晕,扫出好些可注入的页面来。打开一瞧,还真是没有判断输入的参数的。然后使用另外一个工具进行猜解,还真得到表名、字段名、账号和密码了。赶紧把查出来的页面修正吧,这回有事做了。

在这里要说一句:感谢这位朋友(在本文中,我称其为这个家伙)的"善意"(至少他没有删除网站的任何数据)侵入,使我了解到判断输入参数的重要性。在下一篇,我将总结一下的因此而得到的一些经验心得。

相关文章

数组的定义 Dim MyArray MyArray = Array(1‚5‚123‚12‚98...
\'参数: \'code:要检测的代码 \'leixing:html或者ubb \'n...
演示效果: 代码下载: 点击下载
环境:winxp sp2 ,mysql5.0.18,mysql odbc 3.51 driver 表采...
其实说起AJAX的初级应用是非常简单的,通俗的说就是客户端(j...
<% ’判断文件名是否合法 Function isFilename(aFilename...