攻防世界PHP2

1、打开靶机链接http://61.147.171.105:49513/,没有发现任何线索

2、尝试访问http://61.147.171.105:49513/index.php,页面没有发生跳转

3、尝试将访问 尝试访问http://61.147.171.105:49513/index.phps

index.phpindex.phps 文件之间的主要区别在于它们的文件扩展名。

  1. index.php: 这是一个标准的 PHP 文件,通常用于编写 PHP 代码。当用户访问 index.php 文件时,Web 服务器会解释其中的 PHP 代码,并将结果发送给用户的浏览器。PHP 文件可以包含 HTML、CSS、JavaScript 以及服务器端的 PHP 代码。

  2. index.phps: 这个文件名可能是由开发人员自定义的,它的扩展名 .phps 是一种特殊的命名约定,通常用于显示 PHP 源代码而不是执行它。如果用户访问 index.phps 文件,Web 服务器通常会直接将文件内容发送给浏览器,而不会解释其中的 PHP 代码。这对于演示和学习目的可能会有用,但不建议在生产环境中使用这种方式,因为它会暴露服务器端的代码。

总之,index.php 是一个标准的 PHP 文件,用于执行 PHP 代码,而 index.phps 可能用于显示 PHP 源代码。

<?php
if("admin"===$_GET[id]) {
  echo("<p>not allowed!</p>");
  exit();
}

$_GET[id] = urldecode($_GET[id]);
if($_GET[id] == "admin")
{
  echo "<p>Access granted!</p>";
  echo "<p>Key: xxxxxxx </p>";
}
?>

补充知识:

1、urldecode为解码和urlencode为编码

2、$_GET本身自带一次urldecode解码,即浏览器对url本身有一个检测,对于输入的中文、日文、俄文、和一些特殊字符进行解码,对于字母、数字等合法字符不会进行解码。 

3、urldecode()函数为php解码            

4、所以我们如给直接给参数传参admin会杯第一个if过滤掉。又考虑由于浏览器会对GET参数进行一次URL解码,加上PHP源码中的urldecode($_GET[id])有对可变参数进行一次解码,总共会给参数进行2次解码。考虑先将参数admin先进行编码两次

对于字母a进行urldecode编码之后为%61,在对%进行urldecode编码之后为%2561

所以参数输入id=%2561dmin,这样的话浏览器先对参数编码一次为%61dmin,然后参数传入PHP服务器后为%61dmin,所以代码中的第一个if判断结果为false如下:

"admin"===$_GET[%2561dmin]

===(全等运算符):=== 运算符执行严格比较,它不会进行类型转换。
只有在两个操作数的值相等且类型也相同时,=== 运算符才返回 true,否则返回 false。
在严格比较中,值和类型都必须相同才会被视为相等。

例如:var_dump(1 === "1"); // 输出 bool(false)

然后$_GET[id] = urldecode($_GET[id])中urldecode再一次编码为了admin,跳到第二个if函数执行判断为true,获取flag

$_GET[%61dmin] == "admin"

==(相等运算符):== 运算符执行松散比较,它会在比较之前尝试将操作数转换为相同的类型。
如果两个操作数的值相等,那么 == 运算符返回 true,否则返回 false。
在松散比较中,类型不同的值可能会被视为相等。
例如,字符串 "1" 和整数 1 在使用 == 运算符比较时会被视为相等。

var_dump(1 == "1"); // 输出 bool(true)

总结:

1、尝试在url后面+inedx.php或index.phps,看页面变化

2、浏览器会对用户传入的参数进行urldecode解码,只会进行一次,并且直接将解码后的参数传给服务器php源码中

3、”==“ 是相等运算符,比较值相等,不比较类型;"===" 是全等运算符,值与类型都比较

4、urldecode为解码,urlencode为编码

5、参考:URL特殊字符编码对照表_bce6b8a5e6598e8-CSDN博客

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

智能自助终端主板RK3288/RK3568在酒店前台自助机方案的应用,支持鸿蒙,支持免费定制

