반응형

python 80

[SuNiNaTaS] Challenge8 - 웹해킹 / Python

SuNiNaTaS 에서 제공하는 여덟번째 문제 웹해킹 문제이다. 문제페이지에 접속하면 이런 로그인 창이 나온다. id/pw를 알아내야할 것 같은 느낌이다. 다른 문제들처럼 주석으로 힌트가 있을것 같아 F12를 눌러 개발자도구에서 소스를 확인해봤다. 아이디는 admin 이고, 비밀번호는 0 ~ 9999 중 하나라고 한다. 상당히 친절한 문제이다. 간단하게 Brute Force 공격을 해서 비밀번호를 알아낼 수 있다. 먼저 어떻게 데이터가 전달되는지 확인한다. POST 메소드를 이용해 id 변수에 아이디를, pw 변수에 1111을 넣어서 보낸다. 다음으로 쿠키값을 알아내야 한다. Python requests 를 이용해 문제를 해결할건데, 이 문제 페이지는 로그인을 해야만 접근할 수 있으므로, 내 쿠기값을 쥐..

워게임/SuNiNaTaS 2024.03.07

[SuNiNaTaS] Challenge1 - 웹해킹 / Python

SuNiNaTaS 에서 제공하는 문제 첫번째 문제이다. 웹해킹으로 분류되어있긴 한데 딱히 웹해킹으로만 볼 수 있는 문제는 아니다. 문제페이지에 들어가면 이런 화면이 나온다. 사용자의 입력을 받아서 그 값을 str에 넣고, str에 들어있는 값을 이리저리 바꿔서 result 에 저장하는데 최종적으로 저장된 값이 admin 일 경우에 플래그를 얻을 수 있는듯 하다. 결국 어떤 값을 넣어야 저런 연산을 했을 때 admin 이라는 값이 나오냐는 것이다. str_input = input("Enter a string: ") if str_input: result = str_input.replace("a", "aad").replace("i", "in") result1 = result[1:3] result2 = resu..

워게임/SuNiNaTaS 2024.01.28

[2022 화이트햇 콘테스트] 나-1 - 리버싱 / IDA / Pwntool

2022 화이트햇 콘테스트 예선에 출제되었던 문제 이번 문제는 이전 포렌식 문제들과 이어지진 않는다. 가-1, 가-2 문제도 있었으나, 캡쳐를 제대로 하지 못해 나-1 문제에 대해서만 Write up을 작성한다. 문제에서는 secretBox 라는 바이너리 파일이 주어진다. 문제 설명처럼 패스워드 프로그램이다. 해당 바이너리를 IDA로 열어, main 함수의 수도코드를 살펴보았다. 열자마자 눈에 띄는 부분이 있었는데 v3 배열에 대해 특정한 값이 들어있는지 검증하는 부분이었다. 조건문 다음에 main_printFlag 함수가 호출되는걸로 보아 뭔가 플래그와 관련이 있어 보였다. password = [0] * 13 password[0] = 39 password[9] = 80 password[12] = 79 ..

CTF/리버싱 2023.12.14

[247CTF] THE SECRET LOCK - 리버싱 / Python

247CTF 에서 제공하는 MODERATE 난이도의 리버싱 문제 문제에서 주어지는 것은 The Secret Lock.html 파일이다. 문제에서 주어진 HTML 파일을 실행시켜 보면 이런 화면이 나온다.. 번호 40개짜리 자물쇠인데 각 번호는 0부터 500까지 구성되어 있다. 자전거 자물쇠처럼 돌려서 맞춰야 하는건데 일단 확률부터 말도 안되고, 실제로 돌려볼려해도 너무 느려서 이번생 안에는 도저히 못한다. F12를 눌러 개발자도구를 열어 Javascript 코드를 보니 플래그를 검증하는 듯한 부분이 보였다. 해당 부분을 깔끔하게 보이게 정리해보니 이런 형태였다... 무려 120줄이다. 이 어마어마한 연립방정식을 풀어야 플래그를 찾을 수 있는데 마치 수능을 다시보는 기분이었다. from z3 import ..

워게임/247CTF 2023.11.21

[Root Me] AES - ECB - 암호학 / Mysql

Root Me 에서 제공하는 AES 알고리즘과 관련된 암호학 문제 웃긴게 AES를 몰라도 풀 수 있는 문제이다. 문제에서 주어지는 것은 mylogin.cnf 파일이다. HxD 같은걸로 열어보면 안에는 알 수 없는 데이터들이 저장되어 있는데 아마 이 데이터들이 AES - ECB 로 암호화 되어있기 때문일 것이다. 이걸 어떻게 해독하냐는 것인데 구글에 Decrypt mylogin.cnf 라고 검색해보면 아주 쉽게 방법을 찾을 수 있다. mylong.cnf 파일이 Mysql DBMS에서 자격증명을 저장할때 사용하는 설정파일인듯 하다. 그래서 이미 Decrypt 할 수 있는 코드가 공개되어 있었다. https://github.com/isotopp/mysql-config-coder GitHub - isotopp/..

