题目:https://code-breaking.com
参考文献:
https://www.leavesongs.com/PENETRATION/use-pcre-backtrack-limit-to-bypass-restrict.html
https://blog.csdn.net/while0/article/details/72276440
easy-function
源码
<?php
$action = $_GET['action'] ?? '';
$arg = $_GET['arg'] ?? '';
if(preg_match('/^[a-z0-9_]*$/isD', $action)) {
show_source(__FILE__);
} else {
$action('', $arg);
}
解题思路
- 在数字字母下划线都被禁用的情况下调用函数,因为正则里面用了
^$
,就有可能在开头或结尾加入某个字符绕过正则且函数依旧能正常执行。最后发现\