Wargame 64

CodeEngn Basic RCE L15

문제 Name이 CodeEngn일때 Serial을 구하시오 항상 그랬듯 성공 구문을 찾아보자. 성공 구문이 위와 같이 있고 바로 위인 00458831에 CMP 구문이, 그 아래에 JNZ가 있다. CMP에서 입력값과 시리얼 값을 비교하는 것으로 추측해볼 수 있다! CMP 부분에 BP를 걸어두고 실행해보자. 위와 같이 입력한 후 ollydbg를 보니, EAX에 입력한 값의 hex 값이 들어가고 비교 대상이 되는 값은 00006160임을 알 수 있다. 그럼 Name이 CodeEngn일 때의 시리얼 값은 00006160의 10진수 값인 24928이다. CodeEngn과 24928을 입력해주었더니 성공 구문이 출력된다! 정답은 24928이 된다!

Wargame/CodeEngn 2021.05.17

CodeEngn Basic RCE L14

문제 Name이 CodeEngn 일때 Serial을 구하시오 (이 문제는 정답이 여러개 나올 수 있는 문제이며 5개의 숫자로 되어있는 정답을 찾아야함, bruteforce 필요) Ex) 11111 UPX로 패킹되어 있다. 언패킹 해주자. ollydbg에서 문자열 검색을 해보자. 위와 같은 문자열이 있다. 성공 구문으로 가보자. 성공 구문 위에 CMP가 있는 것을 볼 수 있다. EAX에 어떤 값이 들어가고 ESI에 어떤 값이 들어가는지 BP를 걸어 확인해보자. 위와 같이 입력하였다. EAX에는 입력한 값의 Hex값이 들어가고 ESI에는 정답이 되는 시리얼 값이 들어간다. ESI의 값인 000129A1의 10진수 값은 76193이고, 이를 Auth에 입력했더니 문제가 풀렸다!

Wargame/CodeEngn 2021.05.17

CodeEngn Basic RCE L13

문제 정답은 무엇인가. 13.exe 파일은 PEView로도 열리고 HxD로도 열리는데 ollydbg에서는 위와 같은 메시지가 출력 되면서 열리지 않는다. x64dbg로는 열린다. 왜...? 64비트도 아닌 것 같은데....? .... x64dbg는 문자열 검색을 하면 너무 많이 나와서, password를 입력했을 때 나오는 문자열을 이용하여 찾아보려고 했다. 근데 값이 없었다 ^^! PEView에서는 해당 메시지를 찾아볼 수 있었다. 더불어 성공 구문으로 추측되는 Done! You cracked it! 또한 볼 수 있다. 아무리 찾아도... 해당 구문을 x64dbg에서는 찾을 수 없었다. 그래서 HxD로 hex값을 좀 더 편하게 보았다. 보면 선택된 곳이 암호화된 문장처럼 보인다. (==로 끝나서!) 그..

Wargame/CodeEngn 2021.05.17

CodeEngn Basic RCE L12

문제 Key를 구한 후 입력하게 되면 성공메시지를 볼 수 있다. 이때 성공메시지 대신 Key 값이 MessageBox에 출력 되도록 하려면 파일을 HexEdit로 오픈 한 다음 0x???? ~ 0x???? 영역에 Key 값을 overwrite 하면 된다. 문제 : Key값과 + 주소영역을 찾으시오. Ex) 7777777???????? ollydbg로 열어보자. 일단 성공 메시지를 볼 수 있다는 건 성공 메시지가 있다는 거니까 문자열을 검색해보자. 문자열을 검색하니 0040108B에 성공 메시지가 있음을 알 수 있다. 성공 메시지가 있는 곳으로 가보면 0040107D에 CMP EAX, 7A2896BF가 있다. EAX와 7A2896BF를 비교해서 맞으면 성공 메시지를 출력한다. 0040107에 BP를 걸어두..

Wargame/CodeEngn 2021.05.16

CodeEngn Basic RCE L11

문제 OEP를 찾으시오. Ex) 00401000 / Stolenbyte 를 찾으시오. Ex) FF35CA204000E84D000000 정답인증은 OEP+ Stolenbyte Ex ) 00401000FF35CA204000E84D000000 UPX로 암호화 되어 있다. 9번 문제처럼 StolenByte가 POPAD 밑에 있을 수 있으니까 언패킹 하지 말고 열어보자. 9번 문제 : https://esyeonge.tistory.com/43?category=979957 9번 문제와 동일하게 POPAD 밑에 12바이트의 StolenByte가 보인다. 그리고 00407387에서 JMP를 하는 것으로 보아 0040100C가 OEP로 추측된다. OEP+StolenByte의 값인 을 입력해보았다. 그랬더니 문제가 풀리지 ..