워게임/Root Me 2023.11.17

[2022 화이트햇 콘테스트] E-2 - 포렌식 / Wireshark / IDA / Python

2022 화이트햇 콘테스트 예선에 출제되었던 문제 이전 E-1 문제와 이어지는 문제이다. (https://hackingstudypad.tistory.com/663) E-2 문제는 공격자가 피해 호스트의 스크린샷, 클립보드 등 자격증명을 지속적으로 유출하기 위해 설치한 악성코드를 분석해 플래그를 획득하는 것이 목표이다. 지난 문제에서 디코딩한 파워쉘 스크립트를 보면 http://192.168.35.85/index.do 쪽으로 접근하는 흔적을 찾을 수 있다. 해당 정보를 바탕으로 바탕화면\Log 폴더의 3.pcapng 파일을 Wireshark로 분석해보면 136845 번째 패킷에서 똑같은 목적지의 패킷을 찾을 수 있다. 해당 패킷을 우클릭 - Follow - HTTP Stream 을 눌러 자세히 보면 Res..

CTF/포렌식 2023.10.30

[247CTF] THE WEB SHELL - 포렌식 / Wireshark / Tshark

247CTF 에서 제공하는 MODERATE 난이도의 네트워크 포렌식 문제 문제에서는 web_shell.pcap 파일이 주어진다. 해당 파일을 Wireshark 로 열어보면 특정 웹 서버에 대해서 brute force 하는 듯한 흔적을 찾을 수 있다. uri 를 계속 바꿔가면서 GET 요청을 보내는데, 돌아오는 응답은 모두 404 인것이 보인다. 쭉 내려보다가 /uploader.php 경로에서 200 OK 가 떨어진걸 확인할 수 있었다. 200 OK를 확인한 후 POST 패킷을 이용해 어떤 데이터를 보내고 있다. 해당 패킷을 우클릭 - Follow - HTTP Stream 을 해보니 뭔가 난독화된 PHP 코드를 전송하고 있는데 자세히 보면 그렇게 어렵지 않다. 보기 쉽게 쓰면 위와 같은데 먼저 str_re..

워게임/247CTF 2023.10.28

[247CTF] HIDDEN PAINTING - MISC / Pygame

247CTF 에서 제공하는 EASY 난이도의 MISC 문제 MISC는 miscellaneous의 약자로 여러가지 잡다한 이라는 의미를 가지고 있다. 문제 설명을 보면 플래그가 그림으로 그렸는데, 점들을 이어서 찾을 수 있냐고 물어본다. 어릴때 많이 했던 점선잇기 같은 느낌이다. 문제에서 주어지는 것은 secret_map.txt 파일이다. 16진수가 두개씩 적혀있는데 map 이라는걸 보니 이어야 할 점들의 좌표인듯 하다. python을 이용해 그림을 그려본다. import pygame def main(): pygame.init() background = pygame.display.set_mode((2700, 200)) while True: ev = pygame.event.poll() if ev.type =..

워게임/247CTF 2023.10.24

[247CTF] TRY AND CATCH - MISC / Python

247CTF 에서 제공하는 EASY 난이도의 MISC 문제 MISC는 miscellaneous의 약자로 여러가지 잡다한 이라는 의미를 가지고 있다. 문제페이지로 접속하면 Python flask 코드가 나온다. 웹으로 간단한 계산기를 구현한듯 한데 /calculator 경로에서 number_1, number_2 파라미터에 각각 숫자를, operation 파라미터에 연산자를 넣으면 결과를 출력해주는것 같다. 이렇게 1+2를 넣으면 3으로 결과를 출력해준다. 제목이 Try and catch 인걸로 보아 뭔가 오류를 내야할 것 같은데 아주 쉽게 오류를 낼 수 있는 방법이 있다. 바로 0으로 나누는 것이다. 예외처리가 되어있지 않아 이렇게 바로 오류가 난다. debug 모드가 활성화되어 있는지 디버그 화면으로 넘..

워게임/247CTF 2023.10.20

[247CTF] FORGOTTEN FILE POINTER - 웹해킹 / PHP / LFI

247CTF 에서 제공하는 MODERATE 난이도의 WEB 문제 문제 페이지에 접속하면 이런 화면이 나온다. PHP 코드가 보여지는데 내용을 보면 /tmp/flag.txt 파일에 플래그가 있다는것을 알 수 있다. GET 메소드로 include 파라미터가 있어야하고, include 인자의 길이가 10 이하여야 include 함수로 서버 내부 파일을 읽어올 수 있는듯 하다. 10글자 길이제한이 없다면 단순히 URL 에 ?include=/tmp/flag.txt 를 추가하면 되겠지만 10글자 제한 때문에 안된다. https://bugs.php.net/bug.php?id=53465 PHP :: Bug #53465 :: Cannot open file descriptor streams bugs.php.net 조금 찾..

워게임/247CTF 2023.10.16
반응형