본문 바로가기

wargame55

Exploit Tech: Return to Library Return To Library NX로 인해 공격자가 버퍼에 주입한 셸 코드를 실행하기 어려워졌지만, 스택 버퍼 오버플로우 취약점으로 반환 주소를 덮는 것은 가능하다. 이를 이용해 실행 권한이 남아있는 코드 영역으로 반환 주소를 덮는 공격 기법이 있다. 프로세스에 실행 권한이 있는 메모리 영역은 바이너리의 코드 영역과 바이너리가 참조하는 라이브러리 코드 영역이다. 이 중 라이브러리에는 공격에 유용한 함수 system, execve 등 프로세스의 실행과 관련된 함수들이 구현되어 있다. 1 // Name: rtl.c 2 // Compile: gcc -o rtl rtl.c -fno-PIE -no-pie 3 4 #include 5 #include 6 7 const char* binsh = "/bin/sh"; 8.. 2021. 12. 24.
Basic RCE L05 CodeEngn의 Basic RCE L05 문제이다. 힌트에서 프로그램의 등록키는 무엇인가라고 알려주고 있다. 프로그램을 실행시켜보기 전에 패킹이 되어 있는지 확인해보자. UPX 패킹이 되어있다. 이를 언패킹한 후 프로그램을 실행해보자. 프로그램을 실행시키면 입력을 받는 칸이 두 개가 나오고 Register now버튼과 Quit the CrackMe 버튼이 존재한다. 힌트와 같이 ID를 입력하고 Serial key가 맞아야 레지스터 등록이 가능한거 같다. Register now!를 클릭하면 시리얼이 틀렸다고 메시지 박스가 출력된다. 디버깅을 해보자. IDA로 이때까지 확인한 문자열들을 검색해보면 Beggar off!, Wrong Serial,try again! 문자열과 크랙에 성공하면 출력해주는 문자열들.. 2021. 12. 15.
Toddler's - coin1 nc를통해 서버에 접속해보자. 서버에 접속하면 게임의대한 설명이 나온다. 서버로부터 코인의 수와 기회를 받고 위와 같이 1 ~ 10까지 입력했을때 코인의 무게를 서버로부터 응답받는데 100번을 찾아야한다. 진짜 코인의 무게는 10, 가짜 코인의 무게는 9이다. 즉, 이진탐색 알고리즘으로 프로그래밍을 하여 가짜 코인을 찾아내면 되는 문제이다. exploit.py from pwn import * import re r = remote('pwnable.kr', 9007) print r.recvuntil('- Ready? starting in 3 sec... -') sleep(3) r.recv(1024) for i in range(100): sleep(0.1) msg = r.recv(1024) print(msg).. 2021. 12. 9.
Exercise: XSS 드림핵 워게임 XSS-1를 통해 XSS를 연습하도록 할 것이다. 파이썬 Flask 프레임워크로 구현되어 있다. 이번 문제는 다른 사용자의 쿠키를 탈취해야 하기 때문에, 다른 사용자가 방문하는 시나리오가 필요하다. 문제 목표 및 기능 이번 문제의 목표는 XSS를 통해 임의 사용자의 쿠키를 탈취하는 것이다. 문제에서의 네 가지 페이지 페이지 설명 / 인덱스 페이지 /vuln 이용자가 입력한 값을 출력한다. /memo 이용자가 메모를 남길 수 있으며, 작성한 메모를 출력한다. /flag 전달된 URL에 임의 이용자가 접속하게끔 한다. 해당 이용자의 쿠키에는 FLAG가 존재한다. 웹 서비스 분석 엔드포인트: /vuln @app.route("/vuln") def vuln(): param = request.args.. 2021. 12. 7.