zoukankan      html  css  js  c++  java
  • 实验吧_Guess Next Session&Once More(代码审计)

    Guess Next Session

    看题目提示,是一道代码审计:

     1 <?php
     2 session_start(); 
     3 if (isset ($_GET['password'])) {
     4     if ($_GET['password'] == $_SESSION['password'])
     5         die ('Flag: '.$flag);
     6     else
     7         print '<p>Wrong guess.</p>';
     8 }
     9 
    10 mt_srand((microtime() ^ rand(1, 10000)) % rand(1, 10000) + rand(1, 10000));
    11 ?>

    其中的判断条件就是$_GET['password'] == $_SESSION['password'],传入的password要等于session中的password,在PHP配置中的默认情况下,Session是用Session ID来确定当前对话所对应的服务器Session,sessionID可在cookie中找到,当我们删除cookie中的sessionID后,$_SESSION['password']就会返回空,我们同样传入空的password就能绕过了

    先拿burp抓包,果然是存在PHPSESSID,删除后面的值,password不要赋值,go一下就能拿到flag

    Once More

    又是代码审计╮(๑•́ ₃•̀๑)╭

     1 <?php
     2 if (isset ($_GET['password'])) {
     3     if (ereg ("^[a-zA-Z0-9]+$", $_GET['password']) === FALSE)
     4     {
     5         echo '<p>You password must be alphanumeric</p>';
     6     }
     7     else if (strlen($_GET['password']) < 8 && $_GET['password'] > 9999999)
     8     {
     9         if (strpos ($_GET['password'], '*-*') !== FALSE)
    10         {
    11             die('Flag: ' . $flag);
    12         }
    13         else
    14         {
    15             echo('<p>*-* have not been found</p>');
    16         }
    17     }
    18     else
    19     {
    20         echo '<p>Invalid password</p>';
    21     }
    22 }
    23 ?>

    先给出ereg()函数与strpos()函数的详细解释。

    代码的首先判断传入的password中是否只含有字母跟数字,接着要求password长度小于8且数值大于9999999,并且password中要含有*-*

    这里有两种方法:

    1.ereg()截断漏洞
    因为ereg函数存在NULL截断漏洞,导致了正则过滤被绕过,所以可以使用%00截断正则匹配。
    构造payload:password=9e9%00*-*
    注:其中#必须用%23代替

    2.当ntf为数组时它的返回值不是FALSE
    构造payload:password[]=111

     

  • 相关阅读:
    中国国家气象局天气预报信息接口
    windows文件同步到linux
    页面元素自适应
    js对浮点数计算的bug
    ajax跨域报错
    html5使用js确定用户坐标位置
    linux下rsync服务的搭建
    linux基本指令
    js控制页面刷新大全
    pdf在浏览器的显示问题
  • 原文地址:https://www.cnblogs.com/Ragd0ll/p/8643400.html
Copyright © 2011-2022 走看看