攻防世界 题库 WEB PHP2 题目编号:GFSJ0234

题目:攻防世界 题库 WEB PHP2 题目编号:GFSJ0234

解题思路:

点开容器链接,显示 Can you anthenticate to this website?
在这里插入图片描述
百度机翻中文为:你能认证到这个网站吗?
先上御剑扫描一次再说
在这里插入图片描述
很遗憾好像没扫描出来东西。
那就再试试F12大法,看看网页源代码有没有线索。
在这里插入图片描述
源代码看着也没问题
我就只好再去看网络流
在这里插入图片描述
发现有一个重定向,给定到了
请求网址:
http://192.168.101.1/html/redirect.html
引荐来源网址政策:
strict-origin-when-cross-origin
做不来了,百度搜。

解题过程:

看了同站大佬们的思路和解题,
https://blog.youkuaiyun.com/m0_74979597/article/details/131643749

代码审计:

<?php if("admin"===$_GET[id]) { echo("

not allowed!

"); exit(); } $_GET[id] = urldecode($_GET[id]); if($_GET[id] == "admin") { echo "

Access granted!

"; echo "

Key: xxxxxxx

"; } ?>

意思是要用GET方法上传一个参数 id
id 直接等于admin的话,不被允许
但是上传id的值经过url解码后等于admin就可以通过。
admin的URL编码为:%61%64%6d%69%6e
直接访问
显示not allowed!
蒙圈,看到我编码后的url在访问时,id值自动被解码成了admin,后面仔细看教程,对第一个% 还要进行2次编码。
最后成功取得flag
在这里插入图片描述

收获和心得:

知识点1:常见的 PHP 脚本通常是保存在以 .php 为扩展名的文件上。这些文件可以存储在web 服务器的文档根目录中,以便通过浏览器访问和执行;经典的示例文件名:可能是 index.php 或 script.php,实际上可以选择任何合法的文件名作为 PHP 脚本的文件名。
知识点2:这个脚本文件是在服务器上运行的,不是在客户端浏览器上,我们得知道这个脚本文件里的代码,也就是说找到脚本源代码,php文件源代码通常在phps文件。
后面有去将上一个robots题目的容器打开,想看看index.phps。
结果如图,无访问权限,意思就是还真的有这个文件,只是不开放给你访问。这道题为了考察这个知识点,才开的权限?待我去多做几道题,我都试试看能不能访问。
在这里插入图片描述

知识点3:编码后参数%61dmin中存在特殊字符%,浏览器会自动进行URL解码,所以我们对%进行编码:%25 对第一个特殊字符%进行二次url编码,才可以防止上传的参数被PHP脚本解析前,直接解码,导致认证失败。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值