sqlmap 简单使用


环境:phpstudy:MySQL5.4.7


介绍

sqlmap是一个开源的渗透测试工具,它可以自动化检测和利用SQL注入缺陷以及接管数据库服务器的过程。它有一个强大的检测引擎,许多适合于终极渗透测试的小众特性和广泛的开关,从数据库指纹、从数据库获取数据到访问底层文件系统和通过带外连接在操作系统上执行命令。

官方网址:http://sqlmap.org

1. 命令行对单一url进行探测

对单一url探测,使用参数-u或者--url

rul格式:http(s)/targeturl[:port]/[...]

例如:

sqlmap -u "http://10.0.0.2/sqli-labs-master/Less-1?id=1" --banner

Banner信息,在banner信息中可以得到软件开发商,软件名称、版本、服务类型等信息

2.扫描文件中的url

针对文本中的url进行注入扫描:

sqlmap -m /work/url_text.text --banner

接着在这里就会自动的进行探测,如果我们使用相同的url(我们就是这么使用的),那么这里就不会反复探测同一个url了

3.配置sqlmap.conf扫描url

sqlmap -c /etc/sqlmap/sqlmap.conf

结果都是一样的

4.利用Google hacking语法进行连接

sqlmap -g "inurl:.php?id=1"

由于连接校园网,故而不能使用,附上一张别人的

2.请求参数设置1

1.sqlmap设置http方法

SQLmap会自动探测在过程中使用合适的http请求方法。但是在某些情况下,需要青志使用具体的请求方法。例如,put,强制指定 --method=METHOD

2.sqlmap设置post提交参数

强制修改:--method=post
隐式修改:data="username=admin"

例子:slq-labs

sqlmap -u "http://10.0.0.2/sqli-labs-master/Less-11/" --data="uname=admin&passwd=admin&submit=Submit" -f --banner

2.指定分隔符

如果&在post或者是get传递的参数中,那么就需要设置分隔符

--param-del=";"

直接使用;不加上设置的话会出问题

3.请求参数设置2

1.sqlmap设置user-agent

