zoukankan      html  css  js  c++  java
  • 攻防世界 web进阶区 ics-06


    攻防世界 ics-06

    涉及知识点:

    (1)php://filter协议

    (2)php中preg_replace()函数的漏洞

    解析:

    进入题目的界面,一通乱点点出了唯一一个可以进入的界面。

    观察url

    http://111.198.29.45:41597/index.php?page=index

    觉得page变量有问题,既然他可以为index(即文件名,那可不可以显示文件源码呢?)

    于是构造payload

    http://111.198.29.45:41597/index.php?page=php://filter/read=convert.base64-encode/resource=index.php

     果然爆出了源码。放到解密网站中go一下。解出源码。

    代码审计,发现了关键点。

     这里就要提到preg_replace()函数的漏洞了,在$pattern中包含/e时,$replacement会被当做php代码来使用。(正则匹配几次就会执行几次$replacement中的代码)

    学习资料:http://www.xinyueseo.com/websecurity/158.html

    那还有啥说的,burpsuite走起来。

     扫出了目录,那就是一个个找了。最后发现s3chahahaDir有东西。

    查看文件发现真的有flag。提交。完成!

     另外:有两遍flag就是 因为  test test匹配了两次/test/ 所以以上的代码执行了两次(最好写两次,万一两次返回结果不一样呢,虽然不太可能,但试试总没错QWQ)

    攻防世界 ics-07   (没有做出来,但好像是题目的问题,毕竟本地复现成功了,但是照着wp撸也没拿到flag。看个思路和知识点就好了。)

    涉及知识点:

    (1)代码审计(php的弱类型特点)

    (2)linux下的文件生成特点

    解析:

    if (isset($_GET[id]) && floatval($_GET[id]) !== '1' && substr($_GET[id], -1) === '9')

    第一步的payload: ?id=1@9&submit&page=flag.php 没什么好说的。利用php的弱类型比较可以轻松的读取出admin用户(即id=1的用户)并满足以上条件。

    使自己的session成为admin后,第二个点

    <?php
         if ($_SESSION['admin']) {
           $con = $_POST['con'];
           $file = $_POST['file'];
           $filename = "backup/".$file;  //假目录
    
           if(preg_match('/.+.ph(p[3457]?|t|tml)$/i', $filename)){
              die("Bad file extension");
           }else{
                chdir('uploaded'); //更改目录
               $f = fopen($filename, 'w');
               fwrite($f, $con);
               fclose($f);
           }
         }
         ?>

    其他的点就不多说了,毕竟都标注了,重点linux下的文件

    可以用../shell.php/.来绕过过滤。(原理的话大概是因为linux文件生成时会自动隐藏生成../和./)

  • 相关阅读:
    2:编写虚幻引擎中的UC和C++代码
    1:编写虚幻引擎中的UC和C++代码
    0:编写虚幻引擎中的UC和C++代码
    4:虚幻引擎网络架构:技术要点总结篇
    3:虚幻引擎网络架构:GameInfo,PlayerMove
    2:虚幻引擎网络架构:Replication
    1:虚幻引擎网络架构:Actors
    R12-表详解-总帐
    clob 类型
    成本更新和算法
  • 原文地址:https://www.cnblogs.com/cioi/p/11664172.html
Copyright © 2011-2022 走看看