酒店前台自助机解决方案是一款基于自助服务终端&#xff0c;能够让客人通过简单的操作完成入住登记/退房的解决方案&#xff0c;大幅提高酒店的工作效率&#xff0c;提升客人体验&#xff0c;降低人力成本。 该方案解决了以下传统前台登记入住方式的痛点&#xff1a; 1、人流量…

智能仓储物流系统(WMS)系列-出库分配发货

好的应用系统应是细分简单&#xff0c;界面简洁易操作&#xff0c;程序代码简洁易懂的。

8种常见的CMD命令

1.怎么打开CMD窗口 步骤1&#xff1a;winr 步骤2&#xff1a;在弹出的窗口输入cmd&#xff0c;然后点击确认&#xff0c;就会出现一个cmd的窗口 2.CMD的8种常见命令 2.1盘符名称冒号 说明&#xff1a;切换盘的路径 打开CMD窗口这里默认的是C盘的Users的27823路径底下&#xf…

Star CCM+衍生零部件的创建

前言 在一个仿真计算项目中&#xff0c;分配零部件至区域、划分网格后。下一步可以先将需要监测的点、面建立出来&#xff0c;方便后续创建报告。Star中需要创建点、面是在衍生零部件下创建。衍生零部件→右键→新建&#xff08;如下图1所示&#xff09;。通过衍生零部件可以创…

visual studio2022 JNI极简开发流程

文章目录 1 创建java类2 生成JNI头文件3 使用visual studio2022创建DLL项目3.1 选择模板中&#xff08;Windows桌面向导&#xff09;3.2 为项目命名3.3 选择应用程序类型为动态链接库3.4 项目概览 4 导入需要的头文件4.1 导入需要的头文件4.2 修改头文件 5 编写C实现6 生成dll文…

五月采购节 | 全场板卡八七折起

淘宝搜索【北京迅为电子官方企业】 5月13日~5月15日 海量优惠券等你拿&#xff01; 复制下方链接到淘宝 直接进入店铺&#xff01; https://shop459378556.taobao.com

推荐非常方便的初始配置nginx的开源工具

官网 https://www.digitalocean.com/community/tools/nginx?global.app.langzhCN直接复制base64字符串在 /etc/nginx 目录执行&#xff0c;会自动生成配置文件&#xff0c;最后执行 使用tar解压新的压缩配置 tar -xzvf nginxconfig.io-xxx.com.tar.gz | xargs chmod 0644在…

基础ArkTS组件:导航栏组件(HarmonyOS学习第三课【3.8】)

Navigation 官方文献 Navigation 组件一般作为页面布局的根容器&#xff0c;它提供了一系列属性方法来设置页面的标题栏、工具栏以及菜单栏的各种展示样式。 Navigation 除了提供了默认的展示样式属性外&#xff0c;它还提供了 CustomBuilder 模式来自定义展示样式 说明 该…

docker安装clickhouse

docker安装clickhouse clickhouse什么是 OLAPOLAP场景的关键属性ClickHouse的特性ClickHouse性能docker安装clikehouse安装部署系统要求DEB安装包RMP安装包Tgz安装包Docker安装包1、下载安装包2、 创建挂在目录3、 创建临时容器4、复制临时容器内配置文件到宿主机5、停止并删除…

【重大故障】澳大利亚所有大学退休金数据被Google误删除,本地云服务总监被直接解雇

本周Google私有云发生重大故障&#xff0c;在维护UniSuper客户配置&#xff0c;误删除所有数据&#xff08;包括异地备份数据&#xff09;&#xff0c; 客户最后通过其他供应商备份暂时已经恢复数据&#xff0c;但是系统还处于恢复中。 UniSuper 是一家澳大利亚退休金基金&…

【声呐仿真】学习记录3.5-docker中Gazebo是否使用GPU?解决声呐图像黑屏

