반응형

워게임 270

[247CTF] TRUSTED CLIENT - 웹해킹 / Javascript

247CTF 에서 제공하는 EASY 난이도의 웹히킹 문제 문제 설명을 보면 개발자들이 크리덴셜을 클라이언트 사이드에 저장할 때 난독화 해야하는것이라는 뉘앙스로 적혀있다. 문제 페이지에 접속하면 이런 로그인 창이 하나 나온다. 뭔가 여기 로그인을 성공시켜야할 듯한 느낌이다. F12를 눌러 개발자 도구로 웹 페이지 소스를 보니 뭔가 난독화 되어있는 부분이 보인다. 아까 클라이언트에 크리덴셜을 저장한다는 그런 얘기가 있었던걸로 보아 이게 바로 크리덴셜 정보인듯 하다 해당 부분을 복사해서 콘솔 탭에 붙혀넣어봤는데 내용이 꽤 길다 오른쪽에 보이는 스크롤 만큼 내용이 꽉차있다. 해독하는 방법은 아주 간단하다. 난독화 되어있는 부분의 맨 뒤에 있는 () 를 지워주면 된다. () 를 지우고 엔터를 치면 해독된 자바스크..

워게임/247CTF 2023.09.21

[247CTF] SECURED SESSION - 웹해킹 / Flask

247CTF에서 제공하는 쉬운 난이도의 웹해킹 문제이다. 생각보다 쉽지는 않은것 같다. 문제페이지에 들어가면 이렇게 단순하게 서버의 소스코드만 나와있다. Python flask 기반으로 만들어 졌으며 os.urandom(24)로 SECRET_KEY 라는걸 만들어 쿠키로 사용하고 있다. 이 SECRET_KEY 값이 무엇인지 맞춰서 /flag 페이지로 이동할때 request 인자로 넣어줘야 session['flag'] 를 만날 수 있게 되는데, 현실적으로 os.urandom(24)을 때려맞추는건 불가능하다. 실제로 /flag 에 접근을 시도하면 Incorrect secret key! 라는 문구가 출력된다. 쿠기와 관련된 문제이니 F12를 눌러 개발자 도구의 네트워크 탭을 통해 session 쿠키값을 확인해 ..

워게임/247CTF 2023.09.19

[HackTheBox] Cryptohorrific - 리버싱 / Plist pro / IDA

HackTheBox에서 제공하는 아이폰 앱 관련 리버싱 문제이다. 문제에서 주어진 압축파일의 압축을 풀어보면 challenge.plist 라는 파일이 들어있다. 이 파일은 plist pro 라는 도구로 열어볼 수 있는데 열어보면 xml 형태로 이렇게 암호화된 flag 가 들어있는것을 볼 수 있다. 여기까지 확인하고 다음으로 hackthebox 라는 파일도 같이 압축파일에 들어있는데 이게 앱 파일인것 같았다. 해당 파일을 IDA를 이용해 열어보니 SecretManager:key:iv:data 라는게 보인다. 뭔가 암호화랑 관련있는것 같다. 눌러서 들어가보면 CCCrypt 라는 함수가 보인다. CCCrypt 로 들어가보면 이렇게 나온다. 두번째 인자가 alg 라는것을 알 수 있는데 document 를 찾아보..

[Root Me] WAV - Spectral analysis - 포렌식

