5.2 使用sqlmap进行MSSQL注入及防御
5.2.1 MSSQL数据注入简介
SQL注入攻击是通过带入恶意查询语句对后台数据库进行各种违规操作的行为,称为SQL注入攻击,一直位于OWASP榜首,常见的架构是ASP+IIS+MSSQL或者ASP.NET+IIS+MSSQL,当然也有JSP和PHP等相关框架使用MSSQL数据库的情景
5.2.2 MSSQL数据库注入判断
在使用sqlmap进行MSSQL注入时,需要手工进行注入点判断和测试,也可以使用一些工具进行判断测试
1. 数据库类型判断
(1) 单引号判断
如果在目标站点上加入单引号,通过页面报错,判断数据库的类型,如果是返回显示有包含SQL Server,那么可以确认数据库类型是MSSQL
(2) 不显示数据库类型
在某些情况下可能会显示"500 - Internal server error" 错误信息,这种情况下有可能是存在SQL注入
(3) 获取网站的真实路径
有时候某些站点加入单引号会有显示出错的信息,却不一定存在SQL注入漏洞,但是能够暴露出真实的路径也给外面提供的更有效的攻击信息
(4) 通过查询sysobjects 值来判断
通过查询sysobjects值来判断,可以参考一下两个查询,具体如下:
* and exists(select * from sysobjects)--
* and exists(select count(*) from sysobjects)--
http://testasp.vulnweb.com/showforum.asp?id=0%20and%20exists(select%20*%20from%20sysobjects)--
http://testasp.vulnweb.com/showforum.asp?id=0%20and%20exists(select%20count(*)%20from%20sysobjects)--
以上显示是正常的,表示为SQL Server
2. 判断注入点
通过使用and 1=1 和 and 1=2 然后根据页面显示的访问结果来判断是否存在注入,具体看如下访问地址:
http://testasp.vulnweb.com/showforum.asp?id=0%20and%201=1 访问结果正常
http://testasp.vulnweb.com/showforum.asp?id=0%20and%201=2 访问结果异常,显示500内部错误
有一种情况下,上