0x01 阅读须知
鸡哥安全的技术文章仅供参考,此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。本文所提供的工具仅用于学习,禁止用于其他!!!
0x02 函数说明
1.eregi函数
eregi()函数在一个字符串搜索指定的模式的字符串。搜索不区分大小写。Eregi()可以特别有用的检查有效性字符串,如密码。
可选的输入参数规则包含一个数组的所有匹配表达式,他们被正则表达式的括号分组。
2.urldecode函数
解码给出的已编码字符串中的任何 %##。加号('+')被解码成一个空格字符。
0x03 二次编码绕过正则匹配 CTF题解析
1.当我们传入payload:?id=hackerD%254A,路由过程如下
代码第1-5行:使用EREGI查找hackerDJ是否存在,存在就返回not allowed!DEBUG:$_GET:{id=hackerD%4A},这里传入的值为hackerD%4A,不匹配,所以pass
代码第6-10行:使用urldecode进行url解码,如果$GET的值为hackerDJ,返回flag,由于值D%4A需要进行浏览器url解码,再进行urldecode解码最后变为J,所以最后值为hackerDJ,并返回flagDEBUG:$_GET:{id=hackerDJ}
if(eregi("hackerDJ",$_GET[id])) {
echo("<p>not allowed!</p>");
exit();
}
$_GET[id] = urldecode($_GET[id]);
if($_GET[id] == "hackerDJ")
{
echo "<p>Access granted!</p>";
echo "<p>flag: *****************} </p>";
原文始发于微信公众号(鲲哥的Bypass之旅):奇淫巧计 二次编码绕过
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论