86.(2)攻防世界 WEB PHP2

之前做过,回顾一遍,详解见下面这篇博客

29.攻防世界PHP2-CSDN博客

既然是代码审计题目,打开后又不显示代码,肯定在文件里

php 复制代码
<?php
// 首先检查通过 GET 请求传递的名为 "id" 的参数值是否严格等于字符串 "admin"
// 使用 === 进行严格比较,意味着不仅值要相等,数据类型也要相同
if("admin" === $_GET['id']) {
    // 如果严格等于 "admin",则输出提示信息,表明不允许该操作
    echo("<p>not allowed!</p>");
    // 调用 exit() 函数终止当前脚本的执行,防止后续代码继续运行
    exit();
}

// 对通过 GET 请求传递的名为 "id" 的参数值进行 URL 解码操作
// 因为在 URL 中,某些特殊字符会被编码,这里进行解码以获取原始值
$_GET['id'] = urldecode($_GET['id']);

// 再次检查解码后的 "id" 参数值是否等于字符串 "admin"
// 这里使用 == 进行比较,只比较值是否相等,不考虑数据类型
if($_GET['id'] == "admin")
{
    // 如果解码后的值等于 "admin",则输出访问授权的提示信息
    echo "<p>Access granted!</p>";
    // 同时输出密钥信息,这里密钥用占位符 xxxxxxx 表示
    echo "<p>Key: xxxxxxx </p>";
}
?>

admin编码后%61%64%6D%69%6E

浏览器本身会进行一次url解码

再次编码%2561%2564%256D%2569%256E

相关推荐
Mr Sorry9 分钟前
Non-stationary Diffusion For Probabilistic Time Series Forecasting论文阅读笔记
论文阅读·笔记
南猿北者1 小时前
Cmake学习笔记
笔记·学习·策略模式
码小文1 小时前
Altium Designer 22使用笔记(8)---PCB电气约束设置
笔记·嵌入式硬件·硬件工程·ad22
diablobaal2 小时前
云计算学习100天-第26天
学习·云计算
测试老哥3 小时前
pytest+requests+allure自动化测试接入Jenkins学习
自动化测试·软件测试·学习·测试工具·职场和发展·jenkins·pytest
UserNamezhangxi4 小时前
kotlin 协程笔记
java·笔记·kotlin·协程
diablobaal6 小时前
云计算学习100天-第21天
学习
翻滚的小@强7 小时前
数据挖掘笔记:点到线段的距离计算
人工智能·笔记·数据挖掘
会思考的猴子7 小时前
UE5 PCG 笔记(二) Difference 节点
笔记·ue5
yuxb738 小时前
Linux 文本处理与 Shell 编程笔记:正则表达式、sed、awk 与变量脚本
linux·笔记·正则表达式