实验吧-PHP大法-eregi()函数
发布时间:2020-12-13 22:17:31 所属栏目:PHP教程 来源:网络整理
导读:题目地址:http://www.shiyanbar.com/ctf/54 题目: ? php if (eregi( " hackerDJ " ,$_GET[id])) { echo( " pnot allowed!/p " ); exit();}$_GET[id] = urldecode($_GET[id]); if ($_GET[id] == " hackerDJ " ){ echo " pAccess granted!/p " ; echo " pfla
题目地址:http://www.shiyanbar.com/ctf/54 题目: <?php 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>"; } ?> <br><br> Can you authenticate to this website? PHP 函数 eregi() 语法 int eregi(string pattern,string string,[array regs]); 定义和用法 eregi()函数在一个字符串搜索指定的模式的字符串。搜索不区分大小写。Eregi()可以特别有用的检查有效性字符串,如密码。 可选的输入参数规则包含一个数组的所有匹配表达式,他们被正则表达式的括号分组。 返回值 如果匹配成功返回true,否则,则返回false Example 下面是一段代码,这段代码复制并粘贴到一个文件中并验证结果。 <?php $password = "abc"; if (! eregi ("[[:alnum:]]{8,10}",$password)) { print "Invalid password! Passwords must be from 8 - 10 chars"; } else { print "Valid password"; } ?> 这将会产生以下结果: Invalid password! Passwords must be from 8 - 10 chars ? 解题思路: id变量是一个url解码函数前不包含hackerDJ,url解码函数后为hackerDJ的变量,即id在进入url解码函数前必须是hackerDJ的url编码形式 ?注意: id通过url形式传递,浏览器会自动url解码一次,直接 ?id=%68%61%63%6B%65%72%44%4A 是不行的 ?这样浏览器自动解码后即为hackerDJ,被eregi()拦住 所以要进行二次编码,即对%68%61%63%6B%65%72%44%4A进行url编码 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |