SQL注入攻击时提交的输入信息所形成的交互信息与一次正常的页面访问是相同的,不同之处是提交的页面参数是攻击者精心准备并能达到某种目的的数据库查询或者其他一些数据库命令,所以常见的网络防火墙以及防病毒软件等都不会对SQL注入发出警报。如果网站管理员没有定期地查看网站日志信息或者有意识地检索近期上传文件列表的话,可能网站被入侵很久都不会有所察觉。
另外,SQL注入的方法是相当灵活的。在实际进行SQL注入评估时会碰到很多不同的情况(有些网站可能对用户的输入数据进行了过滤,但又过滤得不完整,或者可以使用Cookie注入,使用Cookie信息进行查询字符的拼接),因此在实际检测时需要根据当时的具体情况进行分析,构造合适的SQL语句,从而达到成功获取数据的效果(对于有输入过滤的页面,需要根据不同的情况变换输入数据)。
2、跨站脚本漏洞
跨站脚本漏洞是指恶意用户在网站上的某些可以留言或者其他一些网页上添加精心构造过的HTML脚本代码,并且网站服务器会解析执行这些脚本代码。那么在其他用户访问该页面的时候,嵌入的脚本代码就会被解析执行,从而实现这些经过精心构造的脚本的功能。
跨站脚本漏洞的攻击是属于被动式的攻击,无论嵌入的脚本是在网站的网页中还是在邮件中,都需要用户进行了访问或者点击才能达到预定的效果,这与上文提到的SQL注入攻击的主动方式有较大的区别。
3、上传漏洞
可以上传文件并且该文件上传之后可以到指定网站虚拟目录中进行访问的网站或者论坛上可能会存在上传漏洞。利用上传漏洞可以向网站上传Web shell(Web shell为能达到隐蔽控制效果的网页后门程序,通常有执行cmd命令、查看磁盘文件信息、控制系统等功能)。一旦有Web shell上传到网站上,那么该网站将可能会被长时间地侵入,使网站上的信息以及用户的数据变得不再安全,并且也可能会威胁到同在一个虚拟主机上的其他网站服务器。
上传漏洞形成的原理为:在文件上传时可以更改添加文件类型或者通过/0截断字符串的方式把原本上传的文件类型改为Web shell的文件类型。通过以上的类似方法来绕过类型验证程序达到上传指定文件的目的。
针对于该漏洞的渗透就是在确定能上传的基础上,上传能进一步收集信息和检测的Web shell网页后门。若上传文件大小受限,则还需先上传小型的一句话Web shell或者其他小型Web shell。
4、旁注漏洞
当网站本身不存在漏洞时,若网站服务器运行的虚拟主机上其他的网站存在漏洞,那么也有可能导致该不存在漏洞的网站遭到攻击,这就是旁注漏洞攻击。
旁注漏洞原理是,通过查询同一IP地址上(也就是同一虚拟主机)的其他域名,查看服务器上是否存在可以被利用的漏洞。通过入侵有漏洞的网站,进一步入侵虚拟主机,最后使没有漏洞的网站遭到入侵。
评估网站旁注漏洞的主要原理是,使用whois技术查看同一虚拟主机上是否存在多个网站服务器,如果存在则可能存在旁注漏洞。
(三)Web渗透测试
渗透测试并没有一个标准的定义。国外一些安全组织达成共识的通用说法是,渗透测试是通过模拟恶意黑客的攻击方法,来评估计算机网络系统安全性的一种评估方法。
利用渗透测试技术进行系统安全评估与常用的评估手段有所不同。相比较而言,通常的安全评估方法对被测试系统的评估更具有全面性结果,而渗透测试则更注重安全漏洞的危害性及严重性。在进行渗透测试时,渗透测试人员会站在恶意攻击者的角度,模拟恶意攻击者的思维及利用漏洞发现技术和攻击手法,发现被测试系统中潜在安全隐患及脆弱环节,从而对被测试系统做的一次深入性的安全检测工作。在进行测试过程中,测试人员会采用包括目录猜解、口令猜测、密码破解、端口扫描、漏洞扫描等技术手段,通过不同途径来对被测试网络的各个环节进行安全性检测。
(四)Web渗透测试的基本步骤
1、信息收集
对目标网络进行侦查之前,首先要收集汇总各种与目标系统有关的信息,形成对目标网络必要的轮廓认识,并为实施攻击做好准备。
信息的收集可以通过这几种方式进行:DNS域名服务,Finger服务,Whois 服务,Nslookup,Ping与Path Ping,Tracert等信息查询。