WEB漏洞挖掘技术
|=---------------=[ WEB漏洞挖掘技术 ]=-----------------------------=|
|=-----------------------------------------------------------------=|
|=---------------=[ 7all<7all7_at_163.com> ]=----------------------=|
|=-----------------------------------------------------------------=|
|=---------------=[ bbs.cciss.cn ]=--------------------------------=|
--]前言
漏洞挖掘技术一直是网络攻击者最感兴趣的问题,漏洞挖掘的范围也在随着技术的
提升而有所变化.在前期针对缓冲区溢出 格式化字符串 堆溢出 lib库溢出等技术都
是针对ELF文件(Linux可执行文件)或者PE文件(Win可执行文件)的漏洞挖掘技术.
在针对ELF文件 PE文件(*.exe与*.dll)的漏洞挖掘过程中,出现了很多的漏洞挖掘
技术,但是针对PE文件 ELF文件的漏洞挖掘始终停留在了黑盒测试(包括单元黑盒测试)
源代码审计等办法.通过RATS等源代码审计软件可以找到部分源代码级别的漏洞信息,
但是毕竟源代码审计软件寻找的多数为strcpy memcpy等存在缓冲区溢出遗患的C函数,
所以通过审计源代码的办法来进行漏洞挖掘是一个可能性系数很小的漏洞挖掘技术,而
针对软件的黑盒子测试虽然也能找到一些软件的漏洞,但可能性系数也会较小,在国外
的一些进行漏洞挖掘的办法已经慢慢的提升为自己写黑盒子测试代码,然后针对系统或
软件的某个功能模块进行模块化的漏洞挖掘技术.例如Linux内核的很多漏洞都是通过
fuzzing技术找到的,fuzzing即模糊测试的意思,大家可以理解为类似SQL盲注入类型的
攻击技术.
网络安全的界限在不断的提升,目前缓冲区溢出漏洞已经如MS SQL注入般的被很多人
堵死,而在进行网络入侵渗透的过程中,很多人渗透成功的着力点都是通过WEB开始的,
当然有些人是通过MS SQL注入,有些人通过其它的WEB漏洞技术一步步的走到了入侵成功
的步骤.我们下面将会讨论一些WEB漏洞挖掘的简单技术,通过这些简单技术的规则,然后
配合经验的提高,大家或许会得到意想不到的效果.
--]WEB漏洞的分类
A: SQL注入(包括MSSQL MySQL Oracle等)
SQL注入漏洞,是依靠存在弱点的WEB脚本代码,来实现通过浏览器执行任意SQL语句,从而
实现最终获取某种权限的攻击技术.SQL注入的关键部分在于对元数据的利用,所谓元数据即
数据库的基础数据.例如我们可以通过database() version()来获得数据库的名称及版本,
而我们通过SQL内置函数获得的这些内容都属于数据库元数据的内容.理解了元数据的概念,
在后面的章节我会给大家简单的讲解下通过元数据来获取MySQL的数据表.
B: 文件包含类型,如PHP的的远程 本地文件包含漏洞
文件包含漏洞是PHP程序特有的一个弱点攻击,原理就是在使用include时没有安全的编程,
而能够找到文件包含漏洞则是入侵一个WEB系统的很重要的因素,有了文件包含漏洞则可以
很快速的达到上传WEBSHELL,然后本地提升权限的作用.
C: XSS
XSS漏洞是被很多人遗忘的漏洞,但是XSS也是一个比较危险的安全隐患,我看到很多国内介绍
XSS漏洞的文章大部分在如何欺骗管理员获得后台登陆帐户或者管理员的cookies文件.但这些
仅仅是XSS漏洞的简单用法,如果寻找到的XSS漏洞可以任意执行任何的Javascript脚本,那安全
性也是不容忽视的.通过Javascript脚本其实也可以做一些恶意的攻击,甚至可以获得一些WEB
程序的源代码,当然这个要看大家对Javascript脚本的熟悉程度.例如我们这几天公布的这个可
跨站执行任意Javascript脚本的漏洞,最后我也通过这个漏洞给客户演示了如何获取他们的服务
器信息,并最终实现得到其一定权限的方法.
同时例如session欺骗 cookies欺骗,目前我也把这些规入了XSS漏洞的范围,当然仅仅研究这
两个技术也是很值得大家去深入的进行漏洞挖掘的.
--]WEB漏洞挖掘规则
我想给大家事先说明下,该文档的所有内容都为黑盒子测试的范围,也即使用这些漏洞挖掘规则,
大家仅仅需要一个WEB浏览器,如IE Firefox等即可,也无需读取WEB程序的源代码,只要某个规则
符合了漏洞规则的要求,大家即可以采取相关的漏洞攻击技术进行相应的漏洞攻击办法
再次的罗嗦一下,在本文档我没有实际的例子给大家,但是很多漏洞挖掘的规则都是一些经验的
积累,而且很多可能在实际进行漏洞挖掘时需要与实际情况进行分析处理,例如: