2.攻防世界PHP2及知识点

进入题目页面如下

意思是你能访问这个网站吗?

ctrl+u、F12查看源码,什么都没有发现

用kali中的dirsearch扫描根目录

命令如下,根据题目提示以及需要查看源码,扫描以php、phps、html为后缀的文件

dirsearch -u http://61.147.171.105:58249/ -e php,phps,html

知识点

/index.php:

是一个常见的 PHP 脚本文件。PHP 是一种广泛用于 Web 开发的服务器端脚本语言,.php文件通常包含 PHP 代码,用于生成动态网页内容、与数据库交互、处理表单数据等。当 Web 服务器接收到对/index.php的请求时,它会执行其中的 PHP 代码,并将生成的结果以 HTML 等格式返回给客户端浏览器。例如,一个网站的用户登录系统可能就是通过index.php文件中的 PHP 代码来处理用户输入的用户名和密码,与数据库中的数据进行比对,然后根据结果决定是否允许用户登录。

服务器需要正确配置 PHP 环境,以便能够解析和执行.php文件。通常需要安装 PHP 解释器,并在服务器配置文件(如 Apache 的.conf文件或 Nginx 的配置文件)中进行相应的设置,以告诉服务器如何处理.php文件的请求。

/index.phps:

.phps文件通常是 PHP 源代码文件的一种特殊形式,主要用于提供 PHP 脚本的源代码展示或下载等用途。一般情况下,它可能包含与/index.php相同或类似的 PHP 代码,但服务器对.phps文件的处理方式可能与.php文件不同。有些服务器配置可能会将.phps文件视为纯文本文件,直接展示其源代码内容,而不是像处理.php文件那样执行其中的代码。

默认情况下,服务器可能不会像处理.php文件那样对.phps文件进行特殊的处理。如果需要对.phps文件进行特定的处理,比如将其作为下载文件提供给用户,或者对其进行语法高亮显示等,需要在服务器配置中进行额外的设置。

发现/index.phps文件,并访问

发现源码,进行代码审计

<?php
// 开始检查 $_GET 数组中名为 'id' 的参数是否严格等于字符串 "admin"
if("admin"===$_GET[id]) {// 如果严格相等,意味着参数 'id' 的值就是 "admin"echo("<p>not allowed!</p>");// 输出提示信息,表示不允许该操作exit();// 终止当前脚本的执行
}// 对 $_GET 数组中 'id' 参数的值进行 URL 解码操作
$_GET[id] = urldecode($_GET[id]);// 再次检查经过 URL 解码后的 'id' 参数的值是否等于字符串 "admin"
if($_GET[id] == "admin")
{// 如果相等,意味着经过解码后 'id' 的值为 "admin"echo "<p>Access granted!</p>";// 输出提示信息,表示访问已被授权echo "<p>Key: xxxxxxx </p>";// 输出一个密钥信息
}
?>

可以利用 URL 二次编码来绕过最初的严格比较。可以传入经过 URL 二次编码的 "admin",这样在第一次严格比较时,由于编码后的字符串与 "admin" 不相等,会通过检查。而第二步中经过 URL 解码后,就会变成 "admin",从而通过第二次非严格比较,获取flag

在 ASCII 编码中,字符 a 的十进制 ASCII 码值是 97,转换为十六进制就是 61;字符 d 的十进制 ASCII 码值是 100,十六进制为 64;字符 m 的十进制 ASCII 码值是 109,十六进制是 6D;字符 i 的十进制 ASCII 码值是 105,十六进制为 69;字符 n 的十进制 ASCII 码值是 110,十六进制是 6E。所以,字符串 "admin" 经过 URL 编码后就变成了 %61%64%6D%69%6E

再次编码,可以利用这个在线工具URL 编码/解码 - 锤子在线工具进行URL编码

通过get传参,构造payload

?id=%2561%2564%256D%2569%256E

最终得到flag

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/11681.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

线性数据结构:单向链表

放弃眼高手低&#xff0c;你真正投入学习&#xff0c;会因为找到一个新方法产生成就感&#xff0c;学习不仅是片面的记单词、学高数......只要是提升自己的过程&#xff0c;探索到了未知&#xff0c;就是学习。 目录 一.链表的理解 二.链表的分类&#xff08;重点理解&#xf…

【AI】探索自然语言处理(NLP):从基础到前沿技术及代码实践

Hi &#xff01; 云边有个稻草人-CSDN博客 必须有为成功付出代价的决心&#xff0c;然后想办法付出这个代价。 目录 引言 1. 什么是自然语言处理&#xff08;NLP&#xff09;&#xff1f; 2. NLP的基础技术 2.1 词袋模型&#xff08;Bag-of-Words&#xff0c;BoW&#xff…

书生大模型实战营7

文章目录 L1——基础岛提示词工程实践什么是Prompt(提示词)什么是提示工程提示设计框架CRISPECO-STAR LangGPT结构化提示词LangGPT结构编写技巧构建全局思维链保持上下文语义一致性有机结合其他 Prompt 技巧 常用的提示词模块 浦语提示词工程实践(LangGPT版)自动化生成LangGPT提…

一个开源 GenBI AI 本地代理(确保本地数据安全),使数据驱动型团队能够与其数据进行互动,生成文本到 SQL、图表、电子表格、报告和 BI

一、GenBI AI 代理介绍&#xff08;文末提供下载&#xff09; github地址&#xff1a;https://github.com/Canner/WrenAI 本文信息图片均来源于github作者主页 在 Wren AI&#xff0c;我们的使命是通过生成式商业智能 &#xff08;GenBI&#xff09; 使组织能够无缝访问数据&…

41. 缺失的第一个正数

参考题解&#xff1a;https://leetcode.cn/problems/first-missing-positive/solutions/7703/tong-pai-xu-python-dai-ma-by-liweiwei1419 难点在于时间复杂度控制在O(n)&#xff0c;空间复杂度为常数级。 哈希表时间复杂度符合&#xff0c;但是空间复杂度为O(n) 排序空间复杂…

深入核心:一步步手撕Tomcat搭建自己的Web服务器

介绍&#xff1a; servlet&#xff1a;处理 http 请求 tomcat&#xff1a;服务器 Servlet servlet 接口&#xff1a; 定义 Servlet 声明周期初始化&#xff1a;init服务&#xff1a;service销毁&#xff1a;destory 继承链&#xff1a; Tomcat Tomcat 和 servlet 原理&#x…

final-关键字

一、final修饰的类不能被继承 当final修饰一个类时&#xff0c;表明这个类不能被其他类继承。例如&#xff0c;在 Java 中&#xff0c;String类就是被final修饰的&#xff0c;这保证了String类的不可变性和安全性&#xff0c;防止其他类通过继承来改变String类的行为。 final…

51单片机 01 LED

一、点亮一个LED 在STC-ISP中单片机型号选择 STC89C52RC/LE52RC&#xff1b;如果没有找到hex文件&#xff08;在objects文件夹下&#xff09;&#xff0c;在keil中options for target-output- 勾选 create hex file。 如果要修改编程 &#xff1a;重新编译-下载/编程-单片机重…

知识库建设与知识管理实践对企业发展的助推作用探索

内容概要 在当今瞬息万变的商业环境中&#xff0c;知识库建设与知识管理实践日益成为企业发展的重要驱动力。知识库作为组织内信息和知识的集成&#xff0c;起着信息存储、整理和共享的关键作用。通过有效的知识库建设&#xff0c;企业不仅能够提升员工获取信息的便利性&#…

【Pytorch和Keras】使用transformer库进行图像分类

目录 一、环境准备二、基于Pytorch的预训练模型1、准备数据集2、加载预训练模型3、 使用pytorch进行模型构建 三、基于keras的预训练模型四、模型测试五、参考 现在大多数的模型都会上传到huggface平台进行统一的管理&#xff0c;transformer库能关联到huggface中对应的模型&am…

如何使用 DeepSeek 和 Dexscreener 构建免费的 AI 加密交易机器人?

