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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


数组的定义 Dim MyArray MyArray = Array(1‚5‚123‚12‚98) 可扩展数组 Dim MyArray() for i = 0 to 10
\'参数: \'code:要检测的代码 \'leixing:html或者ubb \'nopic:代码没有图片时默认值
演示效果: 代码下载: 点击下载
环境:winxp sp2 ,mysql5.0.18,mysql odbc 3.51 driver 表采用 myisam引擎。access 2003  不同的地方: 
其实说起AJAX的初级应用是非常简单的,通俗的说就是客户端(javascript)与服务端(asp或php等)脚本语言的数据交互。
<% ’判断文件名是否合法 Function isFilename(aFilename)  Dim sErrorStr,iNameLength,i  isFilename=TRUE
在调用的时候加入判断就行了. {aspcms:navlist type=0 } {if:[navlist:i]<6} < li><a href=\"[navlist:link]\" target=\"_top\">[navlist:name]</a> </li>
导航栏调用 {aspcms:navlist type=0}     <a href=\"[navlist:link]\">[navlist:name]</a>
1.引入外部文件: {aspcms:template src=infobar.html} 2.二级下拉菜单 <ul class=\"nav\">
downpic.asp页面:  <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">
Cookies是数据包,可以让网页具有记忆功能,在某台电脑上记忆一定的信息。Cookies的工作原理是,第一次由服务器端写入到客户端的系统中。以后每次访问这个网页,都是先由客户端将Cookies发送到服务器端,再由服务器端
很简单,在需要调用的地方用这种模式 {aspcms:content sort={aspcms:sortid} num=17 order=isrecommend}
网站系统使用ACCESS数据库时,查询时怎么比较日期和时间呢?为什么常常比较出来却是错误的呢?比如早的日期比迟的日期大?
str1=\"1235,12,23,34,123,21,56,74,1232\" str2=\"12\" 问题:如何判断str2是否存在str1中,要求准确找出12,不能找出str1中的1235、123、1232
实例为最新版本的kindeditor 4.1.5. 主要程序: <% Const sFileExt=\"jpg|gif|bmp|png\" Function ReplaceRemoteUrl(sHTML,sSaveFilePath,sFileExt)
用ASP实现搜索引擎的功能是一件很方便的事,可是,如何实现类似3721的智能搜索呢?比如,当在搜索条件框内输入“中国人民”时,自动从中提取“中国”、“人民”等关键字并在数据库内进行搜索。看完本文后,你就可以发
首先感谢ASPCMS官网注册用户xing0203的辛苦付出!一下为久忆YK网络转载原创作者xing0203的文章内容!为了让小白更加清楚的体验替换过程,久忆YK对原文稍作了修改!
数据库连接: <% set conn=server.createobject(\"adodb.connection\") conn.open \"driver={microsoft access driver (*.mdb)};dbq=\"&server.mappath(\"数据库名\")
第1步:修改plugins下的image/image.js 找到\'<input type=\"button\" class=\"ke-upload-button\" value=\"\' + lang.upload + \'\" />\',
asp函数: <% Const sFileExt=\"jpg|gif|bmp|png\" Function ReplaceRemoteUrl(sHTML,sSaveFilePath,sFileExt)