[攻防世界CTF|web方向]第二题:PHP2

一、准备工具

浏览器、burpsuit

二、解题/思考过程

1.进入题目场景

2.开始尝试

接下来尝试查看源代码:无事发生

再用burp抓包该网页:还是没啥特别的

再次查看题目:根据题目提示可知往PHP方向考虑,得到这个网站的认证

3.补充知识

3.1 index.php

index.php是一个常见的文件名,通常用于web服务器网站中的根目录下,在web应用中,index.php通常是网站的入口文件,它包含了处理用户请求的代码,与数据库进行交互并生成页面的相关内容等,同时它也是连接后端逻辑和前端界面的桥梁之一。

所以我们去请求index.php:还是风平浪静,无事发生

3.2 index.phps文件

查询资料发现还有.phps文件:

phps文件就是php的源代码文件,通常用于提供给用户(访问者)查看php代码,因为用户无法直接通过Web浏览器看到php文件的内容,所以需要用phps文件代替。其实,只要不用php等已经在服务器中注册过的MIME类型为文件即可,但为了国际通用,所以才用了phps文件类型。

所以我们去请求一下index.phps:好好好,得到一段php代码片段,用于检查用户是否有访问网站的权限

4.开始分析得到的语句

第一行是 PHP 的开头标记,表示 PHP 代码的开始。

第二行检查通过 URL 传递的 'id' 参数的值是否等于 'admin'。如果它相等,则使用 'echo' 函数显示消息“not allowed!”并使用 'exit' 函数退出脚本。这是为了防止未经授权访问网站的管理员页面。

第六行使用 'urldecode' 函数解码 'id' 参数的 URL 编码值。

第七行检查 'id' 参数的解码值是否等于 'admin'。如果它相等,则使用 'echo' 函数显示消息“Access granted!”和一个密钥。

5.用burp对admin进行url编码

代码以 PHP 结束标记结束。
对id=admin中的admin进行编码,但由于浏览器会进行一次解码,所以对admin进行两次编码得到%2561%2564%256d%2569%256e

在网址后加上?id=%2561%2564%256d%2569%256e便能得到结果。

6.提交语句cyberpeace{b805853be6334fa3e49c3b459fd5b205}

夺旗成功!

二、复盘积累

原理:简单的代码审计、php源代码文件

目的:GET行参数的请求和url编码知识以及服务器的初次解码知识、了解phps文件

技巧补充:通过扫描目录获得index.php存在,根据Can you anthenticate to this website?反复试探php后缀名,发现index.phps存在源代码,然后可以通过url二次加密构造payload为id=%2561%2564%256d%2569%256e

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值