电脑重装系统后,又得重新配置了,比较麻烦,所以写个文章,以后看。
简单介绍
一款开源的自动化SQL注入工具,可用于检测和利用Web应用程序中的SQL注入漏洞。它是基于Python编写的,并且具有强大的功能和易于使用的界面。使用SQLMap,您可以自动化地检测和利用SQL注入漏洞,从而快速发现和利用Web应用程序中的漏洞。SQLMap支持多种数据库管理系统,包括MySQL、Oracle、PostgreSQL等,并支持多种注入技术,如基于错误的注入、联合查询注入、时间延迟注入等。此外,SQLMap还提供了多种注入方式,如GET、POST、Cookie等,以满足不同的注入场景。总的来说,SQLMap是一款功能强大、易于使用的自动化SQL注入工具,是Web应用程序安全测试中不可或缺的工具之一。
下载安装
https://github.com/sqlmapproject/sqlmap
需要安装python环境,这个下个模块会介绍。
安装后python后,把sqlmap放在python目录下,然后创建快捷方式到本地,使用的时候比较方便。
直接在地址里输入cmd,就可以跳转到sqlmap页面
原理
利用Web应用程序中的SQL注入漏洞,通过发送恶意的SQL查询语句来获取敏感信息或者执行非授权的操作。
Sql注入原理:一般来说,Web应用程序会将用户输入的数据拼接到SQL查询语句中,如果没有对用户输入进行充分的验证和过滤,就可能会导致SQL注入漏洞的产生。
攻击者可以通过在用户输入中注入恶意的SQL语句,来执行一些非授权的操作,比如修改、删除或者获取敏感信息。SQLMap利用这种漏洞,通过自动化地发送各种类型的SQL查询语句,来探测Web应用程序中的SQL注入漏洞,并利用这些漏洞来获取敏感信息或者执行非授权的操作。
工作过程
1、目标识别:SQLMap首先通过发送特定的请求,探测目标应用程序是否存在潜在的SQL注入漏洞。它使用各种技术,如布尔注入、时间盲注和错误基于注入等来检测目标是否容易受到SQL注入攻击。
2、注入点发现:一旦SQLMap确认目标应用程序存在SQL注入漏洞,它会尝试确定注入点的位置。它使用基于不同数据库的注入技术来识别可供利用的注入点。
3、数据库指纹识别:SQLMap进一步尝试识别目标数据库的类型和版本。它发送特定的请求和语句,以获取数据库返回的信息,并通过对比已知的数据库指纹来确定目标数据库的类型和版本。
4、数据库结构获取:一旦成功确定了目标数据库,SQLMap可以进一步获取数据库的结构信息,如表、列、索引等。这些信息对于后续的数据抓取和注入非常有用。
5、数据抓取和利用:SQLMap可以执行各种数据抓取操作,包括获取数据库的数据记录、读取敏感信息、执行操作系统命令等。它可以根据用户的需求进行相应的操作,获取所需的信息或在目标系统上执行特定的命令。
SQLMAP参数详解
像个针管一样注入,挖sql注入必备神器。
-h、 --help显示基本帮助消息并退出
-hh显示高级帮助信息并退出
--version显示程序的版本号并退出
-v VERBOSE详细级别:0-6(默认值1)
-u URL,--URL=URL目标URL(例如“http://www.site.com/vuln.php?id=1“)
--data=data 要通过POST发送的数据字符串(例如“id=1”)
--cookie=cookie HTTP cookie头值(例如“PHPSSID=a8d127e..”) 随机代理使用随机选择的HTTP用户代理标头值
--proxy=proxy 使用代理连接到目标URL
--tor使用tor匿名网络 检查tor检查tor是否正确使用
--level=level要执行的测试级别(1-5,默认为1)
--risk=risk要执行的测试的风险(1-3,默认值1)
-a、 --all检索所有内容
-b、 --banner检索banner信息
--passwords枚举用户密码哈希
--dbs枚举数据库
--tables枚举数据库表
--columns 枚举数据库表列
--schema枚举架构
--dump转数据库表项
--dump all转储所有数据库表项
--os-shell 写入shell文件
--tamper 引入自己编写的payload
SQLMAP使用
Python sqlmap.py -u <地址>