操作环境:Micromedia Dreamweaver 8.0+IIS 5.0+SQL Server 2000+BBSXP 6.00 SP1 SQL
出差回来的这几天工作比较轻松,正好为大家献上前几天发现的BBSXP新漏洞,顺便给大家介绍一下查找ASP程序漏洞的方法。看到这里你应该会想到NBSI吧?没错,NBSI的确是一个不错的漏洞检测和利用的工具,但它只能针对有规律可循的简单的漏洞。从软件测试的角度来说它使用的是黑盒测试方法。而现在我要告诉大家的是白盒测试方法:从源代码中去查找漏洞(安全系数比较高的BUG)。
在开始之前要先选择一个顺手的工具,我用的是Dreamweaver 8.0。首先在DW中创建一个站点。
下面给大家介绍一些相关的理论基础,(脚本小子:这个时候千万不要不耐烦。如果到这里就不耐烦了,那你就只能做一只小菜鸟)目的是为了让大家摆脱知其然而不知其所以然的困境。
由于在ASP中的所有漏洞都是由于没有严格校验从客户端接收的数据而造成的,所谓的数字型、字符型漏洞只是在SQL查询语句中的使用方法不同而已。而在程序中所有的数据校验和转换的过程都是包含在从数据接收到执行查询语句之间的,因此我们的关注点就要放在获取客户端提交的数据与拼接查询语句之间的数据校验过程中。
为了简化查找的过程,我们要从一些关键字入手。利用Dreamweaver的搜索功能把可能会存在漏洞的位置查找出来。在ASP中接收客户端数据的方法不外乎Request对象,使用方法包括且类似于Request(“ForumID”)、Request.QueryString(“ForumID”)、Request.Form(“ForumID”)、Request.Cookies(“ForumID”)。因此只需要搜索Request关键字就可以了。
文件名中包含Admin的就不需要再看了,因为我们不可能在普通用户的状态下访问到这些文件。双击Bank.asp中的一个搜索结果在编辑窗口中可以看到下面的代码:
qmoney=int(Request("qmoney"))
if qmoney > Rs(&q[1] [2] [3] [4] [5] [6] 下一页 |