sqlmap 简单使用
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 简单使用的更多相关文章
- SQLMap简单尝试
第一次完成了一个注入呢,虽然是恬不知耻的用sqlmap跑出来的 简单介绍注入时后台的数据等级,有助于后面的理解 ①可以类比成一个装着excel文件的文件夹,每一个excel文件就相当于一个数据库 ②库 ...
- sqlmap简单使用
就以实验吧上那个简单的sql注入题为例吧,不过那道题确实经典,把sqlmap的整个使用过程都展现了一遍,先奉上那道题的地址:http://ctf5.shiyanbar.com/web/index_3. ...
- sqlmap简单中文说明
首先下载需要的文件,如果是windows环境直接到http://sqlmap.org/下载安装所需要的文件即可. 更新 svn checkout https://svn.sqlmap.org/sqlm ...
- sqlmap简单流程使用
-u “(url)” 1.判断可注入的参数 2.判断可以用那种SQL注入技术来注入 3.识别出哪种数据库 4.根据用户选择,读取哪些数据 sqlmap支持五种不同的注入模式: 1.基于布尔的盲注,即可 ...
- sqlmap简单使用方法
sqlmap使用 注入点 http://1xx.xxx.xxx.xxxx/dvwa/vulnerabilities/sqli/index.php?id=1&Submit=Submit# 通 ...
- 初识sql注入及sqlmap
对于sql注入小白的我,上午在红黑联盟的网站上恶补了一下sql注入的基础知识,(走马观花)似乎明白sql注入是怎么一回事,也看了一些关于sqlmap的资料,再次记录一下吧 下面是关于sqlmap这个工 ...
- web安全学习笔记
论坛&资讯 http://www.metasploit.cn http://www.freebuf.com http://www.backtrack.org.cn/ http://www.ha ...
- 3_初学sql注入
sql注入的分类:布尔型 报错型 可联合查询型 多语句查询型 基于时间延迟注入 1.注释符 # /* -- 2.过滤空格注入 使用/**/或()或+代替空格 3.多条数据显示 concat(str1, ...
- Pikachu漏洞练习平台实验——SQL注入(四)
1.概述 1.1发生原因 SQL注入漏洞,主要是开发人员在构建代码时,没有对输入边界进行安全考虑,导致攻击者可以通过合法的输入点提交一些精心构造的语句,从而欺骗后台数据库对其进行执行,导致数据库信息泄 ...
- vulnhub~MyExpense
最近有点忙,这几天的vulnhub断更了,今天试着做了一下myexpense,当然想要一帆风顺是不可能的,哪怕是有别人的steps 和walkthrough.所以就遇到的坑总结如下: 一般套路就是nm ...
随机推荐
- thinkphp6文件上传自定义命名规则
think官方自带的命名规则有三种 规则 描述 date 根据日期和微秒数生成 md5 对文件使用md5_file散列生成 sha1 对文件使用sha1_file散列生成 其中md5和sha1规则会自 ...
- Linux系统下安装tomcat步骤
安装参考教程:https://www.cnblogs.com/li150dan/p/12535067.html 说明:jdk自动安装后路径是/usr/lib/jvm 在"vim /etc/p ...
- live-player live-pusher惨案
昨天遇到的问题,旧项目: 一个页面同时使用live-player和live-pusher时候遇到的问题,live-pusher正常,live-player无效,没有任何报错 打log 所有livepl ...
- SQLMap入门——判断文本中的请求是否存在注入
从文件中加载HTTP请求,SQLMap可以从一个文本文件中获取HTTP请求,这样就可以不设置其他参数(如cookie.POST数据等),txt文件中的内容为Web数据包 文本文件如图(请求数据可以通过 ...
- Python + logging 控制台有日志输出,但日志文件中数据为空
源码: def output(self, level, message): fh = logging.FileHandler(self.logpath, mode='a', encoding='utf ...
- 基于MongoDb的事件订阅实现hook监听
详情请参考原文:-- 基于MongoDb的事件订阅实现hook监听(insert,update,remove,find等事件开始,事件成功等)
- [OpenCV实战]24 使用OpenCV进行曝光融合
目录 1 什么是曝光融合 2 曝光融合的原理 3 代码与结果 4 参考 本教程中,我们将了解使用OpenCV的Exposure Fusion(曝光融合). 1 什么是曝光融合 曝光融合是一种将使用不同 ...
- 一文读懂 Kubernetes 存储设计
在 Docker 的设计中,容器内的文件是临时存放的,并且随着容器的删除,容器内部的数据也会一同被清空.不过,我们可以通过在 docker run 启动容器时,使用 --volume/-v 参数来指定 ...
- [LeetCode]爬楼梯
题目 假设你正在爬楼梯.需要 n 步你才能到达楼顶. 每次你可以爬 1 或 2 个台阶.你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数. 示例 1: 输入: 2 输出: 2 解释: ...
- 使用IIS配置代理,转发POST和GET访问,配置IIS接口转发失效问题处理
先说一下可能引发配置失败的原因:大概率是你的Application Request Routing没有配置好,或者你的正则表达没有搞好,往下看步骤自己对照哇~ 1.确保服务器已经安装IIS 2.下载U ...