发布时间:2023-05-30 17:00
原理:
GBK 占用两字节
ASCII占用一字节
PHP中编码为GBK,函数执行添加的是ASCII编码(添加的符号为“\”),MYSQL默认字符集是GBK等宽字节字符集。
大家都知道%df’ 被PHP转义(开启GPC、用addslashes函数,或者icov等),
单引号被加上反斜杠\,变成了 %df\’,其中\的十六进制是 %5C ,
那么现在 %df\’ =%df%5c%27,
如果程序的默认字符集是GBK等宽字节字符集,
则MySQL用GBK的编码时,会认为 %df%5c 是一个宽字符,也就是縗,也就是说:%df\’ = %df%5c%27=縗’,有了单引号就成功逃逸了。
练手:http://chinalover.sinaapp.com/SQL-GBK/index.php?id=1
一进去就看到
加个‘
addslasher函数实锤了,
那么要从中逃逸出去。
考虑到宽字节注入。
输入%df’
ojbk,绝b宽字节,
那么现在就开始用常规套路了。
爆破各种table ,column.
用order by 猜测字段:
http://chinalover.sinaapp.com/SQL-GBK/index.php?id=1%df'
order by 2%23
2和三之间,
如果大一点的话可以用二分法去找,这样比较快。
用union找出库名:
http://chinalover.sinaapp.com/SQL-GBK/index.php?id=1%df'
union select 1,database()%23
再找表名,再根据表名找column
再找出可疑的·
其中有一个要注意的,
就是在查询ctf表中时,
=ctf
是不行的,这时候可以用十六进制转码。
0x 转码后内容!(小技巧)
找到pw后解密就OK
深入掌握Ajax + Promise + Async + await 异步解决方案
python向量机使用方法_机器学习算法之——支持向量机(Support Vector Machine)讲解及Python实现...
Python数据分析——Matplotlib数据可视化基础(一)
nacos -分布式事务-Seata** linux安装jdk ,mysql5.7启动nacos配置ideal 调用接口配合 (保姆级细节教程)
图解Transformer模型(Multi-Head Attention)
Redis + NodeJS 实现一个能处理海量数据的异步任务队列系统
Iceberg 实践 | B 站通过数据组织加速大规模数据分析
数组容器(ArrayList)设计与Java实现,看完这个你不懂ArrayList,你找我!!!
LeetCode高频题:擂台赛n名战士战斗力最接近的两名战士,战斗力之差为多少
Python利用format函数实现对齐打印(左对齐、右对齐与居中对齐)
vue+neo4j +纯前端(neovis.js / neo4j-driver) 实现 知识图谱的集成 大干货--踩坑无数!!!将经验分享给有需要的小伙伴