목록CTF (59)
개발세발보안중
Basic RCE L09 StolenByte를 구하시오 Ex) 75156A0068352040 .... 리버싱 어려워요 .. StolenByte : 안티디버깅 기법으로, 일부 코드 조각을 훔쳐서 다른 부분으로 옮긴 것. OEP 주소의 코드를 따로 분리해서 OEP로 점프하기 직전에 push로 넘겨준다 -> OEP를 찾아서 덤프를 떠서 언패킹 했다고 생각하고 실행하려고 하면 실행이 되지 않음! OEP의 옵코드 몇바이트가 JMP 직전에 있었기 떄문에 OEP 코드 조각이 오지 못함. 따라서 StolenByte라고 하는 옵코드를 찾아서 실행코드 부분에 복원을 해주고 언패킹을 해주면 정상 실행 가능 없는 것 같습니다 ??!?? ... 삭제하고 다시 설치해도 열리지 않습니다 .. 아무리 해도 열리지 않는파일.. 직접 ..
Basic RCE L10 OEP를 구한 후 '등록성공' 으로 가는 분기점의 OPCODE를 구하시오. 정답인증은 OEP + OPCODE EX) 00400000EB03 OEP : Original Entry Point 패킹된 파일을 실행할 때 자동적으로 시스템 내부에서 언패킹을 한다. 언패킹이 끝나면 복구한 원본코드를 동작시켜야 하는데 이 원본코드의 Entry Point를 OEP라 한다. Opcode(operation code,명령코드) 기계어 명령어 OEP=Entrypoint=00056001 ASPack 임을 확인 PUSHAD라는 문자열을 확인할 수 있다 PUSHAD는 범용 레지스터에 저장된 값들을 스택에 저장하는 명령어이다. 현재의 레지스터값을 스택에 저장하고 원본 코드로 복구한 다음, POPAD를 이용하..
test.txt는 다운받아지는데, flag.docx는 접근 거부 ?down=dGVzdC50eHQ 저 부분이 수상한 부분인 것이다. 이 부분을 base 64로 복호화 test.txt 가 나왔다. 그럼 이제 반대로 flag.docx를 암호화해보자! ZmxhZy5kb2N4 이거를 웹 URL에 넣어볼 것 바로 다운 받아지는 docx파일! 플래그는 얻었는데!!! 어디에 제출해야하는지를 모르겠다....
문제 파일 #!/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', None) if username: return render_template('index.html', text=f'Hello {username},..