20220203--CTF刷题WEB方向-- PHP2--考察URL编码解码和修改php后缀为phps

本文介绍了在攻防世界网站上的一个WEB安全题目,涉及PHP源码泄露和双重URL解码技巧。通过端口扫描和尝试不同文件后缀,发现源码中存在条件判断,需对参数"admin"进行两次URL解码才能获得访问权限。理解并利用这一点,最终成功获取到flag,展示了Web安全攻防中的常见策略。
摘要由CSDN通过智能技术生成

刷题网站:攻防世界 https://adworld.xctf.org.cn/

WEB方向–进阶场–第3题–PHP2

在这里插入图片描述

网站右键查看源代码什么都没有
在这里插入图片描述

端口扫描:(在这里我用了御剑扫描,并且字典全选了)
在这里插入图片描述

访问:
在这里插入图片描述

还是无果,建议将后缀改成phps:(这个要当作积累)
在这里插入图片描述

右键查看页面源代码,发现源码有泄漏:
在这里插入图片描述

<?php
if("admin"===$_GET[id]) {//对id进行第一次解码
  echo("<p>not allowed!</p>");
  exit();
}

$_GET[id] = urldecode($_GET[id]);//对id进行第二次解码
if($_GET[id] == "admin")
{
  echo "<p>Access granted!</p>";
  echo "<p>Key: xxxxxxx </p>";
}
?>

Can you anthenticate to this website?

所以要对admin进行两次编码比较好
在这里插入图片描述

注意要在根目录尝试GET方法:
在这里插入图片描述

最终得到flag:Key: cyberpeace{81db651d99cc6783242b9ebee385822e}

总结:

在扫描到有index.php并且访问没有结果的情况下,可以试试将后缀php改成phps;要看懂源码。还要注意: G E T [ i d ] 往 往 已 经 对 传 的 参 数 做 了 一 次 U R L 解 码 了 , 而 u r l d e c o d e ( _GET[id]往往已经对传的参数做了一次URL解码了,而urldecode( GET[id]URLurldecode(_GET[id]方法会对不是URL的部分 再进行一次解码,要注意逻辑

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值