攻防世界 php2

news/2025/2/2 23:35:36 标签: android

你能验证这个网站吗?

根据提示是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.niftyadmin.cn/n/5840364.html

相关文章

文本复制兼容方案最佳实现落地。

文章目录 一、navigator.clipboard.writeText二、方案落地总结 一、navigator.clipboard.writeText navigator.clipboard.writeText 是一个Web API&#xff0c;它允许网页脚本将文本数据写入用户的系统剪贴板。这个API是异步的&#xff0c;并且设计用于提高安全性和用户体验&a…

解锁豆瓣高清海报(一) 深度爬虫与requests进阶之路

前瞻 PosterBandit 这个脚本能够根据用户指定的日期&#xff0c;爬取你看过的影视最高清的海报&#xff0c;然后使用 PixelWeaver.py 自动拼接成指定大小的长图。 你是否发现直接从豆瓣爬取下来的海报清晰度很低&#xff1f; 使用 .pic .nbg img CSS 选择器&#xff0c;在 我…

MATLAB实现多种群遗传算法

多种群遗传算法&#xff08;MPGA, Multi-Population Genetic Algorithm&#xff09;是一种改进的遗传算法&#xff0c;它通过将种群分成多个子种群并在不同的子种群之间进行交叉和交换&#xff0c;旨在提高全局搜索能力并避免早期收敛。下面是多种群遗传算法的主要步骤和流程&a…

安全防护前置

就业概述 网络安全工程师/安全运维工程师/安全工程师 安全架构师/安全专员/研究院&#xff08;数学要好&#xff09; 厂商工程师&#xff08;售前/售后&#xff09; 系统集成工程师&#xff08;所有计算机知识都要会一点&#xff09; 学习目标 前言 网络安全事件 蠕虫病毒--&…

Python 梯度下降法(六):Nadam Optimize

文章目录 Python 梯度下降法&#xff08;六&#xff09;&#xff1a;Nadam Optimize一、数学原理1.1 介绍1.2 符号定义1.3 实现流程 二、代码实现2.1 函数代码2.2 总代码 三、优缺点3.1 优点3.2 缺点 四、相关链接 Python 梯度下降法&#xff08;六&#xff09;&#xff1a;Nad…

5.攻防世界simple_php

打开题目页面如下 看到是PHP代码&#xff0c;进行代码审计 <?php // 显示当前 PHP 文件的源代码 show_source(__FILE__); // 从 HTTP GET 请求中获取名为 a 的参数的值&#xff0c;并将其赋值给变量 $a。 // 符号是错误抑制符&#xff0c;它会抑制可能出现的未定义索引警…

Java基础知识总结(三十七)--io异常的处理方式

io一定要写finally&#xff1b; 写入数据的细节&#xff1a; 1&#xff1a;window中的换行符&#xff1a;\r\n两个符号组成。 linux&#xff1a;\n。 2&#xff1a;续写数据&#xff0c;只要在构造方法中传入新的参数true。 3&#xff1a;目录分割符&#xff1a;window \\ …

【华为OD-E卷 - 连续出牌数量 100分(python、java、c++、js、c)】

【华为OD-E卷 - 连续出牌数量 100分&#xff08;python、java、c、js、c&#xff09;】 题目 有这么一款单人卡牌游戏&#xff0c;牌面由颜色和数字组成&#xff0c;颜色为红、黄、蓝、绿中的一种&#xff0c;数字为0-9中的一个。游戏开始时玩家从手牌中选取一张卡牌打出&…