收藏本站 收藏本站
积木网首页 - 软件测试 - 常用手册 - 站长工具 - 技术社区
积木学院 > 黑客技术 > 菜鸟入门 > 正文

最简单的几种攻击和防范方法

来源:互联摘选 日期:2005-03-04 18:03

本节介绍的攻击方法是为后面专门介绍相关内容做铺垫,读者在学习的时候应该多了解一些有关Perl和网站的知识,如果可能,最好在自己的系统中安装一套网站服务程序,然后寻找一些免费的Perl代码进行调试、研究。

一、攻击免费论坛:
这里介绍的攻击非常简单,它所达到的效果就是获得论坛管理员密码、具有修改论坛的权限等,所以并不设计漏洞扫描和清除痕迹等步骤。首先介绍一下问题的起源:在网络上很多网站都提供了论坛或者电子留言版,这些服务大多数使用asp、php、cgi或者perl编写完成,而对于这些免费的论坛代码黑客也能够获得,因此只要经过分析就可以找到“免费软件中的缺陷”,进而对网站上提供的论坛进行攻击。
例如http://www.ls1238.com/网站提供的“稿件管理系统”就存在一个很严重的问题(本人已经和他们联系并说明此漏洞、相关漏洞现已修复),让我们看看通过浏览器访问它的形式,当我们阅读其中的稿件时,会发现在URL内的地址是/list.asp?articleid=nnnn,显然list.asp是显示文章的程序,而后面的?articleid=nnnn则是它的参数,nnnn是文章的编号。当黑客申请成为tougao网站的一员后,便拥有了上传文章和修改、删除自己发表文章的权利,修改文章使用editarticleself.asp?articleid=nnnn,其中的nnnn应该是自己的文章代码,但是如果黑客将文章代码改变会怎么样呢?
修改了文章代码后发现,可以对其他文章进行修改!也就是说任何经过免费注册成为tougao网站的用户都可以拥有修改任意文章的权利,同时使用delarticleself.asp则可以删除任何文章!
一次攻击过程我已经叙述完了,是不是非常简单?其实像这种问题网络上随处可见,好好想一下,如果对nnnn的修改进行的更“不着边际”,例如输入几个英文字母或者标点符号会出现什么情况?经过尝试发现,当属的数值为“单引号”是,系统会出现错误并报告数据库文件的名称、磁盘物理路径等敏感信息,这样就可以直接通过下载软件将他们的数据库下载到本地并从中找到管理员账号。
在早期的YukiBBS3000上,当注册者的注册信息内包含单引号时,也会出现“程序运行错误”的提示,并且造成论坛的内部数据错误,彻底终止论坛的正常运行。

