반응형

python 80

[CTFlearn] 5x5 Crypto - 암호학 / Python

CTFlearn의 서른일곱번째 문제 이번에는 암호학 문제이다. 항상 암호학 문제가 나오면 두려운데 이번 문제는 그래도 쉬운편이라 다행이다. 문제 설명을 읽어보면 뭐 거의 풀이법을 다 알려주는거나 마찬가지다. 5x5 행렬을 하나 만들어서 순서대로 알파벳을 채워넣는데, k 는 c와 발음이 같기 때문에 제외하고 25글자를 순서대로 배치한다. 그리고 나서 원래 행렬 읽는것처럼 한글자씩 읽어서 데이터를 가져오는데 이것을 5x5 Crypto 라고 한다고 한다. 우선 k를 제외하고 5x5 형태로 알파벳을 배치하면 이런 형태가 될것이다. 1-3,4-4,2-1,{,4-4,2-3,4-5,3-2,1-2,4-3,_,4-5,3-5,} 문제에서 주어지는 암호문은 이건데, 첫번째 거를 한번 풀어보면, 1-3 이니까 이렇게 찾아가서..

워게임/CTFlearn 2022.11.17

[PoseidonCTF] The Large Cherries - 리버싱 / IDA / Pwntool

쉬운 난이도의 리버싱 문제 원격으로 접속할 수 있는 주소와 Lao-Tzu 라는 이름의 바이너리 파일이 제공된다. 참고로 Lao-Tzu 는 춘추시대 철학자인 노자를 말한다. Lao-Tzu 파일을 리눅스 환경에서 실행시켜 보았다. Enter the secret for the magic word : 라면서 사용자의 입력을 기다린다. 123 이라고 입력해봤는데 magic word 가 아닌지 바로 프로그램이 종료되었다. 바로 IDA를 이용해 바이너리를 열어서 main 함수를 살펴보았다. Enter the secret for the magic word : 라는 문구가 출력된 후에, scanf 로 사용자 입력을 받아 v9 변수에 저장한다. 그다음 magic_word 함수에 v9를 인수로 집어넣고, 그 결과를 v4에 ..

CTF/리버싱 2022.11.12

[CTFlearn] Gobustme? - 웹해킹 / dirb / Python

CTFlearn의 서른다섯번째 문제 이번엔 easy 난이도의 웹해킹 문제이다. 문제 설명을 일어보면 ghost 들이 웹사이트를 만들었는데 숨겨진 장소가 있는것 같다고 한다. 아래쪽에 웹 페이지 주소가 적혀있다. 문제페이지에 접속하면 이런 화면이 나온다. ghost 들이 웹사이트에 침임해서 flag 를 어딘가에 숨겨놓았다고 적혀있다. 스크롤을 내려보면 아래쪽에 가사같은게 써있는데 마지막 줄에 보면 common wordlist 가 도움이 될거라고 적혀있다. common wordlist 를 눌러보면 이런 화면이 나온다. 웹 페이지를 구성할때 자주 쓰는 파일, 폴더명이 주욱 적혀있다. 이걸 주소창에 하나씩 대입해보면 실마리를 찾을 수 있을 것이다. 이번 문제처럼 URL에 무차별적으로 대입해서 웹 구조를 파악하는..

워게임/CTFlearn 2022.11.09

[Root Me] NoSQL injection - Authentication - 웹해킹 / Python

NoSQL Injection 과 관련된 웹해킹 문제 NoSQL 이란 Not only SQL 의 약자로 SQL 만을 사용하지 않는 DBMS 를 말한다. 기존 관계형 데이터베이스 보다 덜 제한적인 특징을 가진다. 이번 문제의 목표는 NoSQL Injection 을 통해 숨겨진 USER 를 찾는 것이다. 문제 페이지에 접속하면 이런 로그인 창이 나온다. 시험삼아 ID 와 PW 에 hello / hello 라고 입력해봤다. Bad username or bad password 라는 문구가 출력된다. URL을 보니 입력한 ID 와 비밀번호를 GET 방식으로 서버에 전송하고 있다. ID 는 login 변수에, 비밀번호는 pass 변수에 담아서 넘긴다. https://github.com/swisskyrepo/Paylo..

워게임/Root Me 2022.11.05

[2020CCE] My Friend - 리버싱 / IDA / Python

2020년에 진행되었던 국정원 주최 사이버공격방어대회 묵혀놨던 Write Up을 이제야 포스팅 해 본다. 이번에 포스팅 할 문제는 My Friend 라는 제목의 리버싱 문제이다. 주어지는 파일은 mf 라는 이름의 바이너리 파일이다. 리버싱 카테고리에 있는 문제고, 알 수 없는 바이너리 파일을 받았으니 바로 IDA 라는 디스어셈블러를 이용해 열어보았다. IDA에서 인식하길 해당 파일은 Mach-O 파일이라고 한다. Mach-O 파일은 애플의 MacOS 에서 동작하는 프로그램이다. 개인적으로 CTF에서 Mach-O 파일이 나오는걸 이때 처음봤다. IDA로 분석해보면 함수가 친절하게 이거밖에 없다. 그중 _main 함수와 _get_flag 함수가 눈에 띈다. _main 함수의 내용이다. 별 내용이 없다. 사용..

