【原理】
简单的代码审计、php源代码文件
【目的】
GET行参数的请求和url编码知识以及服务器的初次解码知识、了解phps文件
【步骤】
1.打开浏览器,访问http://111.198.29.45:45191/index.phps 得到主页源代码,如图所示。
2.进行代码审计,可看出需要用GET方式给id参数传递一个为“admin”的值,但是会经过一次urldecode(),会将传入的值进行url解码,所以要对admin进行两次url编码。
3.对admin字符串进行第一次url编码得到%61%64%6d%69%6e
4.将%61%64%6d%69%6e再次进行url编码得到%2561%2564%256d%2569%256e
5.访问http://111.198.29.45:45191/index.php?id=%2561%2564%256d%2569%256e 得到flag。
了解一下index.php和index.phps
index.php
这是标准的 PHP 脚本文件,服务器会解析并执行其中的 PHP 代码,最终将生成的动态内容(如 HTML)返回给浏览器。例如,用户访问 index.php 时,服务器会执行代码中的逻辑(如数据库查询、身份验证等),并输出结果。
index.phps
该文件扩展名通常用于展示 PHP 源代码。当用户访问 index.phps 时,服务器不会执行其中的代码,而是直接将文件内容以纯文本形式返回给浏览器。这种机制常用于代码共享或调试,但会暴露源码中的敏感信息(如数据库密码、逻辑漏洞)。
本题考察的是对于phps和index.php文件的理解与运用
1.开启环境,点击http://223.112.5.141:49350进入环境

2.进入后,发现以下页面:
提示:Can you anthenticate to this website?
翻译过来就是:你能登录这个网站吗?

3.先来试试看访问index.php,构造url:http://223.112.5.141:49350/index.phps

4.发现没有任何回显

5.再试试看访问index.phps文件,构造url:http://223.112.5.141:49350/index.phps

6.访问后发现了php源码

php源码如下:
not allowed!
"); exit(); } $_GET[id] = urldecode($_GET[id]); if($_GET[id] == "admin") { echo "
Access granted!
"; echo "
Key: xxxxxxx
"; } ?> Can you anthenticate to this website?
经过代码审计后得出结论:
①需要通过GET方式进行传参
②传递一个参数,名为id,值为“admin”,获取key
③经过urldecode(),会将传入的值进行url解码,所以要对admin进行两次url编码
④对admin字符串进行第一次url编码得到%61%64%6d%69%6e
⑤将%61%64%6d%69%6e再次进行url编码得到%2561%2564%256d%2569%256e
7.因此构造url:http://223.112.5.141:49350/?id=%2561%2564%256d%2569%256e获取key

8.返回页面,直接或者flag
cyberpeace{ac9dffd449c3bfe4ca49b0019a43d7d5}

版权声明与原创承诺
本文所有文字、实验方法及技术分析均为 本人原创作品,受《中华人民共和国著作权法》保护。未经本人书面授权,禁止任何形式的转载、摘编或商业化使用。
道德与法律约束
文中涉及的网络安全技术研究均遵循 合法合规原则:
1️⃣ 所有渗透测试仅针对 本地授权靶机环境
2️⃣ 技术演示均在 获得书面授权的模拟平台 完成
3️⃣ 坚决抵制任何未授权渗透行为
技术资料获取
如需完整实验代码、工具配置详解及靶机搭建指南:
请关注微信公众号 「零日破晓」
后台回复关键词 【博客资源】 获取独家技术文档包
法律追责提示
对于任何:
✖️ 盗用文章内容
✖️ 未授权转载
✖️ 恶意篡改原创声明
本人保留法律追究权利。
375

被折叠的 条评论
为什么被折叠?