Wargame/CodeEngn 2021.05.16

Webhacking.kr old 42번 문제 풀이

download를 눌러서 파일을 다운받아 보자. test.txt는 다운로드가 되는데, flag.docx는 access denied라는 메시지가 출력된다. 다운받은 test.txt를 보자. text.txt에는 위와 같은 문자열이 있다. 해당 문자열로 뭘 알아낼 수 있는지 모르겠어서 코드를 보았다. 코드를 보니 test.txt를 눌렀을 때는 "?down=dGVzdC50eHQ="로 이동되는데, flag.docx를 눌렀을 때는 Access Denied라는 Alert 창이 뜨도록 되어 있다. ?down=dGVzdC50eHQ= 여기서 dGVzdC50eHQ= 이 값이 test.txt에 대한 base64 인코딩 값으로 보인다. 돌려보니 동일하였다. 그럼 flag.docx를 base64 인코딩 한 값을 down에 넣어서..

Webhacking.kr old 36번 문제 풀이

36번을 클릭하면 vi 편집기를 통해 파일을 수정하다가, 파일이 삭제되었다는 메시지가 출력된다. vi 편집기는 수정 시 swp 파일을 생성하기 때문에 이 파일을 이용하여 복구를 할 수 있다. URL에 .index.php.swp을 입력하여 파일을 다운받자. 다운받은 파일을 hxd로 열어보니 FLAG값이 보였다. FLAG를 auth에 입력해주었더니 문제가 풀렸다!

Webhacking.kr old 12번 문제 풀이

문제를 클릭하면 위의 화면이 나온다. F12를 눌러서 코드를 보자. 웬열 ...... 이런 건 처음 본다... ^^.... console 창에도 넣어보고 .... 세미콜론 분리도 해보고.... 해봤지만 ... ^^ 도저히 뭔지 모르겠어서 찾아봤다 aaencode라고 자바스크립트를 이모티콘으로 바꿔주는 암호화 방식을 사용한 것이다. https://cat-in-136.github.io/2010/12/aadecode-decode-encoded-as-aaencode.html aadecode - Decode encoded-as-aaencode JavaScript program. ['_'] aadecode - Decode encoded-as-aaencode JavaScript program. (゚Д゚) ['_'] ..

dreamhack rev-basic-2 풀이

문제 ; 이 문제는 사용자에게 문자열 입력을 받아 정해진 방법으로 입력값을 검증하여 correct 또는 wrong을 출력하는 프로그램이 주어집니다. 해당 바이너리를 분석하여 correct를 출력하는 입력값을 찾으세요! chall2.exe를 x64dbg에 넣어보면 위처럼 뜬다. 문자열 검색을 해보자! (오른쪽 마우스 - 다음을 찾기 - 모든 모듈 - 문자열 참조) Correct 문자열이 보인다. 해당 위치로 이동해보자. rev-basic-1 문제와 동일하게 화살표로 가리켜진 함수에서 비교가 발생하는 것으로 추측된다. 해당 부분에 BP를 걸어두고 프로그램을 실행시켜보자. 자세히 살펴보자. 00007FF76E441028 주소에서 7ff76e443000 주소를 rcx로 가져온다. 00007FF76E441033 ..

Wargame/dreamhack 2021.05.15

dreamhack rev-basic-1 풀이

문제 ; 이 문제는 사용자에게 문자열 입력을 받아 정해진 방법으로 입력값을 검증하여 correct 또는 wrong을 출력하는 프로그램이 주어집니다. 해당 바이너리를 분석하여 correct를 출력하는 입력값을 알아내세요. chall1.exe 파일을 넣으면 위와 같은 화면이 뜬다. 문자열 검색을 해보자! Correct 문자열이 있음을 볼 수 있다. Correct가 있는 곳으로 가보면 JE 명령어가 보인다. 그 위에 Call을 통해 함수를 호출하는데, 저 함수에서 비교가 일어나는 것을 유추해볼 수 있다. test위의 call 명령어에 BP를 걸어둔 후 실행을 시켜보자. call을 통해 들어가보면 위와 같이 문자 하나하나에 대해서 비교를 수행하고 있음을 볼 수 있다. 문자열을 합치면 Compar3_the_ch4..

Wargame/dreamhack 2021.05.15