攻防世界-PHP2题

攻防世界-PHP2题

打开靶场网址后发现页面只有一句话:

image-20211113102915425

该语句的意思为:你能验证这个网站吗?

常规操作,进行抓包,发现什么也没有抓到,进入index.php网址发现与当前界面相同,于是用御剑进行网址目录扫描:

image-20211113103141889

扫描后可以发现存在网址/index.phps(如果没有扫描到,则说明你需要在字典中加入这个网址)

进入网址可看到页面的源代码,将源代码复制下来进行分析:

image-20211113103245895

image-20211113103305595

进行代码审计,可以发现页面存在传入参数id,并且,如果id的值为admin,则输出not allowed,且直接结束:

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

但是,后续代码又显示,将id进行url解码之后,id的值必须是admin才能够正确进入,并输出key:

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

所以,id的输入值应该为admin,但是admin必须进行url编码,由于浏览器会进行一次url解码,所以如果想要服务器端进行一次url解码,则必须对admin进行两次url编码:

image-20211113103715811

再将编码后的值作为id的参数进行传入:

/?id=%2561%2564%256d%2569%256e

image-20211113103814616

此时,成功查出flag值!

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学编程的小w

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值