背景:
近期身边的站点都是微服务架构的,各种数据增删改查功能。逻辑简单,网关鉴权。想找个漏洞难度挺高的,经过测试,发现好像数据库解析emoji报错导致信息泄漏这个问题反而挺常见。
报错原理:
mysql数据库的utf-8编码并不标准,只能存储占3个字节以内的字符。????在mysql中占了4个字节,插入或者查询的时候就会报错。utf8mb4编码解决了这个坑。
衍升
我们知道emoji历史悠久,unicode编码也规定了它的二进制代码,但是没管怎么存储,所以各个平台、语言在存储方面都有自己的定义。导致不一致产生了,比如长度不一致,解析结果不一致等。我了解到在bypass、触发数据库报错、大小写映射冲突、emoji domain等方面可以辅助我们绕过waf或挖到更多问题,但是其他方面想看看各位大佬们还有没有什么思路。搜索了好几天资料,发现一些辅助资料,各位师傅可以看看。
https://mp.weixin.qq.com/s/mEwljigkkXk-y1ik7au_CQ
https://dev.to/hume/emojis-can-be-wicked-3phl
https://speakerdeck.com/mathiasbynens/hacking-with-unicode?slide=98
近期身边的站点都是微服务架构的,各种数据增删改查功能。逻辑简单,网关鉴权。想找个漏洞难度挺高的,经过测试,发现好像数据库解析emoji报错导致信息泄漏这个问题反而挺常见。
报错原理:
mysql数据库的utf-8编码并不标准,只能存储占3个字节以内的字符。????在mysql中占了4个字节,插入或者查询的时候就会报错。utf8mb4编码解决了这个坑。
衍升
我们知道emoji历史悠久,unicode编码也规定了它的二进制代码,但是没管怎么存储,所以各个平台、语言在存储方面都有自己的定义。导致不一致产生了,比如长度不一致,解析结果不一致等。我了解到在bypass、触发数据库报错、大小写映射冲突、emoji domain等方面可以辅助我们绕过waf或挖到更多问题,但是其他方面想看看各位大佬们还有没有什么思路。搜索了好几天资料,发现一些辅助资料,各位师傅可以看看。
https://mp.weixin.qq.com/s/mEwljigkkXk-y1ik7au_CQ
https://dev.to/hume/emojis-can-be-wicked-3phl
https://speakerdeck.com/mathiasbynens/hacking-with-unicode?slide=98






