干货 | Sqlmap常用手册(收藏)

266 篇文章 1 订阅
92 篇文章 0 订阅

sqlmap常用手册

一、sqlmap介绍

相对于手工注入,sqlmap的高效注入大大提高了我们渗透效率。Sqlmap采用了以下5种独特的SQL注入技术:

  • 联合查询,在可以使用Union的情况下注入(注入效率最高,成本最低)
  • 报错注入,即页面会返回错误信息,或者把注入的语句的结果直接返回到页面中
  • 布尔盲注,即可以根据返回页面判断条件真假的注入
  • 延时注入,即不能根据页面返回的内容判断任何信息,要用条件语句查看时间延迟语句是否已经执行(即页面返回时间是否增加)来判断
  • 堆叠查询,可以同时执行多条语句时的注入

注入小技巧:有回显可以用联合查询,有报错可以用报错注入。都没有再看有没有布尔类型的状态(显示或者不显示)。若以上都没有,试试用延时注入。或者我们直接测试延时注入

二、常用命令

当发现sql注入的时候,根据我们注入的不同,对sqlmap使用的参数也不同

  1. 目的是获取网站后台管理的账号密码
  • 查看当前数据库名字,即当前网站所属数据库名字
  • 列出数据库中的表
  • 觉得哪个表放着账号密码,就爆哪个表
  • 一般密码经过了md5加密处理,需要进行hash碰撞
  1. 目的是获取mysql的管理账号、密码进行远程连接
  • –users

  • –passwords

    sqlmap -u URL 检查注入点 sqlmap -u URL --dbs 列出数据库中所有数据库的名字 sqlmap -u URL --is-dba 当前用户是否是数据库管理员 sqlmap -u URL --current-db 显示当前数据库的名字

    -D 指定数据库 --tables 列出所有表名 qlmap -u URL -D “xx” --tables 列出xx数据库中的所有表 -T 指定一个表 --columns 列出所有的字段名 qlmap -u URL -D “xx” -T “cc” --columns 列出表中所有的字段名 -C 指定一个字段名 --dump 列出字段内容 qlmap -u URL -D “xx” -T “cc” -C “x,x,…” --dump 列出字段内容(-T ,-C之类的要用大写不然有时候会读不出来) sqlmap -r a.txt -p username 倒入txt文档的post数据包,并指定参数username进行注入

    –dbms mysql 指定注入的数据类型为mysql数据库

    –os-shell 尝试写入shell sqlmap -u url --batch --smart 自动聪明的选择,即执行的时候不需要我们再手动的进行选择yes或者no(但是由于机器自动进行选择,所以有时候结果会不一样比如没有结果,所以建议少使用) --force-ssl 测https的时候 --cookie “cookie值” 有些网站要登录才行,所以需设置cookie --threads=10 开启多线程,默认是单线程为1,最大10。线程越大检测速度越快 --users 获取mysql数据库管理用户,mysql安装时会默认有一个root用户,除了这个用户可能还会创建有其他用户,这个参数可以将这些用户列出了 --passwords 获取mysql数据库管理用户的hash值

–dbms:指定注入的数据库类型,如Microsoft Access, Microsoft SQL Server, MimerSQL, MonetDB, MySQL, Oracle, Percona, PostgreSQ

-v 3

如果你想观察sqlmap对一个点是进行了怎样的尝试判断以及读取数据的,可以使用-v参数。

共有七个等级,默认为1:

  • 0 只显示python错误以及严重的信息。
  • 1 同时显示基本信息和警告信息。(默认)
  • 2 同时显示debug信息。
  • 3 同时显示注入的payload。
  • 4 同时显示HTTP请求。
  • 5 同时显示HTTP响应头。
  • 6 同时显示HTTP响应页面。

如果你想看到sqlmap发送的测试payload最好的等级就是-v 3。

二、进阶命令

–technique=BEUST

有时候我们手工探测出来注入是某种类型,为了节省时间,我们可以直接指定sqlmap注入的类型

BEUST的值可以是"BEUST"中的一种。

  • B: Boolean-based blind SQL injection(布尔型注入)
  • E: Error-based SQL injection(报错型注入)
  • U: UNION query SQL injection(可联合查询注入)
  • S: Stacked queries SQL injection(可多语句查询注入)
  • T: Time-based blind SQL injection(基于时间延迟注入)

sqlmap.py -r x.txt -v3 --technique=B #指定进行布尔盲注

–prefix与 --suffix

  • –prefix 在payload最前面加上指定的字符
  • –suffix 在payload最后面加上指定的字符

我们在注入的时候经会碰到需要在payload前加上指定的字符要构造闭合,如下这种情况,我们找到了注入点为’ ,但是还得在后面加上 or ’ 才行,与原来的sql语句构成闭合

图片

所以我们就指定sqlmap在每个payload前面加上 ’ ,每个payload后面加上 or ’

sqlmap.py -r x.txt --prefix "'"  --suffix " or '" -v3

图片

–level

有时候注入的时候,我们发现了注入点但是使用sqlmap确注入不出来,发现sqlmap只发出了十几个包就说漏洞不存在然后停止运行了。那很有可能是你没有加此参数进行注入。

–level有五个等级(1-5),默认使用等级1进行注入。级别越高sqlmap发送的探测payload就越多,越有可能发现注入漏洞。为了尽可能发现漏洞,我们应该使用更高的级别,如 --level 5

sqlmap.py -r r.txt -dbms mysql --technique=T -v3 --level 5

三、注入https网站

sqlmap跑https站点会报错,传送门目录

–force-ssl

通过本地代理端口进行访问


–force-ssl

使用sqlmap注入https的网站时,如果没有进行任何处理则会报错如下,连接不了目标。就是因为ssl证书的原因,而且sqlmap它是不能自动伪造ssl证书的

图片

可以使用sqlmap直接加上–force- ssl参数,告诉sqlmap这是https服务。或者可以在Host头后门加上:443(默认不是443)。如果还是不行,我们就设置一个代理

图片

通过本地代理端口进行访问

这里通过代理本地的burp进行访问,如下

  1. burp开启代理监听端口

监听的ip为现在使用的网卡的ip,端口输入如8081

图片

  1. 使用–proxy参数

如下进行代理,成功解决ssl报错的问题

图片

四、进行POST注入

不管是POST还是GET型注入,我们都可以在想要注入的参数后加*,代表对此参数进行注入,如对id参数进行注入,sqlmap -u "https://xx.xx.com?id=23* "

——>我们都知道在web中进行数据传参用的最多的就是GET型或者POST型方法,所以根据此我们也可以把注入分为GET型注入和POST型注入

  • GET型:http://192.168.80.146/2_Shotting_Range/sql/Less-1/?id=1 通过在可见的URL中进行传参
  • POST型:与数据库交互是通过post数据进行,url不可见

post型注入例子

图片

有两种方法,一种是-r的方式,另一种是–data

1. sqlmap -r

如下获取到post的数据,在我们可能认为存在注入的参数后面加上*号,*号代表优先级,sqlmap会识别优先注入这个参数。然后将HTTP请求包保存为txt文件,接着sqlmap -r xx.txt就行。

或者我们不在参数后面加*,sqlmap会依次询问你是否对所有参数进行注入

图片

2. --data

这种不需要将数据进行保存,我们只需要将post数据复制下来

sqlmap -u --data="key=value"

(1)复制所有post数据下来

sqlmap会逐个的检测每一个参数是否存在注入

图片

或者我们也可以在参数后面加*,sqlmap会优先检测这个参数

图片

(2)只复制我们想测试的部分post参数

如下,sqlmap虽然也会检测,但是一直显示不存在漏洞

图片

所以我们使用 --data参数时需要将所有的post数据都复制下来进行测试

sqlmap -r和–data两种方式都可以,看自己方便

-END-


拿下NISP证书之后,身为普通的你可以:

跨越90%企业的招聘硬门槛

增加70%就业机会

拿下奇安信、腾讯等全国TOP100大厂敲门砖

体系化得到网络安全技术硬实力

IT大佬年薪可达30w+

如何入门学习网络安全【黑客】

【----帮助网安学习,以下所有学习资料文末免费领取!----】

> ① 网安学习成长路径思维导图
> ② 60+网安经典常用工具包
> ③ 100+SRC漏洞分析报告
> ④ 150+网安攻防实战技术电子书
> ⑤ 最权威CISSP 认证考试指南+题库
> ⑥ 超1800页CTF实战技巧手册
> ⑦ 最新网安大厂面试题合集(含答案)
> ⑧ APP客户端安全检测指南(安卓+IOS)

大纲

首先要找一份详细的大纲。

img

学习教程

第一阶段:零基础入门系列教程

img

该阶段学完即可年薪15w+

第二阶段:技术入门

弱口令与口令爆破
XSS漏洞
CSRF漏洞
SSRF漏洞
XXE漏洞
SQL注入
任意文件操作漏洞
业务逻辑漏洞

该阶段学完年薪25w+

img

阶段三:高阶提升

反序列化漏洞
RCE
综合靶场实操项目
内网渗透
流量分析
日志分析
恶意代码分析
应急响应
实战训练

该阶段学完即可年薪30w+

CTF比赛视频+题库+答案汇总

img

实战训练营

img

面试刷题

img

最后,我其实要给部分人泼冷水,因为说实话,上面讲到的资料包获取没有任何的门槛。

但是,我觉得很多人拿到了却并不会去学习。

大部分人的问题看似是“如何行动”,其实是“无法开始”。

几乎任何一个领域都是这样,所谓“万事开头难”,绝大多数人都卡在第一步,还没开始就自己把自己淘汰出局了。

如果你真的确信自己喜欢网络安全/黑客技术,马上行动起来,比一切都重要

资料领取

上述这份完整版的网络安全学习资料已经上传网盘,朋友们如果需要可以微信扫描下方二维码 即可自动领取↓↓↓
或者

点此链接】领取

  • 25
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值