![[HackCTF] Basic_BOF #2](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2Fy9xh4%2Fbtrqmo2JUSu%2FAAAAAAAAAAAAAAAAAAAAAKIDtNK4ZW3ZZuM-VErKGPtkoXh7XBNW5twvnVNAablN%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1759244399%26allow_ip%3D%26allow_referer%3D%26signature%3DHV7j65eMARF3mj3TH03vbt1cLIw%253D)
접속정보 nc ctf.j0n9hyun.xyz 3001 ???????? 이게뭐람 우선 이전과 동일하게 ida로 까보도록 하자 main 함수의 모습 int __cdecl main(int argc, const char **argv, const char **envp) { char s[128]; // [esp+Ch] [ebp-8Ch] BYREF void (*v5)(void); // [esp+8Ch] [ebp-Ch] v5 = (void (*)(void))sup; fgets(s, 133, stdin); v5(); return 0; } (c언어 배운지 얼마나됐다고 v5 해석을 어떻게 해야될지 몰라서 검색의 힘을 빌렸다.......) char s[128]; // [esp+Ch] [ebp-8Ch] BYREF void (*..
![[HackCTF] Basic_BOF #1](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2F6x2Rn%2FbtrqiqGyDiW%2FAAAAAAAAAAAAAAAAAAAAAN_fFXY3gStnLe6iySD7_UeWQ7OQ3wqGx8lhfsRLKPnw%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1759244399%26allow_ip%3D%26allow_referer%3D%26signature%3Denp6Ng%252FqXqD0RKRc97GQ%252Fm17JlA%253D)
접속정보 nc ctf.j0n9hyun.xyz 3000 우분투로 접속한 결과 ⇒ 버퍼에 값을 입력하고 해당 값이 0x4030201과 같은지 체크하는 구조인듯 추측 가능 이 프로그램을 IDA로 까보고자 함.. ida에서 f5를 누르면 이렇게 보여준다.. 친절........ int __cdecl main(int argc, const char **argv, const char **envp) { char s[40]; // [esp+4h] [ebp-34h] BYREF int v5; // [esp+2Ch] [ebp-Ch] v5 = 0x4030201; fgets(s, 45, stdin); printf("\\n[buf]: %s\\n", s); printf("[check] %p\\n", (const void *)v5); ..
![[Dreamhack] wargame cookie 문제풀이](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FMD7R7%2FbtrkhoNXa4c%2FAAAAAAAAAAAAAAAAAAAAAB35SGxZLK0adq1A_rEcOaG2C3sYVJ_UzJXdW6eGSa1y%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1759244399%26allow_ip%3D%26allow_referer%3D%26signature%3DvWiIk0zQJZSnptQ5bs6vmdG3HLQ%253D)
이번 문제는 쿠키를 통해 인증상태를 관리하는 로그인 서비스에서, 쿠키를 이용해 관리자 계정으로 로그인에 성공하는 방법을 알아보고자 한다. #!/usr/bin/python3 from flask import Flask, request, render_template, make_response, redirect, url_for app = Flask(__name__) try: FLAG = open('./flag.txt', 'r').read() except: FLAG = '[**FLAG**]' users = { 'guest': 'guest', 'admin': FLAG //관리자 } @app.route('/') def index(): username = request.cookies.get('username', Non..
![[Dreamhack]file-download 1 문제풀이](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FHnZEz%2FbtrcgONL6Vv%2FAAAAAAAAAAAAAAAAAAAAALrepGCLMt4U7DxQIo7hDlrbXYAFw1zE5bQ1wUiIfpml%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1759244399%26allow_ip%3D%26allow_referer%3D%26signature%3DiY1RW9XZqo6pQ4zqM3k7Wy465xc%253D)
오늘 풀 문제는 Dreamhack.io에 있는 wargame의 file-download1 문제이다. Web hacking의 강의와 system hacking 강의의 logical bug를 참고하면 좋다고 한다. 풀면서 느낀거지만.. 아무래도 webhacking을 많이 까먹은듯하여.. 공부하면서 포스팅을 좀 해야겠다는 생각이 들었다.. 암튼 사담은 이쯤하고 문제풀이를 들어가고자 한다 https://dreamhack.io/lecture/curriculums/1 Web Hacking - dreamhack.io https://dreamhack.io/lecture/courses/1 Logical Bugs 로지컬 버그를 이해하고 공격할 수 있다. dreamhack.io 이번 문제도 다른 문제와 마찬가지로 Host,..