【声呐仿真】学习记录3.5-docker中Gazebo是否使用GPU&#xff1f;解决声呐图像黑屏 &#x1f921;打包镜像&#xff0c;重装驱动&#xff08;失败&#xff09;Xorg重新配置DAVE环境&#xff08;补充之前教程中的一些细节&#xff09;解决声呐图像黑屏问题 在容器中运行 roslau…

公式识别软件免费的有哪些?简单好用的有三款

公式识别软件免费的有哪些&#xff1f;在数字化时代&#xff0c;公式识别软件已经成为科研、教育等领域不可或缺的工具。这些软件能够准确地将图像中的公式转化为可编辑的文本格式&#xff0c;极大地提高了工作效率。为了帮助大家轻松应对公式识别的挑战&#xff0c;今天本文就…

HarmonyOS开发案例:【Stage模型下Ability的创建和使用】

介绍 基于Stage模型&#xff0c;对Ability的创建和使用进行讲解。首先在课程中我们将带领大家使用DevEco Studio创建一个Stage模型Ability&#xff0c;并使用UIAbilityContext启动另一个Ability&#xff0c;然后借助Want&#xff0c;在Ability之间传递参数&#xff0c;最后我们…

【机器学习】人力资源管理的新篇章:AI驱动的高效与智能化

&#x1f9d1; 作者简介&#xff1a;阿里巴巴嵌入式技术专家&#xff0c;深耕嵌入式人工智能领域&#xff0c;具备多年的嵌入式硬件产品研发管理经验。 &#x1f4d2; 博客介绍&#xff1a;分享嵌入式开发领域的相关知识、经验、思考和感悟&#xff0c;欢迎关注。提供嵌入式方向…

算法题解记录25+++验证二叉搜索树(百日筑基)

题目描述&#xff1a; 难度&#xff1a;中等 给你一个二叉树的根节点 root &#xff0c;判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定义如下&#xff1a; 节点的左 子树 只包含 小于 当前节点的数。节点的右子树只包含 大于 当前节点的数。所有左子树和右子树自身必…

浅谈现代消息队列与云存储

一、前言 1970 年代末&#xff0c;消息系统用于管理多主机的打印作业&#xff0c;这种削峰解耦的能力逐渐被标准化为“点对点模型”和稍复杂的“发布订阅模型”&#xff0c;实现了数据处理的分布式协同。随着时代的发展&#xff0c;Kafka&#xff0c;Amazon SQS&#xff0c;Ro…

【主题广泛|稳定检索】2024年社会科学、公共服务与人文艺术国际会议(SPSHA 2024)

2024年社会科学、公共服务与人文艺术国际会议&#xff08;SPSHA 2024&#xff09; 2024 International Conference on Social Sciences, Public Services, and Humanities and Arts 【会议简介】 本次会议定于2024年在中国的繁华都市——广州召开&#xff0c;汇聚了全球在该领…

使用Vue3开发项目,搭建Vue cli3项目步骤

1.打开cmd &#xff0c;输入 vue create neoai遇到这样的问题 则需要升级一下电脑上 Vue Cli版本哈 升级完成之后 再次输入命令&#xff0c;创建vue3项目 vue create neoai安装完成后&#xff0c;输入 npm run serve 就可以运行项目啦~ 页面运行效果

C#知识|上位机UI设计-详情窗体设计思路及流程(实例)

哈喽,你好啊,我是雷工! 上两节练习记录了登录窗体和主窗体的实现过程,本节继续练习内容窗体的实现,以下为练习笔记。 01 详情窗体效果展示: 02 添加窗体并设置属性 在之前练习项目的基础上添加一个Windows窗体,设置名称为:FrmIPManage.cs 设置窗体的边框和标题栏的外…

Mask2former代码详解

1.整体流程 Mask2former流程如图所示&#xff0c;对于输入图片&#xff0c;首先经过Resnet等骨干网络获得多层级特征&#xff0c;对于获得的多层级特征&#xff0c;一个方向经过pixel decoder(基于DetrTransformerEncoderLayer)得到per-pixel embedding,另外一个方向经过transf…