admin管理员组文章数量:1794759
ctfshow web入门 PHP特性学习笔记91
web 91
payload: ?cmd=php%0a1
show_source(__FILE__); include('flag.php'); $a=$_GET['cmd']; if(preg_match('/^php$/im', $a)){ if(preg_match('/^php$/i', $a)){ echo 'hacker'; } else{ echo $flag; } } else{ echo 'nonononono'; }^表示匹配开始,$表示匹配结束
/i 表示匹配的时候不区分大小写;
/m 表示多行匹配,什么是多行匹配呢?就是匹配换行符两端的潜在匹配。影响正则中的^$符号
首先需要匹配到的是一行php,因为有/m,所有可以带换行符,第一次匹配到第一行php就算匹配成功,进行下一轮正则。
就可以放过,进行下一次的匹配,第二次的匹配不带/m所以可以匹配到所有的字符,匹配到的是:
php
11
因此不满足正则条件,下放到else中输出flag
版权声明:本文标题:ctfshow web入门 PHP特性学习笔记91 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1686648849a90421.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论