SQL注入

  • SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。
  • 而SQL***就是在用户输入数据特征的时候,注入一些特殊的指令来破坏原本的SQL语句查询功能,从而使得一些功能失效或者查询到本来无法查询到的重
    要数据。

跨站脚本***(XSS)

  • 跨站脚本***(XSS,Cross-site scripting)是最常见和基本的***WEB网站的方法。***者在网页上发布包含***性代码的数据。当浏览者看到此网页时,特定的脚本就会以浏览者用户的身份和权限来执行。通过XSS可以比较容易地修改用户数据、窃取用户信息,以及造成其它类型的***,例如CSRF***。
    常见解决办法:确保输出到HTML页面的数据以HTML的方式被转义

出错的页面的漏洞也可能造成XSS***.比如页面/gift/giftList.htm?page=2找不到,出错页面直接把该url原样输出,如果***者在url后面加上***代码发给受害者,就有可能出现XSS***

跨站请求伪造***(CSRF)

跨站请求伪造(CSRF,Cross-site request forgery)是另一种常见的***。***者通过各种方法伪造一个请求,模仿用户提交表单的行为,从而达到修改用户的数据,或者执行特定任务的目的。为了假冒用户的身份,CSRF***常常和XSS***配合起来做,但也可以通过其它手段,例如诱使用户点击一个包含***的链接

解决的思路有:

采用POST请求,增加***的难度.用户点击一个链接就可以发起GET类型的请求。而POST请求相对比较难,***者往往需要借助JavaScript才能实现
对请求进行认证,确保该请求确实是用户本人填写表单并提交的,而不是第三者伪造的.具体可以在会话中增加token,确保看到信息和提交信息的是同一个人
与XSS***相比,CSRF***往往不大流行(因此对其进行防范的资源也相当稀少)和难以防范,所以被认为比XSS更具危险性。

网页***

网页***的防护

  • 网页***的防范只靠杀毒软件和防火墙是远远不够的,因为一旦***使用了反弹端口的个人版***(个人反汇编的一些杀毒软件无法识别的***),那么杀毒软件和防火墙就无可奈何,所以,网页***的防范要从它的原理入手,从根子上进行防范。

  • 安装补丁 改名或卸载(反注册)最不安全的ActiveXObject(IE插件)
  • 在系统中有些ActiveXObject会运行EXE程序,比如本文中“自动运行程序”代码中的Shell.application控件,这些控件一旦在网页中获得了执行权限,那么它就会变为***运行的“温床”,所以把这些控件改名或卸载能彻底防范利用这些控件的网页***。但是ActiveXObject是为了应用而出现的,而不是为了***而出现的,所有的控件都有它的用处,所以在改名或卸载一个控件之前,你必须确认这个控件是你不需要的,或者即使卸载了也不关大体的。
    重定向***

  • 一种常用的***手段是“钓鱼”。钓鱼***者,通常会发送给受害者一个合法链接,当链接被点击时,用户被导向一个似是而非的非法网站,从而达到骗取用户信任、窃取用户资料的目的。为防止这种行为,我们必须对所有的重定向操作进行审核,以避免重定向到一个危险的地方.常见解决方案是白名单,将合法的要重定向的url加到白名单中,非白名单上的域名重定向时拒之,第二种解决方案是重定向token,在合法的url上加上token,重定向时进行验证.
    卸载(反注册)ActiveXObject过程如下:

  • 第一步:在“开始”菜单上单击“运行”,输入“CMD”命令打开命令提示符窗口。
  • 第二步:在命令提示符下输入“regsvr32.exe shell32.dll
  • /u/s”,然后回车就能将Shell.application控件卸载。如果日后我们希望继续使用这个控件的话,可以在命令提示符窗口中输入“regsvr32.exe shell32.dll/i/s”命令将它们重新安装(注册)。在上述命令中:“regsvr32.exe”是注册或反注册OLE对象或控件的命令,[/u]是反注册参数,[/s]是寂静模式参数,[/I]为安装参数。
    改名

需要说明的是,改名一个控件时,控件的名称和CLSID(Class
ID)都要改,并且要改彻底。下面仍以Shell.application为例来介绍方法。

  • 第一步:打开注册表编辑器,查找“Shell.application”。用这个方法能找到两个注册表项:“{13709620-C279-11CE-A49E-444553540000}”和“Shell.application”。
  • 第二步:把{13709620-C279-11CE-A49E-444553540000}改为{13709620-C279-11CE-A49E-444553540001},注意,不要和系统中的其它CLSID重复。
  • 第三步:把“Shell.application”改名为“Shell.application_xxx”。以后用到这个控件的时候你使用这个名称就可以正常调用此控件了。
    安全级别

有些网马只要调高IE的安全级别,或者禁用脚本,该网页***就不起作用了。从***的***原理我们可以看出,网页***是利用IE脚本和ActiveX控件上的一些漏洞下载和运行***的,只要我们禁用了脚本和ActiveX控件,就可以防止***的下载和运行。

