攻防世界_PHP2
(你能验证这个网站吗?)
【参考大佬博客writeup】
尝试查看源代码:无事发生 再用burp抓包该网页:还是没啥特别的
查看index.php,无事发生
请求一下index.phps:得到一段php代码片段,用于检查用户是否有访问网站的权限
phps文件就是php的源代码文件,通常用于提供给用户(访问者)查看php代码,因为用户无法直接通过Web浏览器看到php文件的内容,所以需要用phps文件代替。
开始分析得到的语句
第一行是 PHP 的开头标记,表示 PHP 代码的开始。
第二行检查通过 URL 传递的 'id' 参数的值是否等于 'admin'。如果它相等,则使用 'echo' 函数显示消息“not allowed!”并使用 'exit' 函数退出脚本。这是为了防止未经授权访问网站的管理员页面。
第六行使用 'urldecode' 函数解码 'id' 参数的 URL 编码值。
urldecode urlencode的区别
- urlencode 函数:将字符串进行URL编码。把字符串中的非字母数字字符按照特定的规则转换为 % 加上两位十六进制数的形式,空格会被转换为 + 号,以便于在URL中安全地传输数据。
- urldecode 函数的功能与 urlencode 相反,用于对已编码的URL字符串进行解码。它会把 % 加上两位十六进制数的形式还原为原来的字符,把 + 号转换为空格,将URL字符串恢复为原始的字符串形式。
第七行检查 'id' 参数的解码值是否等于 'admin'。如果它相等,则使用 'echo' 函数显示消息“Access granted!”和一个密钥。
用burp对admin进行url两次编码
对id=admin中的admin进行编码,但由于浏览器会进行一次解码,所以对admin进行两次编码得到%2561%2564%256d%2569%256e
在网址后加上?id=%2561%2564%256d%2569%256e便能得到结果。