默认情况下,SQLmap使用如下用户代理头执行HTTP请求:sqlmap/1.0-dev-xxxxxx(http://sqlmap.org)

如果服务器能够进行一些防护,那么就会被阻挡

可以通过自定义用户代理作为选项的参数,可以使用选项user-agent来伪造它

此外,可以通过--random-agent,从user-agent.txt文件中随机选择一个代理头。

user-agent不能够乱写,如果乱写会报错,连接会中断。

通过sqlmap -hh,查看详细帮助,看如何写这个user-agent

查看http头

利用wireshark抓包

使用随机agent
sqlmap -u "10.0.0.2/sqli-labs-master/less-1?id=1" --random-agent

如果要对user-agent位置进行SQL注入探测,需要设置--level 3

http://10.0.0.2/sqli-labs-master/Less-18/

2.sqlmap设置host

level 5 检测

3.sqlmap设置referer

伪造HTTP Referer值是可能的。默认是没有显式设置,HTTP请求不会发送HTTP引用头

4.sqlmap设置http

--headers="Host:www.host.com\nUser-agent:user-agent"
每一个头都需要写一个\n

4.sqlmap设置请求参数3

1.SQLmap设置HTTP协议认证

SQL中设置HTTP协议认证的参数:--auth-type和--auth-cred

其中--auth-type支持basic,digest,ntlm

--auth-cred认证语法为:username:password

针对弹出验证窗口的,这个账号密码需要时正常的账号密码

2.SQLmap设置HTTP代理

隐藏真的ip

设置参数:--proxy,--proxy-cred,--proxy-file,--ignore-proxy

--proxy设置代理格式:
如果不需要代理:
--proxy http(s):ip[:port]
如果需要代理:使用--proxy-cred
--proxy-cred username:password

--proxy-file用来设置多条代理在文件中

--ignore-proxy:忽略系统范围设置的HTTP(S)代理服务器

数据先发送到代理服务器,然后代理服务器的端口号发送到目标

随便找一个代理,随便找一个网站,然后。。。嘿嘿嘿,愿望是美好的,现实是残酷的,代理用不了

然后考虑给整一个--proxy-file

3.SQLmap设置Tor隐藏

隐藏网络地址

参数:--tor,--tor-port,--tor-type,--check-tor

首先需要安装tor
apt-get install tor
启动服务
service tor start
查看状态
service tor status

sqlmap -u "http://10.0.0.2/sqli-labs-master/Less-18/" --data="uname=admin&passwd=admin&submit=Submit" --tor --tor-type https --check-tor

如果拥有自己的vps就可以使用tor网络进行扫描,隐藏真实的ip地址

4.SQLmap设置延迟

SQLmap探测过程中会发送大量的探测payload到目标,如果默认情况过快的发包速度会导致目标预警。为了避免这样的情况发生,可以在探测设置SQLmap发包延迟。默认情况下,不设置延迟。

--delay 0.5 设置延迟0.5秒

5.sqlmap设置请求参数4

1.SQLmap设置超时

在考虑超时HTTP(S)请求之前,可以指定等待的秒数。有效值是一个一个浮点数,可以为10.5秒。默认设置为30秒。

例如:--timeout 10.5

首先探测链接上对面的URL之后,才会发送http请求,接着才会触发--timeout设置。发送http请求,超过10.5秒都还没有接受到返回,SQLmap就会认为对方可能无法接受请求,可能就会重新发送新的请求。

2.SQLmap设置重试次数

--retires count

3.SQLmap设置随机化参数

在某些情况下,要对单一url中的某些参数进行探测, 如果只针对参数的固定值进行探测,服务器接受到之后,进行探测,很容易被服务器发现。所以就需要使用随机化参数来进行掩饰。

SQLmap可以指定每次请求期间随机更改其值的参数名称。长度和类型根据提供的原始值保持一致。

--randomize 参数名称

4.SQLmap设置日志过滤目标

日志郭晨中会记录大量信息,过滤具体目标进行探测

与使用选项-l使用从提供的日志解析的所有主机不同,可以使用python正则表达式,用来过滤所需的日志。

6.sqlmap设置请求参数5

1. SQLmap设置忽略401

忽略未授权响应

--ignore-401 参数用来忽略未验证错误

如果想测试偶尔返回http错误401(未授权的)站点,而想忽略它并在不提供凭证的情况下继续测试,可以使用--ignore-401

2.SQLmap设置HTTP协议私钥

当web服务器需要适当的客户端证书用来身份验证的私钥时,可以使用这个选项。提供的应该是一个PEM格式的key_file,其中包含了证书和私钥。

--auth-file 文件名

3.SQLmap设置安全模式

保证会话的完整性

某些情况下,SQLmap会出现多次访问目标,不会正常的访问目标,从而导致链接的断开。

有时,如果执行了一定数量的不成功请求,则在此期间的web应用程序或检测技术就会销毁会话。这可能发生在SQLmap检测阶段或利用任何盲注类型。原因是SQL有效负载不一定返回输出,因此可能会向应用程序会话管理或技术检测发出信号。

--safe-url 指定url
--safe-post 指定对应提交的post参数
--safe-req 读取对应的文件,http文件内容
--safe-freq 对应多条探测,日志中的内容(上一句的加倍)

通过设置,SQLmap将访问每一个预定义数量的请求,而不对某个安全URL执行任何类型的注入。

尤其是大型探测是,以免因为连接的断开而导致失败。

4.SQLmap设置忽略URL编码

据参数的位置(例如GET),默认情况下它的值可以是URL编码的。在某些情况下,后端web服务器不遵循RFC标准,需要以原始的非编码形式发送值。在这种情况下使用--skip-urlencode。

--skip-urlencode	不进行url加密,如此发送大服务器之后进行对应的操作

获取数据库基本信息

sqlmap -u "http://10.0.0.2/sqli-labs-master/Less-12/" --data="uname=admin&passwd=admin&submit=Submit"

查询有哪些数据库

sqlmap -u "http://10.0.0.2/sqli-labs-master/Less-12/" --data="uname=admin&passwd=admin&submit=Submit"  -dbms mysql -dbs

查询security数据库中有哪些表

sqlmap -u "http://10.0.0.2/sqli-labs-master/Less-12/" --data="uname=admin&passwd=admin&submit=Submit"  -dbms mysql -D security -tables

查询tes数据库中security表有哪些字段

sqlmap -u "http://10.0.0.2/sqli-labs-master/Less-12/" --data="uname=admin&passwd=admin&submit=Submit"  -dbms mysql -D security -T users -columns

sqlmap -u "http://10.0.0.2/sqli-labs-master/Less-12/" --data="uname=admin&passwd=admin&submit=Submit"  -dbms mysql -D security -T users -C "id,username,password" -dump

sqlmap 简单使用的更多相关文章

  1. SQLMap简单尝试

    第一次完成了一个注入呢,虽然是恬不知耻的用sqlmap跑出来的 简单介绍注入时后台的数据等级,有助于后面的理解 ①可以类比成一个装着excel文件的文件夹,每一个excel文件就相当于一个数据库 ②库 ...

  2. sqlmap简单使用

    就以实验吧上那个简单的sql注入题为例吧,不过那道题确实经典,把sqlmap的整个使用过程都展现了一遍,先奉上那道题的地址:http://ctf5.shiyanbar.com/web/index_3. ...

  3. sqlmap简单中文说明

    首先下载需要的文件,如果是windows环境直接到http://sqlmap.org/下载安装所需要的文件即可. 更新 svn checkout https://svn.sqlmap.org/sqlm ...

  4. sqlmap简单流程使用

    -u “(url)” 1.判断可注入的参数 2.判断可以用那种SQL注入技术来注入 3.识别出哪种数据库 4.根据用户选择,读取哪些数据 sqlmap支持五种不同的注入模式: 1.基于布尔的盲注,即可 ...

  5. sqlmap简单使用方法

    sqlmap使用 注入点   http://1xx.xxx.xxx.xxxx/dvwa/vulnerabilities/sqli/index.php?id=1&Submit=Submit# 通 ...

  6. 初识sql注入及sqlmap

    对于sql注入小白的我,上午在红黑联盟的网站上恶补了一下sql注入的基础知识,(走马观花)似乎明白sql注入是怎么一回事,也看了一些关于sqlmap的资料,再次记录一下吧 下面是关于sqlmap这个工 ...

  7. web安全学习笔记

    论坛&资讯 http://www.metasploit.cn http://www.freebuf.com http://www.backtrack.org.cn/ http://www.ha ...

  8. 3_初学sql注入

    sql注入的分类:布尔型 报错型 可联合查询型 多语句查询型 基于时间延迟注入 1.注释符 # /* -- 2.过滤空格注入 使用/**/或()或+代替空格 3.多条数据显示 concat(str1, ...

  9. Pikachu漏洞练习平台实验——SQL注入(四)

    1.概述 1.1发生原因 SQL注入漏洞,主要是开发人员在构建代码时,没有对输入边界进行安全考虑,导致攻击者可以通过合法的输入点提交一些精心构造的语句,从而欺骗后台数据库对其进行执行,导致数据库信息泄 ...

  10. vulnhub~MyExpense

    最近有点忙,这几天的vulnhub断更了,今天试着做了一下myexpense,当然想要一帆风顺是不可能的,哪怕是有别人的steps 和walkthrough.所以就遇到的坑总结如下: 一般套路就是nm ...

随机推荐

  1. Day21:方法重写以及注意细节

    目录 方法重写 什么是方法重写? 方法重写有什么用? 方法重写的注意细节 方法重写 什么是方法重写? 方法重写指的是当子类和父类出现了一摸一样的方法声明 方法重写有什么用? 当父类中有一个方法时,子类 ...

  2. js中数组追加和删除

    1.push  往后追加 let arr=[1,2,3,4];arr.push(5);console.log(arr);//得到[1,2,3,4,5] 2.unshift方法 往前追加 let arr ...

  3. MySQL锁,锁的到底是什么?

    MySQL锁系列文章已经鸽了挺久了,最近赶紧挤了挤时间,和大家聊一聊MySQL的锁. 只要学计算机,「锁」永远是一个绕不过的话题.MySQL锁也是一样. 一句话解释MySQL锁: MySQL锁是解决资 ...

  4. 【每日一题】【与运算判断奇偶】【list的重载前后插入】2021年11月25日-103. 二叉树的锯齿形层序遍历

    给定一个二叉树,返回其节点值的锯齿形层序遍历.(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行). 例如:给定二叉树 [3,9,20,null,null,15,7], 来源:力扣 ...

  5. 现代 CSS 之高阶图片渐隐消失术

    在过往,我们想要实现一个图片的渐隐消失.最常见的莫过于整体透明度的变化,像是这样: <div class="img"></div> div { width: ...

  6. vulnhub靶场渗透实战13-driftingblues3

    ​靶机下载地址:https://download.vulnhub.com/driftingblues/driftingblues3.ova vbox导入,网络模式桥接,靶机模式为简单. 一:信息收集 ...

  7. MySQL单表查询(分组-筛选-过滤-去重-排序-分页-判断-正则)

    目录 一:单表查询 1.单表查询(前期准备) 2.插入记录(写入数据) 3.查询关键字 二:查询关键字之where 1.查询id大于等于3小于等于6的数据 2.查询薪资是20000或者18000或者1 ...

  8. SQL注入问题、视图、触发器、事物、存储过程、函数、流程控制、索引相关概念、索引数据结构、慢查询优化、

    目录 SQL注入问题 视图 触发器 事物 存储过程 函数 流程控制 索引相关概念 索引数据结构 慢查询优化 测试装备 联合索引 全文检索 插入数据 更新数据 删除数据 主键 外键 重命名表 事物 安全 ...

  9. uniapp(vue)实现点击左侧菜单,右侧显示对应的内容

    <template> <view class="container"> <view class="fication-search" ...

  10. 【开源】基于.net6+gtksharp实现的Linux下的图形界面串口调试工具

    背景 22年初从上家互联网公司离职以后,充分认识到互联网行业的风险,公司在没有自身稳定产品的情况下,互联网行业就是一个烧钱的行业,支出远远大于收入来源,上家公司就是如此,12年的公司转瞬间轰然倒地,1 ...