Security - Player/CTF 5

CCE Jr 1st

CCE 주니어 1등했다.모의 고사도 2 1 1 떠서 기분 좋은데 공짜 125만원 들어와서 기분이 매우 좋다.웃기게도 내가 푼 문제는 한 문제이다. 3솔브인데 우리 팀, The Duckling, The Gosling 이렇게 세 팀이 풀었다. 원시 다항식이 x^8+x^4+x^3+x^2+1인 GF(2^8) 체 내에서 연립 방정식을 구성해서 풀이하였다. 원시 다항식은 어짜피 바이트가 GF(2^8)이고 따라서 원시 다항식의 최고차항이 8차 이하라고 가정하여 512가지의 경우의 수를 브루트 포싱을 돌려서 얻어냈다. Sage에서 연립방정식은 solve_right로 풀 수 있다.amo님의 도움을 적잖게 받았다. 솔브 코드는 여기 있다. 1번 문제도 쉬웠다. 취약한 n에 대해 인수분해를 시도하면 되는데 문제는 내가 사용..

Dreamhack Invitationals 후기

어제 (2024년 5월 27일) Dreamhack Invitational에서 대회를 치루었고, 생각했던 것보다 낮은 순위를 기록했다..  19위에 랭크되었고, 대회 15문제 중 1문제밖에 풀지 못했다. 리버싱만 다 풀자는 마인드로 참여했는데 그게 잘 안 되었다.. ㅠㅠ 무엇이 문제였는가? 우선 1번 문제는 큰 문제는 아니였다. 1번 문제를 순삭하고 좋은 시작을 알렸다. solve.py# Use 'IDA Decompiled results' to parse the instructions# use sweeping to parse stringsdef parse1(s: str): instructions = s.split('\n') m = [] elasped = 0 for inst in ins..

osu!gaming CTF 2024 Reversing Write-Up

66등 하였다. 서론 원래 osu! 라는 게임을 즐겨하는 사람으로서 이 CTF는 굉장히 흥미로웠다. CTF 문제에 osu라는 새로운 항목이 추가되면서 CTF의 Fresh함을 챙겼다고 볼 수 있다. osu!와 CTF 모두 좋아하는 사람으로서 이 콤비네이션은 열심히 안 할 수 없다. 그 결과로 리버싱을 올킬했다. 이 글에서는 리버싱 문제에 관련해 Write-Up을 작성할 예정이다 SAT-before-osu 언제부터 이딴 게 리버싱이였는지 모르겠다. 주어진 dist.txt 안의 식을 풀면 된다. z3를 이용하거나 Sage를 이용하여 간단히 해결할 수 있다. wysi-baby Wysi 밈을 토대로 만든 웹사이트가 주어진다. 소스를 살펴보면 다음과 같은 Javascript 코드가 보인다. combos에 들어가는 ..

LACTF 2024 - Write-Up

오랜만에 글을 올린다. 그 이유는 해킹 공부 이외 공부를 수행하느라, 글을 쓸 여유가 없었던 것이다. 서론 전체 일반부에서 33등을 차지했다. 처음 나가는 외국 CTF이고, 문제 스타일을 알 수 있어서 유용했다. 나갈 생각이 없었지만 친구의 권유로 참가하게 되었다. 리버싱 문제만 풀었는데, 리버싱 문제는 대체로 쉬웠던 것 같다. 하지만 이 문제를 다 풀어도 돌아오는 혜택이 없다는 것을 인지한 터라 열심히 참가를 하지 않아서, 결국 올킬을 못하고 2개의 문제를 남겼다. aplet321 연립방정식을 풀어서 please의 개수, pretty의 개수를 맞춰 조건에 맞게 보내면 된다. 익스 코드 안 짰다. lactf{next_year_i'll_make_aplet456_hqp3c1a7bip5bmnc} the-sec..

Dreamhack CTF Season 5 Round #1 Write-Up

B, C, D 풀었다. (#10) 다들 엄청 잘한다. B - Switching Command 할 것은 두 가지다. 첫 번째로, php의 '===' 연산자와 switch case 연산자의 비교가 다른 점을 이용하여 case "admin": 안으로 들어가야 한다. php에서 '==='는 강한 비교, '=='는 약한 비교인데 switch case는 약한 비교이다. json에서는 true/false 타입을 지원하기 때문에 username에 true를 넣는다면 넘어갈 수 있다. {"username":true} 다음으로 Command Injection을 하는데, 검열이 이렇다할 것이 없어서 curl의 -o 옵션을 사용하여 로컬 내에 웹쉘을 다운받고 실행하면 된다. http://host3.dreamhack.games..