攻防世界 php2

devtools/2025/2/6 23:42:53/

你能验证这个网站吗?

根据提示是PHP,我们知道PHP代码在服务器端执行,可以连接数据库,查询数据,并根据查询结果动态生成网页内容。

PHP代码通常是保存在以.PHP为扩展名的文件上,这些文件存储在web 服务器的文档根目录中,以便通过浏览器访问和执行;尝试查看一下示例文件名:index.php 可以正常运行

尝试其他经典的文件名时不太行

这个脚本文件是在服务器上运行的,不是在客户端浏览器上,我们想看的是脚本源代码,而不是解析的效果,php文件源代码通常在phps文件,尝试访问一下index.phps

代码审计:

if("admin"===$_GET[id]) {echo("<p>not allowed!</p>");exit();
}//这行代码检查 $_GET['id'] 是否直接等于字符串 "admin"。如果是,将输出一条消息并终止脚本执行。
$_GET[id] = urldecode($_GET[id]);
//使用 urldecode() 函数解码 $_GET['id'] 的值

关键: 在解码之后再次检查 $_GET['id'] 是否等于字符串 "admin",如果等于将输出访问权限和密钥

if($_GET[id] == "admin")
echo "<p>Access granted!</p>";
echo "<p>Key: xxxxxxx </p>";
//在解码之后再次检查 $_GET['id'] 是否等于字符串 "admin",如果等于将输出访问权限和密钥

所以我们可以进行编码制造payload:

因为是使用 urldecode() 函数解码经过url编码的函数

所以对admin进行url编码:%61%64%6d%69%6e

又因为编码后参数%61dmin中存在特殊字符%,浏览器会自动进行URL解码,所以我们对%进行编码:%25

最终id==%2561%64%6d%69%6e

本来是全部编码的,但是一解析以后就又变成了只编码a了,不管是只编码a还是全部编码都能得到flag


http://www.ppmy.cn/devtools/156646.html

相关文章

maven本地打包依赖无法引用

描述&#xff1a;写了一个RPC的starter包 执行命令后 mvn install 点击引入依赖无反应 手动输入对应的包显示找不到&#xff0c;但是在Maven可以找到 问题在于pom.xml文件&#xff0c;正常打包的maven文件应该可以显示出来&#xff0c;但是由于未删除spring-boot-maven-plug…

HTML 字符实体

HTML 字符实体 在HTML中,字符实体是一种特殊的表示方式,用于在文档中插入那些无法直接通过键盘输入的字符。字符实体在网页设计和文档编写中扮演着重要的角色,尤其是在处理特殊字符、符号和数学公式时。以下是关于HTML字符实体的详细解析。 字符实体概述 HTML字符实体是一…

20250202在Ubuntu22.04下使用Guvcview录像的时候降噪

20250202在Ubuntu22.04下使用Guvcview录像的时候降噪 2025/2/2 21:25 声卡&#xff1a;笔记本电脑的摄像头自带的【USB接口的】麦克风。没有外接3.5mm接口的耳机。 缘起&#xff1a;在安装Ubuntu18.04/20.04系统的笔记本电脑中直接使用Guvcview录像的时候底噪很大&#xff01; …

20250108慧能科技前端面试

目录 ajax 怎么取消请求移动端怎么实现 px 尺寸vite 和 webpack 的区别设计模式讲一下什么是原型链讲一下什么是闭包实现 eventbus事件循环项目发布后&#xff0c;如何对项目进行优化&#xff0c;怎么优化vue2 的 diff 算法和 vue3 的 diff 算法的区别 1. ajax 怎么取消请求 …

3 Spark SQL

Spark SQL 1. 数据分析方式2. SparkSQL 前世今生3. Hive 和 SparkSQL4. 数据分类和 SparkSQL 适用场景1) 结构化数据2) 半结构化数据3) 总结 5. Spark SQL 数据抽象1) DataFrame2) DataSet3) RDD、DataFrame、DataSet 的区别4) 总结 6. Spark SQL 应用1) 创建 DataFrame/DataSe…

后端生成二维码

QrConfig qrConfig new QrConfig(200, 200);private static void generateQrCode(QrConfig qrConfig, 你要塞入二维码的对象A a, 你要返回给前端的对象B b) {byte[] bytes QrCodeUtil.generatePng(A.getC(), qrConfig);// 转成base64String base64Png Base64.getEncoder().e…

【Elasticsearch】filter聚合

在Elasticsearch中&#xff0c;Filter聚合是一种单桶聚合&#xff0c;用于根据特定的查询条件筛选文档&#xff0c;并对筛选后的文档集合进行进一步的聚合分析。它允许用户在执行聚合操作之前&#xff0c;先过滤出符合某些条件的文档&#xff0c;从而更精确地分析数据。 Filter…

设计模式的艺术-策略模式

行为型模式的名称、定义、学习难度和使用频率如下表所示&#xff1a; 1.如何理解策略模式 在策略模式中&#xff0c;可以定义一些独立的类来封装不同的算法&#xff0c;每个类封装一种具体的算法。在这里&#xff0c;每个封装算法的类都可以称之为一种策略&#xff08;Strategy…