小提示:禁用脚本和ActiveX控件会使一些网页的功能和效果失去作用,所以是否禁用,你要根据自己对安全的需要来定。

  • 第一步:在IE浏览器的菜单栏上选择“工具→Internet选项”打开“Internet选项”对话框。
  • 第二步:在“安全”选项卡上,在Internet和本地Internet区域,分别把滑块移动到最高,或者点击“自定义级别”,在打开的对话框上禁用脚本,禁用ActiveX控件。
    DOS***和CC***的区别

  • 很多朋友都知道木桶理论,一桶水的最大容量不是由它最高的地方决定的,而是由它最低的地方决定,服务器也是一样,服务器的安全性也是由它最脆弱的地方决定的,最脆弱的地方有多危险服务器就有多危险。DDOS也是一样,只要你的服务器存在一个很耗资源的地方,限制又不够,就马上成为别人DDOS的对象。比如SYN-FLOOD,它就是利用服务器的半连接状态比完全连接状态更耗资源,而SYN发动方只需要不停的发包,根本不需要多少资源。
  • 一个好的DDOS***必须是通过自己极少资源的消耗带来对方较大的资源消耗,否则比如ICMP-FLOOD和UDP-FLOOD都必须和别人一样大的带宽,对方服务器消耗多少资源自己也得赔上多少资源,效率极其低下,又很容易被人发现,现在基本没有什么人用了。
    ***原理

  • CC主要是用来***页面的。大家都有这样的经历,就是在访问论坛时,如果这个论坛比较大,访问的人比较多,打开页面的速度会比较慢,对不?!一般来说,访问的人越多,论坛的页面越多,数据库就越大,被访问的频率也越高,占用的系统资源也就相当可观,现在知道为什么很多空间服务商都说大家不要上传论坛,聊天室等东西了吧。
  • 一个静态页面不需要服务器多少资源,甚至可以说直接从内存中读出来发给你就可以了,但是论坛就不一样了,我看一个帖子,系统需要到数据库中判断我是否有读帖子的权限,如果有,就读出帖子里面的内容,显示出来——这里至少访问了2次数据库,如果数据库的体积有200MB大小,系统很可能就要在这200MB大小的数据空间搜索一遍,这需要多少的CPU资源和时间?如果我是查找一个关键字,那么时间更加可观,因为前面的搜索可以限定在一个很小的范围内,比如用户权限只查用户表,帖子内容只查帖子表,而且查到就可以马上停止查询,而搜索肯定会对所有的数据进行一次判断,消耗的时间是相当的大。CC就是充分利用了这个特点,模拟多个用户(多少线程就是多少用户)不停的进行访问(访问那些需要大量数据操作,就是需要大量CPU时间的页面)。很多朋友问到,为什么要使用代理呢?因为代理可以有效地隐藏自己的身份,也可以绕开所有的防火墙,因为基本上所有的防火墙都会检测并发的TCP/IP连接数目,超过一定数目一定频率就会被认为是Connection-Flood。
  •   使用代理***还能很好的保持连接,我们这里发送了数据,代理帮我们转发给对方服务器,我们就可以马上断开,代理还会继续保持着和对方连接(我知道的记录是有人利用2000个代理产生了35万并发连接)。
    加深理解:

我们假设服务器A对Search.asp的处理时间需要0.01S(多线程只是时间分割,对结论没有影响),也就是说他一秒可以保证100个用户的Search请求,服务器允许的最大连接时间为60s,那么我们使用CC模拟120个用户并发连接,那么经过1分钟,服务器被请求了7200次,处理了6000次,于是剩下了1200个并发连接没有被处理。
有的朋友会说:丢连接!丢连接!问题是服务器是按先来后到的顺序丢的,这1200个是在最后10秒的时候发起的,想丢?!还早,经过计算,服务器满负开始丢连接的时候,应该是有7200个并发连接存在队列,然后服务器开始120个/秒的丢连接,我们发动的连接也是120个/秒,服务器永远有处理不完的连接,服务器的CPU
100%并长时间保持,然后丢连接的60秒服务器也判断处理不过来了,新的连接也处理不了,这样服务器达到了超级繁忙状态。
  我们假设服务器处理Search只用了0.01S,也就是10毫秒(这个速度你可以去各个有开放时间显示的论坛看看),我们使用的线程也只有120,很多服务器的丢连接时间远比60S长,我们的使用线程远比120多,可以想象可怕了吧,而且客户机只要发送了断开,连接的保持是代理做的,而且当服务器收到SQL请求,肯定会进入队列,不论连接是否已经断开,而且服务器是并发的,不是顺序执行,这样使得更多的请求进入内存请求,对服务器负担更大。
 >当然,CC也可以利用这种方法对FTP进行***,也可以实现TCP-FLOOD,这些都是经过测试有效的。