CTF & Wargame(CTF's) 8

HITCON - IMGC0NV(다시)

HITCON - IMGC0NV문제 파일을 열면 사용자가 원하는 파일을 업로드 하고 다른 포맷으로 바꿀 수 있는 기능이 있다. 그리고 포맷이 바뀐 파일은 zip 파일로 저정되어 사용자가 다운로드 할 수 있다.소스코드를 열어보니까 아래와 같은 취약점이 바로 보였다.def safe_filename(filename): filneame = filename.replace("/", "_").replace("..", "_") return filename이렇게 safe_filename으로 파일 이름을 필터링하고 있지만 fileneame라고 오타가 있기 때문에 필터링이 하나도 적용되지 않는다.그리고 다른 취약점이 하나 더 있었다.def convert_image(args): file_data, filenam..

SunshineCTF writeup

Lunar Auth/admin 엔드포인트에 접근해서 개발자 도구로 자바스크립트 코드를 확인해보면 위와 같이 base64로 인코딩된 username/pw를 알 수 있다.이를 디코딩하고 로그인하면 flag 획득 Lunar Shopproduct_id=1 union select 1,2,3,4위와 같이 Union 페이로드를 넣으면 아래에 1,2,3,4가 대입된다.→ union based sqli 확인4번 영역에 sqlite_version()을 넣어보니까 버전이 출력된다.→ sqlite 사용중1 union select 1,2,3,(SELECT name FROM sqlite_master WHERE type='table' limit 2,3)위와 같은 페이로드를 넣으면 flag라는 컬럼이 있는걸 확인할 수 있음SELEC..

CCE 예선 - Photo Editing(web) 라이트업

CCE - Photo Editing(web)해당 문제는 이미지를 업로드 하면 우리가 원하는 대로 편집할 수 있는 기능이 있다.일단 views.py의 코드를 보면 /transform 엔드포인트에서는 마지막에transformed_images = ip.apply_transform(transform_name, filenames, user_uuid, options)위와 같이 apply_transform 함수를 통해 전달한다. def apply_transform(transform_name, filenames, user_uuid, options=None): # transform : 변환 이름 # filenames : 이미지 파일들의 이름 # user_uuid : 사용자 식별 id # option..

WatCTF writeup(web)

gooses-typing-test이런 화면이 뜬다. 타자연습 같은데, 대충 해보면Good job on getting 477 wpm! Next, try to aim for 500 wpm to get a special reward!이렇게 뜬다. 500타를 넘겨야 하나보다.// === Ultra-robust auto typer for Goose Typing (aim: 650+ WPM) ===(async () => { // 0) 유틸 const wait = (ms) => new Promise(r => setTimeout(r, ms)); // 1) 입력창 찾기 const findInput = () => document.querySelector('input[placeholder*="Focus here"..

제 31회 해킹캠프 CTF write up

이번에 처음으로 제 31회 해킹캠프에 참여했다. 이번에 CTF를 진행하면서 배운 것들이 정말 많기 때문에 라이트업을 작성해본다.STAFF ONLY 로그인을 하고 해당 페이지를 보면, 엄청나게 많은 좌석들을 확인할 수 있다. 이중에서 하나만 골라서 선택완료 버튼을 누르면 mypage에이렇게 내가 예매한 좌석이 뜬다./list -> staff only -> 접근 불가능/report -> 예매 스탭에게 실시간으로 오류를 신고할 수 있는 기능이다.코드 분석add_header(response) 함수@app.after_requestdef add_header(response): csp_policy = [ "default-src 'none'", "script-src 'none'", ..

Full Weak Engineer CTF 2025 Writeup(web)

AED이 문제는 너무 쉬웠어서 대충 설명하자면, ssrf가 터지는 것을 획인했고,/fetch?url=http://[::1]:4000/toggle localhost를 우회해서 해당 Url에 접속하면 pwned가 true가 되어서 flag를 획득할 수 있었다. Personal Websiteguest/guest로 계정 생성 후 로그인 하면 위와 같은 화면이 나온다. 그리고 Edit config 버튼을 눌러서 /config 엔드포인트에 접근하면이런 화면으로 넘어가고, mode를 dark로 바꾸면 index page가 어둡게 바뀐다.# {"config":{"mode":"dark"}} 전달 했을 때의 엔드포인트@app.post("/api/config")@login_requireddef config_api(): ..

scriptCTF Wizard Gallery writeup

**복기용**문제 분석해당 문제는 ImageMagick을 활용하여 이미지를 업로드하는 기능이 있는 문제이다. 해당 문제를 풀기 위해서는 ImageMagick에서 발생하는 취약점인 CVE-2022-44268 사용해서 LFI를 터트려야 한다.CVE-2022-44268해당 취약점은 ImageMagick에서 convert로 이미지를 수정할 때, ReadOnePNGImage라는 함수에서 profile이라는 키워드가 발견될 경우에 발생하는 취약점이다. 여기서는 LFI 뿐만이 아니라 Privilege escalation도 발견될 수 있다.코드 및 취약점 분석@app.route('/logo-sm.png')def logo_small(): # A smaller images looks better on mobile s..