Root Me에서 제공하는 Wav 파일과 관련된 스테가노그래피 문제 별다른 설명없이 그냥 wav 파일이 하나 주어진다. wav 파일 들어보면 알아들을 수 없는 우우웅 하는 소리가 짧게 나고 끝이난다. 원래 CTF에서 이런 wav 파일이 주어지면 Audacity 라는 도구를 많이 사용한다. 해당 도구를 사용해서 이미 문제도 많이 풀어봤다. (https://hackingstudypad.tistory.com/6) (https://hackingstudypad.tistory.com/178) (https://hackingstudypad.tistory.com/339) 이번에는 다른 도구로 풀어보려고 한다. Audacity 가 설치하기 귀찮다면 그냥 온라인에서도 쉽게 해결할 수 있다. https://musiclab.c..

워게임/Root Me 2023.09.15

[Root Me] Polyalphabetic substitution - Vigenère - 암호학

간단한 암호학 문제 제목에 나온것처럼 비제네르 암호와 관련된 문제이다. 제공된 링크로 덜어가면 이런 글이 보인다. 온통 알 수 없는 문자들로 구성되어 있는데 암호화되어 있기 때문에 알아볼 수가 없다. https://www.boxentriq.com/code-breaking/vigenere-cipher Vigenère Cipher (automatic solver) | Boxentriq This is a complete guide to the Vigenère cipher and the tools you need to decode it. Read about its unbreakable history and fun facts, and learn about cryptanalysis methods, or use th..

워게임/Root Me 2023.09.13

[Root Me] SQL injection - Numeric - 웹해킹

Root Me에서 제공하는 웹해킹 문제 제목에서 SQL 인젝션 문제임을 알 수 있다. 문제페이지에 접속하면 이런 간단한 페이지가 하나 나온다. 왼쪽에 있는 링크를 눌러보면 News 가 뜨는데 이때 URI를 보면 news_id 파라미터가 1, 2, 3 과 같이 변경되는것을 확인할 수 있다. 여기에 작은 따옴표(%27) 을 넣어봤는데 SQLite3 에러가 뜨는것을 확인했다. 이렇게 작은따옴표를 입력했을 때 systax errer (구문 오류) 가 난다면 SQL Injection 취약점이 존재하는 것이다. 이번엔 작은 따옴표를 지우고 1 or 1=1-- - 라고 입력을 했는데 모든 뉴스가 한번에 출력된 것을 확인했다. SQL구문에서 Where 절이 항상 참이되었기 때문에 테이블 전체가 조회된 것이다. 이번엔 ..

워게임/Root Me 2023.09.11

[CTFlearn] Domain name resolver - 포너블 / Command Injection / IDA

CTFlearn 에서 제공하는 Easy 난이도의 포너블 문제 문제에서는 원격으로 접속할 수 있는 주소와 문제 바이너리 파일이 주어진다. 설명을 보면 도메인과 IP와 관련된 문제인듯 하다. 문제에서는 task 라는 바이너리가 주어진다. 해당 바이너리를 IDA 라는 도구를 이용해 열어봤다. F5를 눌러 메인함수의 수도코드를 보면 첫째로 사용자로부터 입력을 받는다. 입력받는 값은 도메인 네임이다. 다음으로 입력받은 값을 dig +short 형태로 명령어를 수행하고, 그 결과를 출력한다. 참고로 dig 명령어는 이렇게 도메인 이름을 입력하면 그 도메인의 아이피를 리턴해주는 명령어이다. 저 명령어를 그대로 task 바이너리를 이용해 수행하는 것이다. 실제로 원격으로 접속해 실행해보면 똑같은 결과가 리턴되는것을 확..

워게임/CTFlearn 2023.09.09

[CTFlearn] Leak me - 포너블 / 포맷스트링

CTFlearn에서 제공하는 Easy 난이도의 포너블 문제 문제설명에 format tag 라고 적혀있는걸 보니 포맷 스트링과 관련된 문제이다. 얼마전에 Root Me에 나온 문제와 그냥 동일한 문제이다. (https://hackingstudypad.tistory.com/613) 문제는 서버 주소와 소스코드가 주어진다. 위는 소스코드 내용인데 ./flag.txt 파일의 내용을 읽은 뒤 *f 에 저장한다. 그런다음 fgets 로 buffer 에 해당 값을 담아준 뒤 printf 로 사용자로부터 입력받은 값을 출력해준다. printf 부분에서 문제가 발생할 수 있다. 사용자에게 입력을 받아 결과를 출력할 때 포맷 스트링이라는 것을 사용하는데 기호로 다음과 같이 표시된다. %d : 정수형 10진수 상수 %f :..

워게임/CTFlearn 2023.09.07

[CTFlearn] Accumulator - 포너블 / C / 정수 오버플로우

간단하게 해결할 수 있는 포너블 문제 풀이수가 작은건 뒤쪽에 있어서 사람들이 많이 시도하지 않아 그런것 같다. 문제에선 원격으로 접속할 수 있는 주소와 task.c 라는 소스코드가 주어진다. 소스코드의 내용을 보면 int형인 acc 변수를 선언하고 while 내에서 사용자의 입력을 받아 입력한 값을 계속 더해 acc에 저장하는 코드이다. acc 가 양수인 경우 계속 while 문이 진행되고, 그게 아닐 경우 You win! 과 함께 플래그가 출력된다. 뭔가를 계속 더하는데 더한 결과 값이 음수가 되게 만들어야 한다는 뜻이다. 밑에 있는 조건문 때문에 입력값에 음수를 줄 수는 없는 상황이다. 한번 실행시켜 봤다. 1, 2, 3을 차례로 입력해봤든네 acc에는 1, 3, 6 이 저장되는 것을 볼 수 있다. ..

워게임/CTFlearn 2023.09.05

[CTFlearn] Finish The Flag - 리버싱 / IDA / XOR

CTFlearn에서 제공하는 Easy 난이도의 리버싱 문제 문제 설명을 보면 이상한 문서를 받았는데 매트릭스 바코드가 안에 들었있었다고 무슨 내용인지 알아봐 달라고 한다. 이렇게 세 개의 파일이 주어지는데 문제 풀때는 qr.png 파일만 사용하면 된다. qr.png 파일은 이렇게 생겼다. 조금 사이즈가 큰 QR코드이다. 해당 파일을 온라인 QR코듯 스캐너(https://www.online-qr-scanner.com/) 에 넣으면 뭔가 BASE64로 인코딩된듯한 데이터가 나온다. CyberChef(https://gchq.github.io/CyberChef)에서 해당 데이터를 base64 디코딩 해주면 맨 앞이 ELF 로 시작하는 데이터가 나온다. 이건 리눅스에서 실행 가능한 ELF 파일이라는 뜻이다. 해당..

워게임/CTFlearn 2023.09.03
반응형