首页>文档>sqlmap>什么是 sqlmap

什么是 sqlmap

什么是sqlmap?

SQLmap是一款用来检测与利用SQL注入漏洞的免费开源工具,有一个非常棒的特性,即对检测与利用的自动化处理(数据库指纹、访问底层文件系统、执行命令)。

什么是 sqlmap

sqlmap 官方站点

1、检测并利用SQL注入

比方说,你在审计一个Web应用程序,发现一个接受动态用户提供的【GET】,【POST】值或【Cookie参数】或者【User-Agent请求头】的网页。你现在要测试这些参数是否存在SQL注入漏洞,如果存在,则利用这些注入点从数据库管理系统检索尽可能多的信息,甚至能够访问底层文件系统和操作系统。

举一个简单的例子,假设目标网址是:

http://192.168.136.131/sqlmap/mysql/get_int.php?id=1

假设:

http://192.168.136.131/sqlmap/mysql/get_int.php?id=1+AND+1=1

与原始网页相同,但是

http://192.168.136.131/sqlmap/mysql/get_int.php?id=1+AND+1=2

与原始网页不同,这可能意味着当前页面id GET参数中存在SQL注入漏洞。另外,在将SQL语句发送到后端数据库管理系统之前,不会发生对用户输入的保护。

这是动态Web应用程序中的一个常见缺陷,它不依赖后端数据库管理系统或Web应用程序编程语言; 这是应用程序代码中的一个缺陷。从2013年开始,在开放Web应用安全项目已经将SQL注入列为最常见和严重的web应用漏洞的前十。

现在你已经找到了易受攻击的参数,你可以通过操纵HTTP请求中的id参数值来利用它。

回到场景中,我们可以对get_int.php网页中的SQL语句的语法做出有根据的猜测。在伪PHP代码中:

$query = "SELECT [column name(s)] FROM [table name] WHERE id=" . $_REQUEST['id'];

如你所见,在参数id的值之后追加一个语法有效的SQL语句(True,例如 id=1 AND 1=1)将导致Web应用程序返回与原始请求中相同的网页。前面的例子描述了一个简单的基于bool的盲注漏洞。但是,sqlmap能够检测到任何类型的SQL注入漏洞并相应地调整其工作流程。

在这种简单的情况下,它还可以附加,不仅仅是一个或多个SQL条件,还可以是(依赖于DBMS)堆叠的SQL查询。例如:

[...]&id=1;ANOTHER SQL QUERY#。

sqlmap可以自动识别和利用这种类型的漏洞。将原始地址传递http://192.168.136.131/sqlmap/mysql/get_int.php?id=1给sqlmap,该工具将自动:

  • 确定可注入的参数(id在本例中)
  • 确定可以使用哪种SQL注入技术来注入
  • 识别出哪种数据库
  • 根据用户的选择,读取哪些数据

2 、直接连接到数据库管理系统

直到sqlmap版本0.8,该工具已经彻底进化,已经被Web应用程序渗透测试人员等广泛使用。事情继续前进,随着它们的发展,我们也做得很好。现在它支持这个新的功能【-d】,它允许你从你的机器连接到数据库管理系统,并执行你在SQL注入时要做的任何操作。

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索