CTF/리버싱 2022.11.01

[HackTheBox] baby CachedView - 웹해킹 / Flask

HackTheBox에서 제공하는 쉬운 난이도의 웹해킹 문제이다. 문제페이지에 처음 접속했을 때 화면이다. 토끼가 춤추고 있고, 아래에는 URL을 입력하는 창이 보인다. 시험삼아 네이버 주소를 입력해 봤더니 이렇게 아래쪽에 네이버 메인화면 스크린샷을 가져와서 표시해준다. 문제 제목 그대로 사용자가 입력한 URL에 방문해서 해당 페이지를 Caching 하는 기능의 웹페이지이다. 일단 주어진 문제파일을 통해서 flag 라는 사진파일이 서버 내에 있다는것을 알았다. @api.route('/cache', methods=['POST']) def cache(): print("Cache") if not request.is_json or 'url' not in request.json: return abort(400) r..

[2020CCE] Web Log - 포렌식 / Blind SQL Injection

2020년에 진행되었던 국정원 주최 사이버공격방어대회 묵혀놨던 Write Up을 이제야 포스팅 해 본다. 이번에 풀이할 문제는 Web Log 이다. 문제 제목처럼 정직하게 Web Access Log를 분석하는 문제이다. 문제파일로 access.log 파일이 주어진다. 파일 크기가 63.1MB로 꽤 크다.. 실제로 Subline Text를 이용해 파일을 열어보면 305,077개의 로그가 있는것을 볼 수 있다. 여기저기 스크롤 옮겨가며 둘러보다가 265,847번째 줄에서 특이한 로그를 발견했다. /image_view.php?idx=1 and if(ascii(substr((select flag from flag),1,1))=32, (select 1 union select 2), 0) URL로 이렇게 요청을 하..

CTF/포렌식 2022.10.28

[2020CCE] Simple Packet - 포렌식 / Wireshark / XOR

2020년에 진행된 국정원 주최 사이버공격방어대회 오랫동안 컴퓨터에 당시 문제들을 묵혀놨다가 이제야 풀이 포스팅을 해본다. 당시는 거의 이런 대회에 나가본게 처음이라, 시간에 쫒겨서 캡쳐를 제대로 못한 부분이 많다. Simple Packet 문제에서는 세 가지 파일이 주어진다. client.py / server.py / simple_packet.pcapng 파일이다. #!python3 from socket import * import sys def do_xor(data): key = b"\x10\x07\x19" return bytearray([data[i] ^ key[i%3] for i in range(len(data))]) if len(sys.argv) != 2: print('[-] usage : {}..

CTF/포렌식 2022.10.26

[2020CCE] Keyboord - 포렌식 / Wireshark / Python

2020년에 진행된 국정원 주최 사이버공격방어대회 오랫동안 컴퓨터에 당시 문제들을 묵혀놨다가 이제야 풀이 포스팅을 해본다. 당시는 거의 이런 대회에 나가본게 처음이라, 시간에 쫒겨서 캡쳐를 제대로 못한 부분이 많다. Keyboord 문제에서는 keyboord.pcap 라는 이름의 파일이 제공된다. pcap 파일은 Wireshark 라는 도구를 이용해 열어볼 수 있다. Wireshark로 열어보면 이련 화면이 나온다. Protocol 에 USB 라고 적혀있고, 문제 제목이 Keyboord 인것으로 유추해 볼 때 이 패킷은 USB 키보드를 사용한 통신 흔적인것을 알 수 있다. 와이어샤크로 USB 키보드 데이터를 분석할 때 눈여겨 봐야하는 부분은 Info 부분이 URB_INTERRUPT in 이라고 되어있는 ..

CTF/포렌식 2022.10.20

[HackTheBox] Phonebook - 웹해킹 / LDAP Injection / Python

HackTheBox 에서 제공하는 LDAP Injection 관련 문제 사실 이번 문제를 풀면서 LDAP Injection을 처음 경험해 봐서 난이도는 EASY 지만 꽤나 오랜 시간이 걸렸다. 문제를 푸는시간보다 LDAP Injection이 취약점이라는것을 알아차리는게 오래걸렸다. 문제 페이지에 접속하면 이렇게 로그인 페이지가 나온다. 일단 여기서 SQL Injection 인줄 알고 별의별 시도를 다 해보느라 시간이 오래걸렸다. 이것저것 넣어보다가 특이한것을 발견했다. 로그인에 실패하면 위처럼 빨간 박스에 Authentication failed 라는 문구가 뜨는데 username 과 password 에 각각 * / * 을 입력하면 뭔가 로그인이 된 듯한 화면으로 넘어간다는 것이다. 여기서 LDAP Inj..

반응형