본문 바로가기

전체 글

(17)
RedRaccoon 2024 CTF Writeup 주어진 wsock.dll 파일에서 flag를 찾는 문제이다. IDA로 Install() 함수를 확인해보면 flag를 획득할 수 있다.
1. Hello Ethernaut 워게임을 진행할 때 개발자 도구의 콘솔을 사용한다. Get new Instance 버튼을 눌러 풀이를 시작할 수 있다. 문제 설명대로 contract.info() method를 실행시키면info1() method 를 사용할 수 있다고 한다.문제를 계속 따라가보자.infoNum() method의 결과가 42인 것을 보니 다음에 호출해야 할 method는 info42() 임을 알 수 있다. authenticate() 메소드에 특정 password 를 입력해야 하지만 알 수 없다. contract 코드에 어떤 값이 들어있는지 password() 로 확인해볼 수 있다. password는 ethernaut0 라는 것을 알 수 있다.submit을 진행하면 문제를 해결할 수 있다.  // SPDX-License-Id..
[SekaiCTF 2022] Bottle Poem SekaiCTF의 첫번째 Web문제이자 1단계 문제였지만.. 엄청나게 삽질했다 문제의 메인 페이지이다. 하이퍼링크를 클릭해보면 이렇게 시가 보인다. URL의 id라는 인자로 /etc/passwd를 얻는데 성공했지만 FLAG는 없었다. 문제 설명을 다시 보면 flag는 서버에 실행 파일로 존재한다고 적혀있다. 즉 이런 방식으로는 플래그를 획득할 수 없다. RCE를 해야 할 것 같다. /proc/self/cmdline 경로에 들어가서 프로세스가 실행된 방식을 파악해 app.py의 경로를 찾았다. python3 -u /app/app.py #app.py from bottle import route, run, template, request, response, error from config.secret impo..
[corCTF 2022] whack-a-frog 나름 재미있었던 forensic 문제였다. 덕분에 Python 파일 관련 문법을 좀 익힐 수 있었던 것 같다. 문제 페이지를 들어가보면 무수한 우물한 개구리들이 나를 반겨준다. 클릭한 상태로 드래그하면 그 경로에 있는 개구리들이 우물 속으로 숨는다. 이것만 봐서는 무슨 문제인지 모르겠으니 첨부파일을 확인해 보았다. pcap 확장자라 wireshark로 파일을 열어 HTTP필터를 걸었더니 x, y, event인자가 넘어간다. x, y는 마우스의 좌표, event는 마우스 클릭 여부를 알려주는 것 같다. 주어진 길을 따라가면서 표시를 해주면 FLAG를 얻을 수 있을 것 같다. 이를 위해 필터링된 패킷들을 plain text로 추출해서 x, y, event를 파싱하여 사용하면 될 것 같다. 파이썬 처음 배울 ..
[TFC CTF 2022] TUBEINC 대회 중에는 풀지 못했던 문제인데 Writeup을 보니 재밌어서 정리해보고자 한다. 문제 사이트의 첫 페이지 모습이다. 크게 얻을 것은 없지만 페이지 하단에 보면 For the complete functionality of the page add the following entries to your DNS configuration and use tube.com:PORT to connect to the platform. 34.65.33.171 tube.com 34.65.33.171 legacy.tube.com DO NOT USE THIS IN PRODUCTION! IP주소와 도메인 주소 간의 매핑 설정이 보인다. 이를 설정해주기 위해 local 애서 파일(C:\Windows\System32\drivers\..
[ImaginaryCTF 2022] maas CTF 풀 때 돌다리도 두드려 보고 건너라 라는 교훈을 준 문제였다. 문제의 로그인 페이지와 회원가입 페이지이다. 회원가입은 Username만 입력해줘도 되는 것 같다. test 라는 이름으로 회원가입을 시도했더니 이미 존재하는 이름이라고 한다. test1 라는 이름으로 회원가입 했더니 Password를 뿌려준다. Password를 만들어 주는 로직이 있는 것 같다. 주어진 비밀번호로 로그인을 해 봤더니 admin만이 flag를 얻을 수 있다고 한다. admin 계정으로 로그인 해야 할 것 같다. 코드를 보며 admin 검증 로직을 살펴보자. from flask import Flask, render_template, request, make_response, redirect from hashlib imp..
[ImaginaryCTF 2022] rooCookie web이라기보단 코딩 문제였다. 문제 페이지에 들어가보면 귀여운 판다(?) 가 쿠키를 먹고 있다. function createToken(text) { let encrypted = ""; for (let i = 0; i > 0).toString(2) } document.cookie = encrypted } document.cookie = "token=..." 문제 소스코드를 보면 token을 만드는 함수와 token값을 알려준다. 이를 복호화하면 될 것 같다. function dec(){ tok = "10110000011,10110000001,10101110011,10110000000..
[ImaginaryCTF 2022] button 간단한 문제였지만 특정한 문자열을 포함하지 않는 줄을 찾아주는 정규식을 알게됐다. 문제 사이트에 들어가보면 아무것도 없는 것 처럼 보이는 페이지이지만 button들이 엄청나게 많이 만들어져 있다. 여기에서 FLAG를 띄어주는 button을 찾아야 하는 것 같다. 개발자 도구로 보면 가짜 버튼들은 클릭하면 notSusFunction()을 실행하여 가짜 FLAG를 경고창으로 띄워 준다. 스크롤 내려보며 하나하나 확인해 보는게 가장 편한 방법이겠지만 매우 귀찮기 때문에 다른 방법을 찾아보기로 했다. 개발자 도구 ctrl + shift + f 를 누르면 정규식을 사용할 수 있는 창이 나온다. 특정 문자열이 없는 부분을 찾아야 하기 때문에 http://1004lucifer.blogspot.com/2019/06/r..
HTTP Header CTF나 워게임을 풀다보면 HTTP Header에 많은 정보들이 들어있고 그 값을 조작하는 풀이도 많다. HTTP Header에 대해서 제대로 공부해 보면 좋을 것 같다. Header을 공부하기 전에 먼저 HTTP Message를 공부해보자 1. HTTP Message HTTP Message는 클라이언트와 서버 사이 데이터가 교환되는 방식이다. 클라이언트에서 서버로의 reqeust 와 서버에서 클라이언트로의 response 두 가지 종류가 있다. Message는 start line, Message Header field, Header field의 끝을 알려주는 빈줄, body로 이루어져 있다. 서버는 Request Message의 start line이 들어오기 전까지의 모든 CRLF를 무시한다. ※CR(..
IP 주소 ( Internet Protocol address ) 최근 Port Fowarding을 하기 위해 공부해본 IP 주소와 관련 내용들을 정리해보고자 한다. IPv4 & IPv6 공유기 ( Router ) NAT ( Network Address Translation ) Port Port Fowarding Dynamic & Static IP address 1. IPv4 & IPv6 우리가 휴대전화로 서로 문자나 전화를 하기 위해서는 각 전화기를 구분해 줄 수 있는 전화번호가 필요하다. 마찬가지로 인터넷에서 컴퓨터끼리 통신하기 위해서는 컴퓨터마다의 고유한 주소 즉 IP address가 필요하다. IPv4와 IPv6는 IP주소를 표현하는 방법이다. IPv4 IP version 4 의 줄임말이고. 오늘날에 가장 일반적으로 사용되는 IP주소이다. 0 ~ 255까지의 십..