SECCON Beginners CTF 2025で出題した skipping, メモRAG, url-checker, url-checker2, seesaw の作問者writeupです。 各問題のジャンル、難易度、solve数はこちらです。 問題名 ジャンル 難易度 solve数 skipping web beginner 737 メモRAG web medium 243 url-checker misc easy 606 url-checker2 misc medium 524 seesaw crypto beginner 612 [web] skipping 問題文はこちら。 /flagへのアクセスは拒否されます。curlなどを用いて工夫してアク...| melonattacker.github.io
はじめに 2024/12/09~2025/02/03にかけて開催されていたLLMail-InjectにCyberTAMAGOチームで参加しました。 結果は40問中17問を解いて14位でした。 コンテストの概要 コンテストの目的は、LLM統合型メールクライアントLLMailのプロンプトインジェクション防御を回避することです。LLMailのアシスタントは、ユーザーのメールに基づいて回答やアクションを実行しますが、間接的なプロ...| melonattacker.github.io
はじめに 2024年を適当に振り返ります。去年。 タイムライン 1~3月 OpenID Summit Tokyo 2024で発表。 修論執筆と発表に追われる。 P3NFEST Bug Bounty 2024に参加した。 とくしまマラソンを完走した。 4~6月 サイボウズ株式会社に就職。 新人研修、開発・運用本部の研修を受ける。 GitHub Actionsの脅威と対策についての記事を書いた。 7~9月 会社のチーム配属(PSIRT)。 セキュリティ・...| yuasa's blog
はじめに 2024年10月15~18日の日程で開催されたHardening 2024 Convolutions(ハードニング競技会)に参加しました。 ハードニング競技会は以下のようなものです(公式サイトより引用)。 ハードニング競技会は、サイバーセキュリティの実践的なスキルと知識を競うイベントです。参加者はチームを組み、競技会で託されるビジネス・ウェブサイト(例えばEコマースサイト)...| melonattacker.github.io
この記事はZennに投稿されています。| melonattacker.github.io
[web] Bad_Worker https://web-bad-worker-lz56g6.wanictf.org/fetchdata からflagを取得しようとすると、dummyのflagが取得されます。 service-worker.jsで動作するService Workerがリクエストを改竄しているようです。 async function onFetch(event) { let cachedResponse = null; if (event.request.method === 'GET') { const shouldServeIndexHtml = event.request.mode === 'navigate'; let request = event.request; if (request.url.toString().includes("FLAG.txt")) { reques...| melonattacker.github.io
SECCON Beginners CTF 2024で出題したWeb問題wooorker、wooorker2の作問者writeupです。 wooorker(難易度 beginner) フロントエンド側のOpen Redirect脆弱性を悪用する問題です。 バックエンド側のapp/server.jsではログイン時にJWTを発行します。JWTはJSON形式でデータを持つことができ、改ざんの有無が検証できる文字列です。詳細はこちらのスライド資料をご参照ください。 ユーザーはguestとad...| melonattacker.github.io
はじめに 2023年を適当に振り返ります。去年。 タイムライン 1~3月 フランスに3ヶ月間留学に行っていた。 夕方に毎日散歩する健康生活を送った。 スペイン(バルセロナ)、イタリア(ローマ、ヴェネツィア)にも行った。 4~6月 先輩の影響でスマブラを始める。 クッパ一筋。 未踏に応募したが面接で落ちた。 SECCON Beginners CTF 2023で作問。 7~9月 セキュリティキャンプ全...| melonattacker.github.io
はじめに 11月8、9日に開催されたCODE BLUE 2023に参加しました。自分の発表と印象に残った発表について振り返ります。 自分の発表について Blueboxのセッションで「OSBT: OpenID Connect Scenario-Based Tester」というタイトルで発表を行いました。Blueboxセッションの内容については以下参考。 Blueboxは本年新設されたコーナーで、さまざまなオープンソースツールやプロジェクトを紹...| melonattacker.github.io
はじめに 2023年9月3日に開催されたSECCON Beginners Live 2023にて、「JWTセキュリティ入門」というタイトルでLT発表を行いました。 SECCON Beginners Live 2023「JWTセキュリティ入門」の資料です#seccon #ctf4bhttps://t.co/wwIxuxCTpX — yuasa (@melonattacker) September 3, 2023 その際に出題したチャレンジ問題についての解法をまとめます。 JWTチャレンジの問題サーバはこちらですhttps://t.co/thiKxbpcyH 問題...| melonattacker.github.io
はじめに 2023-09-16 05:00 UTC - 2023-09-17 05:00 UTC でSECCON CTF 2023 Qualsが開催されました。 チームONsenで参加し、国際90/653位、国内37/334位でした。 僕はWebのwarmup問題であるBad JWTを解いたのみで、その他のweb問題に全く歯が立たずにベンチを温めていました。 参加にあたって チームONsenは僕の研究室の後輩であるY君が阪大在籍時に「打倒!W◯ni Hack○se!」をスローガンに設立した...| melonattacker.github.io
はじめに セキュリティキャンプ全国大会 2023 に専門Bクラス(Webセキュリティクラス)のチューターとして参加しました。チューターとしてやったこと、講義の感想、その他感想を参加記としてまとめます。 チューターとしてやったこと チューターとしては主に、ハンズオンにおける受講生の技術面でのサポートと講義中の写真撮影を行なっていました。ハンズオンで...| melonattacker.github.io
ctfpwn challengeを解いていきます。解けなくても解法はまとめます。 login1 調査 IDとPasswordを入力させて、認証を行うプログラムが与えられる。 # nc localhost 10001 ID: hoge Password: huga Invalid ID or password // gcc login1.c -o login1 -fno-stack-protector -no-pie -fcf-protection=none #include #include #include #include char flag[0x20]; char *gets(char *s); void setup() { FILE *f = NULL; alarm(60); setvbuf(stdin, NULL, _IONBF, 0); setvbuf(std...| melonattacker.github.io
pwnable.twを解いていきます。解けなくても解法はまとめます。 Start Just a start. nc chall.pwnable.tw 10000 start 調査 実行ファイルが与えられる。 file start start: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, not stripped 実行してみると、文字列が入力できることがわかる。たくさん文字を入力するとSegmentation faultが発生する。 # ./start Let's start the CTF: # ./start Let's start the CTF:a...| melonattacker.github.io
waniCTF 2023が2023/5/4(Thu) 15:00 ~ 2023/5/6(Sat) 15:00(JST)で開催されました。 [web] IndexedDB このページのどこかにフラグが隠されているようです。ブラウザの開発者ツールを使って探してみましょう。 It appears that the flag has been hidden somewhere on this page. Let’s use the browser’s developer tools to find it. https://indexeddb-web.wanictf.org /をcurlでGETするとflagをindexedDBに格納するjavascriptが含まれるページ...| melonattacker.github.io
ångstromCTF 2023が2023/04/23 0:00 - 2023/04/27 0:00 (UTC)で開催されました。 [web] catch me if you can ページのsourceにflagが書かれています。 $ curl https://catch-me-if-you-can.web.actf.co/ | grep "actf{" % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 1141 100 1141 0 0 143 0 0:00:07 0:00:07 --:--:-- 307 actf{y0u_caught_m3!_0101ff9abc2a724814dfd1c85c766afc7fbd88d2cdf747d8d9ddbf12d68ff874} [web] Celeste Speedrunnin...| melonattacker.github.io
RICERCA CTF 2023が2023/04/22 10:00 - 2023/04/22 22:00 (UTC+9)で開催されました。 [web] Cat Café 猫がかわいいですね。 app.pyは以下です。 import flask import os app = flask.Flask(__name__) @app.route('/') def index(): return flask.render_template('index.html') @app.route('/img') def serve_image(): filename = flask.request.args.get("f", "").replace("../", "") path = f'images/{filename}' if not os.path.isfile(path): return flask.abort(404) return flask.send_file(path) if...| melonattacker.github.io
LINE CTF 2023がMarch 25, 2023, 09:00 AM ~ March 26, 2023, 09:00 AM (UTC+9)で開催されました。 [web] Baby Simple GoCurl package main import ( "errors" // "fmt" "io/ioutil" "log" "net/http" "os" "strings" "github.com/gin-gonic/gin" ) func redirectChecker(req *http.Request, via []*http.Request) error { reqIp := strings.Split(via[len(via)-1].Host, ":")[0] if len(via) >= 2 || reqIp != "127.0.0.1" { return errors.New("Something wrong") } return nil } func main() { flag := os.Getenv("FLAG")...| melonattacker.github.io
はじめに 2022年を適当に振り返ります。バブバブ。 タイムライン 1月 卒論発表をした。 何事もなく終えた。 2月 競プロをやっていた…? 3月 SecHack365が終了した。 作品 国内の研究会で発表した。 大学を卒業した。大学生活の振り返り記事を書いた。 4月 NAISTに入学した。名古屋から京都の田舎に引っ越した。 Ir0nMaiden × WEST-SEC#9 8割解けるCTFをWEST-SECさんと共同で開催し...| melonattacker.github.io
NAIST Advent Calendar 2022の12日目の記事です。 本記事ではNAISTに存在するランニングコースである山中ロードについて紹介します。 はじめに 山中ロード(正式名称: 山中伸弥栄誉教授記念ランニングロード)はNAISTに存在するランニングロードです。 京都大学iPS細胞研究所所長・教授の山中伸弥さんがNAISTに在籍中にランニングをされていた外周道路(約1km)が山中ロードと...| melonattacker.github.io
2022/12/03(Sat) 00:00(JST) ~ 2022/12/04(Sun) 00:00(JST)の日程で開催されたtaskctf22に参加しました. ユーザー名yuasaで参加し, 1814ポイント獲得して24位でした. writeupを以下に示します. [osint] welcome 問題 2019年のtaskctfのwelcome問題のFlagは何でしたっけ? 解法 taskctf 2019で検索するとst98さんのwriteupが見つかり、そこにwelcome問題のflagが書かれていました。 taskctf{let's_enj0y!} [web] robots 問題 Flagが...| melonattacker.github.io
はじめに 11月15、16、19日に渡って開催されたHardening Decade 2022に参加しました。 ハードニング競技会は、基本的に、チームに託されたウェブサイト(例えばEコマースサイト)を、ビジネス目的を踏まえ、降りかかるあらゆる障害や攻撃に対して、考えうる手だてを尽くしてセキュリティ対応を実施しつつ、ビジネス成果が最大化するよう調整する力を競うものです。 この競...| melonattacker.github.io
この記事はLINE Engineering Blogに投稿されています。| melonattacker.github.io
はじめに 10月25日にComputer Security Symposium 2022 in Kumamotoで開催されたMWS Cup 2022(マルウェア解析のコンペ)に参加しました。自分の所属する研究室では毎年、修士課程の学生がMWS Cupに出場しており、自分も今年はM1の同期とともにチーム「卍脳筋鹿煎餅卍NEO」として出場することとなりました(チーム名は伝統に基づき決定)。 MWSCup 2022 今年のMWS Cupは以下の4課題から構成...| melonattacker.github.io
TsukuCTF 2022が10/22 12:20 - 10/23 18:00(JST)の日程で開催されました. webを解いていたので, そのwriteupを以下に記します. [web] bughunter(86 solves) [web] viewer(8 solves, not solved) [web] bughunter(86 solves) 問題文 天才ハッカーのつくし君は、どんなサイトの脆弱性でも見つけることができます。 あなたも彼のようにこのサイトの脆弱性を見つけることができますか? 見つけたら私たちに報告して...| melonattacker.github.io
CakeCTF 2022が9/3 14:00 - 9/4 14:00(JST)の日程で開催されました. webを解いていたので, そのwriteupを以下に記します. [web] CakeGEAR(104 solves) [web] OpenBio(50 solves) [web] CakeGEAR(104 solves) $_SESSION['admin']がtrueになればflagが取れるようです. if ($_SESSION['admin'] === true) { $mode = 'admin'; $flag = file_get_contents("/flag.txt"); } else { $mode = 'guest'; $flag = "***** Access Denied *****"; } usernameをgodmodeまたはadminとしてログイ...| melonattacker.github.io
はじめに 8月8日〜12日に開催されたセキュリティ・ネクストキャンプ 2022 オンラインというイベントに参加しました。このイベントは25歳以下の学生や社会人対して情報セキュリティに関する教育を行うプログラムです。セキュリティキャンプ 全国大会と並行に開催されました。全国大会は22歳以下が参加できます。 実を言うと自分は、当初全国大会に応募する予定でし...| melonattacker.github.io
DiceCTF @ HOPE 2022が7/23 3:00 - 7/25 3:00(JST)の日程で開催されました. webを解いていたので, そのwriteupを以下に記します. [web] secure-page(293 solves) [web] reverser(225 solves) [web] flag-viewer(217 solves) [web] pastebin(139 solves) [web] point(111 solves) [web] oeps(83 solves) [web] secure-page(293 solves) cookieとしてadmin=trueを送信すると, flagが得られるようです. admin = request.cookies.get('admin', '') headers = {} if admin == '': headers[...| melonattacker.github.io
I worked on the Paper active(now retired) machine of HackTheBox, so I will write its writeup. Port Scan kali@kali:~$ nmap -T4 -A -v -Pn -p- 10.10.11.143 PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 8.0 (protocol 2.0) | ssh-hostkey: | 2048 10:05:ea:50:56:a6:00:cb:1c:9c:93:df:5f:83:e0:64 (RSA) | 256 58:8c:82:1c:c6:63:2a:83:87:5c:2f:2b:4f:4d:c3:79 (ECDSA) |_ 256 31:78:af:d1:3b:c4:2e:9d:60:4e:eb:5d:03:ec:a0:22 (ED25519) 80/tcp open http Apache httpd 2.4.37 ((centos) OpenSSL/1.1.1k mod_fcgid...| melonattacker.github.io
SECCON Beginners CTF 2022がSat, June 04, 14:00 — Sun, June 05, 14:00 (JST)の日程で開催されました. 今回はgaidailove(研究室の同期チーム)として参加しました. 最終的には654ポイント獲得し, 131/891位でした. 僕はwebを解いていたので, そのwriteupを以下に記します. [web] Util 配布ファイルmain.goの以下の部分に脆弱性があります. コマンドに任意の文字列を挿入できるので, OSコマンドインジェク...| melonattacker.github.io
I worked on the Mirai retired machine of HackTheBox, so I will write its writeup. Port Scan kali@kali:~$ nmap -T4 -A -v -Pn -p- 10.10.10.48 PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 6.7p1 Debian 5+deb8u3 (protocol 2.0) | ssh-hostkey: | 1024 aa:ef:5c:e0:8e:86:97:82:47:ff:4a:e5:40:18:90:c5 (DSA) | 2048 e8:c1:9d:c5:43:ab:fe:61:23:3b:d7:e4:af:9b:74:18 (RSA) | 256 b6:a0:78:38:d0:c8:10:94:8b:44:b2:ea:a0:17:42:2b (ECDSA) |_ 256 4d:68:40:f7:20:c4:e5:52:80:7a:44:38:b8:a2:a7:52 (ED25519) 53/tc...| melonattacker.github.io
I worked on the Postman retired machine of HackTheBox, so I will write its writeup. Port Scan kali@kali:~$ nmap -T4 -A -v -Pn -p- 10.10.10.160 PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0) | ssh-hostkey: | 2048 46:83:4f:f1:38:61:c0:1c:74:cb:b5:d1:4a:68:4d:77 (RSA) | 256 2d:8d:27:d2:df:15:1a:31:53:05:fb:ff:f0:62:26:89 (ECDSA) |_ 256 ca:7c:82:aa:5a:d3:72:ca:8b:8a:38:3a:80:41:a0:45 (ED25519) 80/tcp open http Apache httpd 2.4.29 ((Ubuntu))...| melonattacker.github.io
I worked on the Irked retired machine of HackTheBox, so I will write its writeup. Port Scan kali@kali:~$ nmap -T4 -A -v -Pn -p- 10.10.10.117 PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 6.7p1 Debian 5+deb8u4 (protocol 2.0) | ssh-hostkey: | 1024 6a:5d:f5:bd:cf:83:78:b6:75:31:9b:dc:79:c5:fd:ad (DSA) | 2048 75:2e:66:bf:b9:3c:cc:f7:7e:84:8a:8b:f0:81:02:33 (RSA) | 256 c8:a3:a2:5e:34:9a:c4:9b:90:53:f7:50:bf:ea:25:3b (ECDSA) |_ 256 8d:1b:43:c7:d0:1a:4c:05:cf:82:ed:c1:01:63:a2:0c (ED25519) 80/t...| melonattacker.github.io
I worked on the Traverxec retired machine of HackTheBox, so I will write its writeup. Port Scan kali@kali:~$ nmap -T4 -A -v -Pn -p- 10.10.10.165 PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 7.9p1 Debian 10+deb10u1 (protocol 2.0) | ssh-hostkey: | 2048 aa:99:a8:16:68:cd:41:cc:f9:6c:84:01:c7:59:09:5c (RSA) | 256 93:dd:1a:23:ee:d7:1f:08:6b:58:47:09:73:a3:88:cc (ECDSA) |_ 256 9d:d6:62:1e:7a:fb:8f:56:92:e6:37:f1:10:db:9b:ce (ED25519) 80/tcp open http nostromo 1.9.6 |_http-favicon: Unknown fav...| melonattacker.github.io
I worked on the Traceback retired machine of HackTheBox, so I will write its writeup. Port Scan kali@kali:~$ nmap -T4 -A -v -Pn -p- 10.10.10.181 PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0) | ssh-hostkey: | 2048 96:25:51:8e:6c:83:07:48:ce:11:4b:1f:e5:6d:8a:28 (RSA) | 256 54:bd:46:71:14:bd:b2:42:a1:b6:b0:2d:94:14:3b:0d (ECDSA) |_ 256 4d:c3:f8:52:b8:85:ec:9c:3e:4d:57:2c:4a:82:fd:86 (ED25519) 80/tcp open http Apache httpd 2.4.29 ((Ubuntu...| melonattacker.github.io
I worked on the OpenAdmin retired machine of HackTheBox, so I will write its writeup. Port Scan kali@kali:~$ nmap -T4 -A -v -Pn -p- 10.10.10.171 PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0) | ssh-hostkey: | 2048 4b:98:df:85:d1:7e:f0:3d:da:48:cd:bc:92:00:b7:54 (RSA) | 256 dc:eb:3d:c9:44:d1:18:b1:22:b4:cf:de:bd:6c:7a:54 (ECDSA) |_ 256 dc:ad:ca:3c:11:31:5b:6f:e6:a4:89:34:7c:9b:e5:50 (ED25519) 80/tcp open http Apache httpd 2.4.29 ((Ubuntu...| melonattacker.github.io
ångstromCTF 2022 was held at Sat, April 30, 00:00 — Wed, May 04, 23:59 (UTC). Since I mainly solved the web, I will write the writeup. [web] The Flash Problem Statement : The new Justice League movies nerfed the Flash, so clam made his own rendition! Can you get the flag before the Flash swaps it out at the speed of light? Problem Server : https://the-flash.web.actf.co/ Basically, the dummy flag is displayed on the web page, but the real flag is displayed for a moment.| melonattacker.github.io
この記事はnoteに投稿されています。| melonattacker.github.io
この記事はQiitaに投稿されています。| melonattacker.github.io
この記事はQiitaに投稿されています。| melonattacker.github.io
この記事はQiitaに投稿されています。| melonattacker.github.io
この記事はQiitaに投稿されています。| melonattacker.github.io
この記事はQiitaに投稿されています。| melonattacker.github.io
この記事はQiitaに投稿されています。| melonattacker.github.io
この記事はQiitaに投稿されています。| melonattacker.github.io
この記事はQiitaに投稿されています。| melonattacker.github.io
この記事はQiitaに投稿されています。| melonattacker.github.io
この記事はQiitaに投稿されています。| melonattacker.github.io
この記事はQiitaに投稿されています。| melonattacker.github.io
SECCON Beginners CTF 2023で出題したWeb問題double check、oooauthの作問者writeupです。 double check(難易度 Medium) JWTを用いた認証機能の脆弱性とPrototype Pollutionの脆弱性を連鎖的に悪用する問題です。 問題の実装は以下です。 const express = require("express"); const session = require("express-session"); const jwt = require("jsonwebtoken"); const _ = require("lodash"); const { readKeyFromFile, generateRandomString, getAdminPassword } ...| melonattacker.github.io