我使用DeepSeek AI和Dexscreener API构建的一个简单的 AI 加密交易机器人实现了这一目标。在本文中&#xff0c;我将逐步指导您如何构建像我一样的机器人。 DeepSeek 最近发布了R1&#xff0c;这是一种先进的 AI 模型。您可以将其视为 ChatGPT 的免费开源版本&#xff0c;但增加…

ArkTS渲染控制

文章目录 if/else:条件渲染ArkUI通过自定义组件的build()函数和@Builder装饰器中的声明式UI描述语句构建相应的UI。在声明式描述语句中开发者除了使用系统组件外,还可以使用渲染控制语句来辅助UI的构建,这些渲染控制语句包括控制组件是否显示的条件渲染语句,基于数组数据快…

potplayer字幕

看视频学习&#xff0c;实时字幕可以快速过滤水字数阶段&#xff0c;提高效率&#xff0c;但是容易错过一些信息。下面就是解决这一问题。 工具ptoplayer 一.生成字幕 打开学习视频&#xff0c;右键点击视频画面&#xff0c;点选字幕。勾选显示字幕。点选创建有声字幕&#…

deepseek的两种本地使用方式

总结来说 ollama是命令行 GPT4ALL桌面程序。 然后ollamaAnythingLLM可以达到桌面或web的两种接入方式。 一. ollama和deepseek-r1-1.5b和AnythingLLM 本文介绍一个桌面版的deepseek的本地部署过程&#xff0c;其中ollama可以部署在远程。 1. https://www.cnblogs.com/janeysj/p…

海外问卷调查渠道查,如何影响企业的运营

我们注意到&#xff0c;随着信息资源和传播的变化&#xff0c;海外问卷调查渠道查已发生了深刻的变化。几年前&#xff0c;市场调研是业内专家们的事&#xff0c;即使是第二手资料也需要专业人士来完成&#xff1b;但如今的因特网和许许多多的信息数据库&#xff0c;使每个人都…

TensorFlow简单的线性回归任务

如何使用 TensorFlow 和 Keras 创建、训练并进行预测 1. 数据准备与预处理 2. 构建模型 3. 编译模型 4. 训练模型 5. 评估模型 6. 模型应用与预测 7. 保存与加载模型 8.完整代码 1. 数据准备与预处理 我们将使用一个简单的线性回归问题&#xff0c;其中输入特征 x 和标…

当卷积神经网络遇上AI编译器:TVM自动调优深度解析

从铜线到指令&#xff1a;硬件如何"消化"卷积 在深度学习的世界里&#xff0c;卷积层就像人体中的毛细血管——数量庞大且至关重要。但鲜有人知&#xff0c;一个简单的3x3卷积在CPU上的执行路径&#xff0c;堪比北京地铁线路图般复杂。 卷积的数学本质 对于输入张…

MySQL(高级特性篇) 13 章——事务基础知识

一、数据库事务概述 事务是数据库区别于文件系统的重要特性之一 &#xff08;1&#xff09;存储引擎支持情况 SHOW ENGINES命令来查看当前MySQL支持的存储引擎都有哪些&#xff0c;以及这些存储引擎是否支持事务能看出在MySQL中&#xff0c;只有InnoDB是支持事务的 &#x…

影视文件大数据高速分发方案

在当今的数字时代&#xff0c;影视行业的内容创作和传播方式经历了翻天覆地的变化。随着4K、8K高清视频的普及&#xff0c;以及虚拟现实(VR)和增强现实(AR)技术的发展&#xff0c;影视文件的数据量正以前所未有的速度增长。这就要求行业内的参与者必须拥有高效的大数据传输解决…

C语言教程——文件处理(2)

目录 前言 一、顺序读写函数&#xff08;续&#xff09; 1.1fprintf 1.2fscanf 1.3fwrite 1.4fread 二、流和标准流 2.1流 2.2标准流 2.3示例 三、sscanf和sprintf 3.1sprintf 3.2sscanf 四、文件的随机读写 4.1fseek 4.2ftell 4.3rewind 五、文件读取结束的…