攻防世界PHP2

初见靶场(懵逼)

翻译了一下:你可以验证这个网站吗?

大概和权限有关吧!

胡思乱想

1:php2是php的的第二个版本,这个地方存在版本漏洞吗?

2:PHP语言在web中担任的角色

  • PHP(Hypertext Preprocessor)是一种广泛使用的服务器端脚本语言,在 Web 开发中承担着多个重要角色。以下是

    动态网页生成:

    PHP 可以生成动态内容,根据用户的请求或数据库内容动态生成网页。例如,可以根据用户输入显示不同的信息。 数据库交互:

    PHP 与多种数据库系统(如 MySQL、PostgreSQL、SQLite 等)配合良好,能够轻松进行数据存取和操作。通过 SQL查询,PHP 可以从数据库中获取数据并在网页上展示。 表单处理:

    PHP 可以处理用户提交的表单数据,进行验证、存储或执行其他操作。这使得用户交互变得简单而高效。 会话管理:

    PHP 提供了会话管理功能,可以跟踪用户状态(如登录状态、购物车内容等),使得网站能够提供个性化的用户体验。 文件操作:

    PHP 可以读取和写入服务器上的文件,允许开发者创建上传文件的功能,生成报告,或处理其他文件相关的操作。 安全性功能:

    PHP 提供了一系列安全功能,如数据过滤、验证和加密,帮助开发者保护应用免受常见的安全威胁(如 SQL 注入、跨站脚本攻击等)。

    开发中主要负责后端逻辑处理,是实现动态网页和交互式应用的重要工具

扫描网站目录

扫出来了两个,其实里面还有很多别的,这里一是字典比较小,二是限定扫描php发现了两个文件试着访问

index.php


找了来个靶场,可以发现根目录下都有一个index.php文件

如果有index.php文件一般的作用:

index.php 处理初始化、路由、等以及最终输出的 HTML 结构

当用户访问一个网站时,PHP脚本会在服务器上执行,生成动态的HTML页面,然后将页面发送给用户的浏览器进行显示。

访问一下(成功)

访问index.phps

看到题目了不用当无头苍蝇了

解题

找传参的url

显而易见要给id传参数

传入admin显而易见满足第一个if语句但是没有回显,说明入口不是这里,不在这里传参。

有回显,说明传参的地方为index.php的文件下

绕过

1:传入的不能是全等于admin不然会被过滤。

2: G E T [ i d ] = u r l d e c o d e ( _GET[id] = urldecode( GET[id]=urldecode(_GET[id])这一步是在对传入的参数进行url解码。

3:想要成功需要解码后的参数为admin就可以成功。

4:理论上说只需要对admin进行url编码即可

5:

php 复制代码
字母	URL 编码
A	%41
B	%42
C	%43
D	%44
E	%45
F	%46
G	%47
H	%48
I	%49
J	%4A
K	%4B
L	%4C
M	%4D
N	%4E
O	%4F
P	%50
Q	%51
R	%52
S	%53
T	%54
U	%55
V	%56
W	%57
X	%58
Y	%59
Z	%5A
a	%61
b	%62
c	%63
d	%64
e	%65
f	%66
g	%67
h	%68
i	%69
j	%6A
k	%6B
l	%6C
m	%6D
n	%6E
o	%6F
p	%70
q	%71
r	%72
s	%73
t	%74
u	%75
v	%76
w	%77
x	%78
y	%79
z	%7A

尝试将i进行编码

回车,发现居然没有绕过第一个if语句?????玩呢?

其实不然,这只能说浏览器有点"懂事"了,浏览器发现我传入的参数带有%字符,然后它就自觉的帮我们解析了一回了。

浏览器怎么说呢(我不太专业可能说的不对),浏览器在前端发现我们传入了adm%69n,然后浏览器就直接解码了,然后将解码后的参数也就是admin传给了执行php代码的服务器,然后此时服务器拿到的参数是admin所以第一个if都过不了。

6:破局

其实很简单,浏览器"懂事,但懂的不多",它只会将参数解码一次然后传给php服务器。这样的话我们让它解析完得到的数据是adm%69n不就ok了?

二重url加密

对参数admin中的任一字母加密两次。

第一次

admin------>adm%69

第二次(%69url编码结果为%2569)

adm%69n------>adm%2569n

拿下

相关推荐
非凡的世界11 小时前
为什么我和越来越多的PHP程序员,选择了 Webman ?
开发语言·php·workman·webman
一个平凡而乐于分享的小比特11 小时前
UCOSIII笔记(十四)时间戳
笔记·时间戳·ucosiii
YJlio12 小时前
ShareEnum 学习笔记(9.5):内网共享体检——开放共享、匿名访问与权限风险
大数据·笔记·学习
泽虞12 小时前
《STM32单片机开发》p7
笔记·stm32·单片机·嵌入式硬件
FakeOccupational13 小时前
电路笔记(信号):网线能传多少米?网线信号传输距离
开发语言·笔记·php
李宥小哥13 小时前
Redis10-原理-网络模型
开发语言·网络·php
踢球的打工仔19 小时前
PHP面向对象(7)
android·开发语言·php
Yawesh_best1 天前
告别系统壁垒!WSL+cpolar 让跨平台开发效率翻倍
运维·服务器·数据库·笔记·web安全
4***v2141 天前
详解 为什么 tcp 会出现 粘包 拆包 问题
网络·tcp/ip·php
vx_dmxq2111 天前
【PHP考研互助系统】(免费领源码+演示录像)|可做计算机毕设Java、Python、PHP、小程序APP、C#、爬虫大数据、单片机、文案
java·spring boot·mysql·考研·微信小程序·小程序·php