🚩 CTF Writeup
[web] No eXcuSeS (6 solves)
[web] No eXcuSeS (6 solves)
2024.03.19📌 Intro You can give us one excuse for not solving this challenge, but in the end we hope you will prevail! Note: For this challenge, you will not be sharing it by anybody else. Thus, you need to start your own instance. 🔬 Analysis //app.js const express = require('express'); const bodyParser = require('body-parser'); const { visit } = require('./bot'); const app = express(); const port = 7357; ..
[rev] Binary Conspicuous Digits
[rev] Binary Conspicuous Digits
2024.03.12📌 Intro This program outputs some conspicuous binary digits. See if you can find out what they mean... 🔬 Analysis # encrypt.py #!/usr/bin/env python3 flag = 'wxmctf{REDACTED}' encoded = '' for c in flag: encoded += ''.join(map( lambda x: format(int(x), 'b').zfill(4), str(ord(c)).zfill(3) )) with open('output.txt', 'w') as output: output.write(encoded) 위 코드를 보면 flag 문자에 대해 다음과 같은 작업을 수행한다. 1. str..
[web] Nuclear Launch Codes
[web] Nuclear Launch Codes
2024.03.11📌 Intro Blind SQL Injection MGCI's cybersecurity club has hired you to test their site security for nuclear launch codes. Unfortunately, they forgot to give you any log-in credentials, and they haven't implemented registration features yet! Can you find the nuclear launch codes? 🔬 Analysis # app.py @app.route('/login_username', methods=['POST']) def login(): username = request.form['username'] c..
[web] Walmart!
[web] Walmart!
2024.03.11이 글은 보호되어 있기 때문에 이것을 보려면 암호가 필요합니다.
[Web] Brawl: The Heist
[Web] Brawl: The Heist
2024.03.11📌 Intro parameter pollution 과 관련된 문제 After getting all of his brawlers to 500 trophies, Eatingfood has found himself in a pickle - there is a Fang on the opposing team every other match and he can no longer play the game! Luckily, he has a plan - to get enough gems to buy every brawler and hypercharge so he can get back to mindlessly mashing buttons and winning. Not wanting to wait and earn gems..
[web] stream-vs
[web] stream-vs
2024.03.08📌 Intro cookiezi와 대결을 해서 이겨야 플래그를 휙득할 수 있다. 게임 방식은 아래 사이트와 유사하다. https://ckrisirkc.github.io/osuStreamSpeed.js 🔬 Analysis calculate() 함수는 bpm과 ur을 계산하는 코드이다. 점수 알고리즘을 보면, BPM으로 먼저 판단하고, 동일하면 더 적은 UR을 가진 참가자가 우승한다. 봇은 BPM이 항상 목표 BPM과 일치하고, UR은 20.00이 나온다. 결국 BPM을 session.songs[session.round].bpm과 정확하게 일치시키고 UR값을 20 미만으로 만들어야한다. 🎉 Exploit 아래와 같이 코드를 작성하여 run() 함수내에 작성하면 목표로하는 BPM에 맞게 clicks.add() ..
[web] mikufanpage
[web] mikufanpage
2024.03.04📌 Intro 처음 웹 사이트에 접속하면 위와 같은 이미지가 보인다. 🔬 Analysis 문제 파일은 위와 같은 디렉토리 구조를 가지고 있으며, 여러개의 miku1.jpg 이미지와 함께 flag.txt가 존재한다. /image?path=miku1.jpg 로 접속하면 img 하위에 있는 이미지를 조회할 수 있다. index.html 페이지가 로드될 때 아래와 같이 7개의 이미지를 요청한다. // app.js const express = require('express'); const path = require('path'); const app = express(); const PORT = process.env.PORT ?? 3000; app.use(express.static(path.join(__dirnam..
[pwn] Tutorial - BOF104
[pwn] Tutorial - BOF104
2024.01.10이 글은 보호되어 있기 때문에 이것을 보려면 암호가 필요합니다.
[pwn] Tutorial - BOF103
[pwn] Tutorial - BOF103
2024.01.101. 문제 설명 ROP is an attack technique which makes BOF vulnerabilities so critical. Find the binary running at: nc bof103.sstf.site 1337. 2. Writeup 바이너리와 코드가 제공되는 튜토리얼 문제이다. #include #include unsigned long long key; void useme(unsigned long long a, unsigned long long b) { key = a * b; } void bofme() { char name[16]; puts("What's your name?"); printf("Name > "); scanf("%s", name); printf("Bye, %s.\..
[pwn] Tutorial - BOF102
[pwn] Tutorial - BOF102
2024.01.101. 문제 설명 This is an advanced course in Buffer Overflow. The binary is running at: nc bof102.sstf.site 1337. Get the shell of the server! 2. Writeup 바이너리와 코드가 제공되는 튜토리얼 문제이다. #include #include char name[16]; void bofme() { char payload[16]; puts("What's your name?"); printf("Name > "); scanf("%16s", name); printf("Hello, %s.\n", name); puts("Do you wanna build a snowman?"); printf(" > "); scanf("..
[pwn] Tutorial - BOF101
[pwn] Tutorial - BOF101
2024.01.101. 문제 설명 You might have heard about BOF. It's the most common vulnerability in executable binaries. Here is a vulnerable binary(Download). The binary is running at: nc bof101.sstf.site 1337. Can you smash it? Just execute printflag() function and get the flag! 2. Writeup 바이너리와 코드가 제공되는 튜토리얼 문제이다. #include #include #include #include void printflag(){ char buf[32]; int fd = open("/flag", O_RDONLY)..
[web] Tutorial - SQLi 103
[web] Tutorial - SQLi 103
2024.01.101. 문제 설명 Okay, you're getting familiar with web and sql! Here's another lesson for you. :) Find the password of the administrator. http://sqli103.sstf.site/survey.php. http://sqli103.sstf.site/check_id.php. Keep in mind: - There's pw column in the database. - The password meets '\d{6,10}'. - The flag will be SCTF{password of administrator}. 2. Writeup 이 문제는 게싱이 좀 심한 문제라서 적당히 풀이를 참고하며 풀었고, 다음과 같이..