[카테고리:] CTF

  • (web) Curlove

    (web) Curlove

    안녕 오늘은 드림핵 ‘curl’ + ‘ove’ 문제를 풀어보자. 난이도가 5로 상당히 높게 책정되었는데, 난이도에 걸맞게 크게 두가지 파트로 나누어진 문제였다. 이 문제에서 주는 인사이트는 정규식 우회와 curl의 메타기호와 url의 구조이다. 먼저 문제에서 다운로드 받은 app.py의 코드를 살펴보면, 플래그의 위치는 현재 디렉터리인 것을 알 수 있다. 위의 코드를 보면, admin 권한이 있어야, 들어갈 수 있는 관리자…

  • (취약한 웹 로직) chocoshop

    (취약한 웹 로직) chocoshop

    오늘 풀어볼 문제는 드램핵의 chocoshop이라는 문제입니다. 먼저 문제 사이트를 보면, 쿠폰을 발행해서 1000원을 모을 수 있는데, flag의 가격은 2000원입니다. 쿠폰을 한번 더 발행 받으려고 하니까 다음과 같은 알림이 옵니다. 드림핵 문제 설명에선, 쿠폰을 검사하는 로직이 취약하다니 그 부분을 한번 보겠습니다. 일단 쿠폰을 발급 받아 보니, jwt 형태로 이걸 jwt.io에 올려서 확인해보았습니다. uuid, user, amount, expiration이…

  • (python) eval() Vulnerability

    (python) eval() Vulnerability

    오늘 글을 좀 많이 쓰는데 마지막 글로 eval() 취약점에 대한 글을 쓰려고 한다. 파이썬에선 Eval함수가 존재하는데, 이 함수는 안에 문자열(string)을 그대로 파이썬 내에서 실행 시켜주는 아주 편리하면서 위험한 함수이다. 아래와 같이 string을 자동으로 연산해주거나 코드로 변환해서 결과 값을 리턴 해준다. 오늘 이 취약점을 실습해 볼 예제는 어김없이 드림핵 문제 Addition calculator이다. 코드는 필터링 하는 부분하고…

  • (Javascript) Prototype Pollution

    (Javascript) Prototype Pollution

    오늘 드림핵 문제를 풀다가 발견한 취약점은 Prototype Pollution이라는 다소 생소한 취약점이었다. 1. 배경 지식 자바스크립트는 객체지향 언어를 표방하지만 class라는 개념이 없고 상속 기능이 없다. 그래서 자바스크립트는 prototype이라는 기능으로 상속 기능을 구현했다. Prototype 객체를 이용해서, 자바스크립트에서 객체의 부모는 __proto__로 접근할 수 있다. 자식 객체에서 어떤 벼수를 찾을 수 없으면 부모 객체에서 해당 변수를 찾는데, 자바스크립트는 Prototype…

  • SSRF 공격 포인트 정리 (localhost)

    SSRF 공격 포인트 정리 (localhost)

    SSRF에 대한 글로 계속 업데이트 될 페이지인 듯하다. 이번에 시도한 페이지는 드림핵 웹 Crawling이라는 문제이다. 제목과 마찬가지로 Crawling 하는 페이지가 있으며, 코드를 보면 이 페이지의 /admin에 접근하면 flag를 얻을 수 있는 구조이다. 블랙리스트로 차단하는 사이트에서 localhost:3333/admin(127.0.0.1:3333/admin)에 접근하는 방법 3가지를 알아보자. 1. ShortURL 사용 구글링만해봐도 shortURL을 제공하는 사이트가 다수이다. 이중 하나를 정해서 다른 url로 변환해주는 서비스를…

  • Web BABY DUCKY NOTES: REVENGE

    Web BABY DUCKY NOTES: REVENGE

    2023 TFC CTF WriteUp 안녕하세요? 이번 23년도 TFC CTF를 하면서 나왔던 문제에 대한 Write Up을 작성해보려고 해 이 문제 전 준비운동 문제인 ‘BABY DUCKY NOTES’ 같은 경우에는 admin의 글을 보려면 그냥 /posts/view/admin을 get 방식으로 들어가서 flag를 찾으면 되는 문제였습니다! 이번 문제는 2탄으로 역시 같은 방법으로는 admin의 글을 볼 수 없었다. (hidden으로 쓰인 상태) 간단하게 글에…