zoukankan      html  css  js  c++  java
  • Natas21 Writeup(共用session、session注入)

    Natas21:

    第一个网页

    第二个网页

    提示http://natas21.natas.labs.overthewire.org/页面和http://natas21-experimenter.natas.labs.overthewire.org页面同位,也就是共用服务器,session也是共用的。

    查看第一个网页源码,发现主要功能就是判断session[admin]=1后显示密码。

    function print_credentials() { 
        if($_SESSION and array_key_exists("admin", $_SESSION) and $_SESSION["admin"] == 1) {
        print "You are an admin. The credentials for the next level are:<br>";
        print "<pre>Username: natas22
    ";
        print "Password: <censored></pre>";
        } else {
        print "You are logged in as a regular user. Login as an admin to retrieve credentials for natas22.";
        }
    }
    

    查看第二个网页源码,虽然在改变本页的时候进行了合法性检测,但是在将提交的参数加载到session中时,并没有对提交的参数进行审核。所以我们可以在参数中注入admin=1以将其保存在session中。

    // if update was submitted, store it
    if(array_key_exists("submit", $_REQUEST)) {
        foreach($_REQUEST as $key => $val) {
        $_SESSION[$key] = $val;
        }
    }
    

    直接在第二个页面提交数据,burp抓包截取,在post参数最后加上&admin=1。在返回的响应中我们可以看到,已经成功将admin=1注入到session中。

    然后使用第二个网页的session id,更新第一个网页的session id,刷新得到flag。

    注意,在以上两个请求中,cookie中存在类似于__utmz=176859643.1581326765.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); __utma=176859643.1899478901.1581326765.1582181979.1582188453.10; 的键值对,刚开始我仅仅替换了PHPSESSID,怎么都不成功。后来我将这些键值对全部删除,仅保留PHPSESSID,成功得到flag。

    原理:由于提示两个网页保存在同一处,说明session文件也是共用的;在第二个网页注入admin=1后PHP将其保存在session文件里,把第一个网页的sessionID改为这边被注入admin=1过的sessionID后,第一个网页读取ID文件将会得到被注入的文件。

    flag:chG9fbe1Tq2eWVMgjYYD1MsfIvN461kJ

    参考:

    https://www.cnblogs.com/ichunqiu/p/9554885.html
    https://blog.csdn.net/whklhhhh/article/details/77418201?utm_source=distribute.pc_relevant.none-task

  • 相关阅读:
    有关 PHP 和 MySQL 时区的一点总结
    PHP CLI模式下的多进程应用
    Linux编程之:五个常见PHP数据库问题
    用php定制404错误页面 并发信通知管理员
    配置PHP站点安全综合教程
    新手必看的PHP学习入门的一些基础知识
    彻底杜绝PHP的session cookie错误
    专家预言:PHP将比Java更受开发人员欢迎
    PHP企业级应用之WebService续篇
    清除 数据库 日志 以 Db_Test 为例
  • 原文地址:https://www.cnblogs.com/zhengna/p/12337291.html
Copyright © 2011-2022 走看看