攻防世界web练习21

本文介绍了攻防世界Web练习的第21题——PHP2,讲解了如何通过分析.php文件内容,理解其代码逻辑,利用URL编码技巧解码获取flag。关键步骤包括绕过条件,使用%2561编码admin,最终得到flag:http://111.200.241.244:61608/index.php/?id=%2561dmin,总结了.urlps文件类型和URL解码过程。
摘要由CSDN通过智能技术生成

攻防世界web练习

二十一、PHP2

http://111.200.241.244:61608/

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

  1. 输入index.php,页面没变化

  2. 扫出index.phps,输入后页面出现内容,整理得到如下代码

    <?php
        if("admin"===$_GEt[id]) {
            echo("<p>not allowed!</p>");
            exit();
        }
    
    $_GET[id] = urldecode($_GET[id]);
    if($_GET[id] == "admin") 
    {
        echo "<p>Access granted!</p>"; 
        echo "<p>Key: xxxxxxx</p>"; 
    }
    ?> 
        
    Can you anthenticate to this website? 
    
  3. 分析代码:
    第一步,要使得"admin"===$_GET[id]不成立。
    第二步,经过$_GET[id] = urldecode($_GET[id]);,使得$_GET[id] == "admin"成立。

  4. 输入编码后的参数:?id=%2561dmin

  5. 得到flag:http://111.200.241.244:61608/index.php/?id=%2561dmin
    Key: cyberpeace{09fa3592420b46e195e4d14ed208772c}

总结

  1. .phps
    这个是之前没有碰到过的,第一次扫描时也没有扫出来,记一下
  2. urldecode/urlencode
    当传入参数id时,浏览器在后面会对非ASCII码的字符进行一次urlencode
    然后在这段代码中运行时,会自动进行一次urldecode
    在urldecode()函数中,再一次进行一次解码
    urldecode(%2561)=%61
    urldecode(%61)=a
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值