二、防范攻击:
相对来说,网易、新浪等大型门户网站在这方面做的比较好,他们对文章ID号进行了判断,防止特殊字符的介入,如果使用者输入了非法的字符,经过检测系统会提示输入的ID号码非法,并且拒绝接受请求,返回一个“输入字符非法”的界面。
另外对于文章的修改,他们也考虑的非常周到,在进行每一次文章修改的时候,系统都会检测用户身份,确定准备修改的文章是否属于登陆身份,如果不属于则会提出警告信息。而实际上,这种问题在早期他们的网站上也是存在的,只不过因管理员网络安全意识比较强,因此即使的发现并修补了漏洞。
cgi、perl等程序在设计的时候,必须考虑到各种可能出现的情况,例如对文件名的提交必须考虑周到,一个程序没有考虑到的特殊名称也许会对系统造成非常严重的后果,用户输入一个文件名,有可能就试图打开输入危险字符串!例如用户输入的文件名中包含路径字符,如目录斜杠和双点!尽管你期望的是输入公用的文件名(例如report.txt),但结果却可能是/report.txt或../../report.txt等等,系统中所有文件就有可能泄露出去,后果是可想而知的。
设计cgi、perl程序,最好能够在代码中加入下面的非常字符检测代码:
if(($file_name=~/[^a-zA-Z_\.]/)||($file_name=~/^\./))
{ #文件包含有不合法字符 }
另外还要注意对大于号、小于号的判断,因为这两种符号是html文档中的属性符号,不进行屏蔽会对论坛造成严重的后果,网络上不是有很多“小儿科”的聊天室踢人术吗?简单的方式是不允许小于号和大于号的出现,因为所有HTML语法必须包含在这两个字符间,如果程序检测到它们就返回一个错误提示,下面一行Perl代码快速地清除了这两个字符:
$user_input=~s/<>//g;
当然还有比较好的选择,就是将这两个字符转换成它们的HTML换码(特殊的代码),用于表示每个字符而不使用该字符本身。下面的代码通过全部用<替换了小于符号,用>替换了大于符号,从而完成了转换过程:
$user_input=~s/</& lt;/g;
$user_input=~s/>/& gt;/g;

三、编写简单的邮件炸弹:
利用Perl程序可以非常快速的编写邮件炸弹程序,这种方法比起直接使用别人编写的邮件炸弹要好的多,至少学习者能够真正“体会一下”什么才是黑客。有关这个炸弹的编译环境是具备一台有CGI权限的网络服务器,同时这台服务器上提供了sendmail命令(当然这一切可以在自己的系统上进行设置),并且学习着还要初步了解有关perl语言的知识。
程序的原理非常简单,就是利用sendmail命令向目标重复发送相同内容的电子邮件,为了控制发送邮件的数量,我们声明一个计数器变量,同时将程序用while()函数做循环,下面我们看一下程序的源代码:

#!/bin/perl
$file='/user/lib/sendmail';
$target='someone@target.com';
$count=0;
while($count<1000){
open(MAIL,"/$file$target") || die" Can not open $file!\n
print MAIL"哈哈,你被攻击啦"
close(MAIL);
sleep 3;
$count++;
}

看明白了吗?程序就上面这点儿,是不是非常简单?因为Perl属于解释型语言,因而不需要进行编译,直接将源代码上传到服务器上,然后设置成为755或者775型,就可以通过浏览器调用而直接使用了。程序中的$file和$target变量分别定义了sendmail命令的路径和目标的地址,在使用此程序以前要根据个人需要进行修改,而$count变量是我们要发送的炸弹邮件数量,因为发送邮件工作是服务器完成的,因而速度非常快,这个数量可以设置的大一些,我们并不会感觉到程序的缓慢。

四、使用Outlook制作电子邮件炸弹:
相对上一种方法,这个方法更加直接,它不需要专用工具而只需要利用Outlook电子邮件客户端软件就可以轻松完成。首先介绍一下邮件炸弹的基本原理:电子邮件炸弹一般来说分成两种。一种是通过发送巨大的垃圾邮件使对方电子邮件服务器空间溢出,从而造成无法接受电子邮件;另一种方法是无休止的发送相同内容的但很小的邮件使对方接收不过来而放弃自己的电子邮箱。因此我们只要实现其中的一种即可称之为“邮件炸弹”。
使用Outlook制作电子邮件炸弹就是利用了上面说的第二种方法,不断的向指定目标发送电子邮件,首先我们要做一些准备工作:申请一个免费的电子信箱,并把这个信箱账号设置到Outlook中,然后选择Outlook工具菜单的“工具”-〉“账号”,选择其中刚刚申请的那个电子邮件账号,然后点击窗口右面的“属性”按钮。在出现的属性窗口中继续点击窗口上面的“高级”标签,更改“发送”设置中的“邮件拆分大小”属性值,这个值尽量更改的小一些(推荐更改成16),确认退出。
这样以后只要使用这个经过设置的电子信箱发电子邮件,只要邮件的大小超过了规定的字节数,Outlook就会自动将电子邮件进行分割,例如一封1600KB的信件,将它拆分成16KB一封的电子邮件发送给对方,对方的信箱中就会出现100多封电子邮件,邮件炸弹的功能就实现了!

五、如何防止电子邮件炸弹:
电子邮件的防范可以从多个方面着手,例如未雨绸缪、从开始就谨慎的使用电子信箱,或者也可以亡羊补牢、尽快修复电子信箱,在网络上,大多数关于防范邮件炸弹的文章都说的是Linux等系统,而真正涉及初级用户的并不是很多,然是实际更多的人使用的还是Windows系统,即便pop3服务器是Linux系统,现在也没有更多的人通过传统的命令方式接收邮件了,这里将讲述一个与读者联系紧密的防止电子邮件炸弹的方法。
1、不公开信箱地址、准备多个信箱:
早作准备,不让黑客知道自己的电子信箱地址是最好的方法,这就需要使用者在网络上尽量少的公开自己的信箱地址,不要轻易将地址留给不认识的人或者留在电子论坛上。当然,如果可以,使用者可以多申请几个电子信箱,不同的信箱联络不同的人,专门预备出一个公开的电子信箱,一旦受到攻击也不会造成过多的损失。
2、使用软件快速清理炸弹邮件:
使用BombCleaner等炸弹清理软件,可以在不接受信件的时候察看邮件清单,从中选择垃圾信件进行远程删除,这样做可以节省大量下载信件的时间,同时也堵住了通过电子邮件传播的病毒。但是这种方法有它最明显的缺陷:一旦信箱已经被邮件塞满了,就来不及删除上面的信件、而且信发送过来的重要信件也无法接收了。
3、设置信箱过滤:
信箱过滤可以很好的解决上面软件解决不了的问题。过滤器可以设置在本地的电子邮件客户端程序上,也可以直接通过浏览器在pop3信箱的内部进行设置,前者和上面介绍的利用软件基本类似,也是在接收电子邮件的时候对邮件是否属于垃圾或炸弹进行判断,所以在信箱被塞满的时候也不见的起到什么效果。
但是如果能够在pop3服务器上设置自己信箱的过滤,就可以从根本上避免被攻击的可能了。具体做法是这样的,通过浏览器登陆到pop3服务器上,然后进入自己的信箱,之后找到“邮件收发设置”,并且在其中的过滤器内填写有关发送垃圾邮件的邮件地址(多个地址可以用分号隔开),并且确认保存,这样就能够在服务器上过滤掉炸弹邮件、保障自己的电子信箱安全了。
4、设置接收邮件的大小:
如果黑客发送过来的不是成百上千封“小信件”,而是一封上百兆的炸弹怎么办呢?这种邮件不需要多少,一封过来就可以把电子信箱塞的满满的,所以用户在设置“过滤”的时候,还要注意“接收信件大小”选项,最好将这个数值控制在电子信箱的三分之一左右。例如使用者的电子信箱空间是三十兆,那么可以通过设置规定接收信件的大小不得超过十兆每一封,如果超过了这个数值,那么来信将被确认为邮件炸弹,而直接被系统舍弃,这样邮件炸弹便再无施展自己的空间了。

推荐阅读

 

热点信息

 
强悍的草根IT技术社区,这里应该有您想要的! 友情链接:b2b电子商务
Copyright © 2010 Gimoo.Net. All Rights Rreserved  京ICP备05050695号