전체 글 105

CodeEngn.com Basic RCE L06

1) Unpack 후 Serial 값 구하는 문제 2) 06.exe을 실행시켜서 임의의 값인 abc를 입력했더니 에러 창 3) PEiD로 정보 확인 시 UPX로 패킹 되어있는 것 확인 4) upx.exe로 언패킹 진행 5) 올리디버거로 실행 - 00401360에서 시작하는 것 확인 - OEP : 00401360 6) 문자열 확인 - 성공했을 때 나오는 듯한 Good Job! 문자열 확인 - 해당 위치로 이동 7) 이동 후 재실행된 06.exe에 abc 입력 8) 00401069에 ASCII abc 생성 - PUSH를 통해 해당 stack에 abc 저장 9) 0040106E에 있는 AD46FS547도 해당 stack에 저장 10) 00401290 CALL을 통해 호출 11) ESP+4(사용자 입력 값) 와..

CodeEngn 2023.12.21

CodeEngn.com Basic RCE L05

1) 프로그램의 등록키 구하는 문제 2) 05.exe 실행 후 Register now! 클릭 시 Wront Serial... 문자열 출력 3) PEiD - UPX 패킹 확인 4) UPX 언패킹 진행 5) 올리디버거 - 문자열 확인 6) 성공을 나타내는 듯한 Congrats! ... 확인 - 해당 위치로 이동 7) 이동한 윗 부분 : 어떤 값을 EAX에 넣음 + Registered User 문자열 EAX에 넣음 8) CALL을 통해 00403BC2 호출 9) 00403B2C 호출 부분에 break - 실행 - aaaa와 1234 입력 10) 입력 시 EAX가 aaaa로 변경 11) 00403B2C 확인 시 00403B33에서 [CMP EAX, EDX] 해주는 것 확인 12) 직접 변경한 aaaa와 Regi..

CodeEngn 2023.12.21

CodeEngn.com Basic RCE L04

1) 디버거 프로그램을 탐지하는 함수의 이름을 알아내는 문제 2) 실행 시 정상 문자열이 반복해서 출력 3) 올리디버거를 통해 실행 시 디버깅 당함 문자열 출력 4) 디버거를 감지하는 함수가 있다고 예상 5) 함수들 확인 - IsDebuggerPresent 함수 더보기 IsDebuggerPresent() 함수 : 해당 프로세스가 디버깅을 당하고 있는지의 여부를 PEB구조체의 디버깅 상태값을 확인한다고 한다. 만약 디버깅을 당하면 리턴 값이 1이고 아닐 경우에는 리턴 값이 0이 된다. 6) 우회 없이 실행 - PEB에서 BeingDebugged byte값을 리턴받는 EAX가 00000001로 변경되는 것을 확인 7) IsDebuggerPresent() 함수 우회 방법 - IsDebuggerPresent A..

CodeEngn 2023.12.21

Calc.exe Online(webhacking)

[CTF 사이트 닫힘] calc.exe Online은 위 사진처럼 계산기 기능을 보여준다. 두 개의 함수가 존재했다. 첫 번째 함수인 safe_eval()은 입력을 받은 값을 is_safe()로 검사를 한 다음, 이것이 통과하면 eval()함수로 보내 실행한다. 1) strtolower() : 문자열의 대문자를 소문자로 바꿔주는 함수 2) str_replace() : 문자열을 변경해주는 함수 더보기 -구조 : str_replace(‘변경대상 문자’, ‘변경하려는 문자’, ’변수(replace가 바꾸고자 하는 문자열, 변수 수)’) 3) eval() : string 문자열을 자바스크립트 코드로 실행하는 함수 safe_eval()에서 검사를 진행하는 is_safe()함수이다. 이 함수는 입력이 good에 있..