전체 글 81

CodeEngn Basic RCE L17

문제 Key 값이 BEDA-2F56-BC4F4368-8A71-870B 일때 Name은 무엇인가 힌트 : Name은 한자리인데.. 알파벳일수도 있고 숫자일수도 있고.. 정답인증은 Name의 MD5 해쉬값(대문자) 언제나 그랬듯 . . ~ 성공 구문을 찾아보자! Good Boy 부분이 성공 구문인 것 같다. 해당 위치로 이동해보자. 성공 구문 위에 CALL과 JNZ가 있는 것을 알 수 있다. CALL을 통해서 부르는 함수가 CMP임을 추측해볼 수 있고, 그 결과에 따라 Good Boy가 출력되거나 아니면 sleep이 된다. CALL 명령어에 BP를 걸어두고 실행해보자. Name 값은 1, Key 값은 문제에 기재된 값을 넣었다. 그랬더니 Pleas Enter More Chars라는 문자열이 뜬다. 'Plea..

Wargame/CodeEngn 2021.05.19

dreamhack rev-basic-3

문제 이 문제는 사용자에게 문자열 입력을 받아 정해진 방법으로 입력값을 검증하여 correct 또는 wrong을 출력하는 프로그램이 주어집니다. 해당 바이너리를 분석하여 correct를 출력하는 입력값을 찾으세요! 성공 구문을 찾아보자! Correct가 있음을 볼 수 있다. 해당 위치로 가서 분기점을 찾아보자. 성공과 실패를 가르는 분기점이 위의 선택된 주소에 나타난 것을 볼 수 있다. eax 값이 0일 경우에, wrong으로 가게 된다. eax 값은 test 명령어 위의 call 명령어로 불러지는 함수에서 정해질 테니 00007FF7458D116E에 BP를 걸어두고 실행해보자. 함수에 들어가면 위와 같은 명령어들이 보인다. (1) rcx에 00007FF7458D3000 dump 주소값을 넣는다. (2)..

Wargame/dreamhack 2021.05.19

Webhacking.kr old 43번 문제 풀이

43번 문제를 클릭하면 위와 같은 화면이 뜬다. 아무것도 선택하지 않고 제출을 누르면 'type not detected'라는 문자가 뜬다. flag.docx 파일을 올려보자. 'Done!'이라는 메시지와 함께 파일이 올려진 경로가 뜬다! 경로에 접근해보자. 경로에는 권한이 없어서 접근을 못한다. 파일은 접근이 가능하니 cat /flag를 수행하는 php 파일을 올려보자! php 파일을 올렸더니 wrong type이라고 뜬다. 아까 docx 파일의 경우에는 무사히 올라갔으니, burp suite로 docx file type으로 변경한 후 올려보자! docx의 경우 Content-Type 값이 application/vnd.openxmlformats-officedocument.wordprocessingml.d..

전송 계층(2)

Kocw에서 제공하는 한양대학교 이석복 교수님의 컴퓨터네트워크 강의를 수강한 후, 정리한 글입니다.(http://www.kocw.net/home/search/kemView.do?kemId=1312397) 교재 : Computer networking : a top-down approach PPT : https://gaia.cs.umass.edu/kurose_ross/ppt.htm V7.1 Pipelined protocols 현실적인 TCP 동작은 오른쪽처럼 일어난다. (한 번에 많이 보냄) 한 번에 많은 패킷이 동시에 나갔다가 그것에 대한 피드백을 일일이 처리하니까 RDP보다 복잡하다. 한 번에 일을 처리하는 파이프라인 방식의 일반적인 방법이 go-Back-N과 selective repeat이다. TCP ..

공부/네트워크 2021.05.19

Webhacking.kr old 41번 문제 풀이

41번 문제를 클릭하면 위와 같은 화면이 나온다. view-source로 소스 코드를 보자. 파일이 업로드 되면서, flag 값이 업로드 된 파일에 써지는 것으로 보인다. 우리는 그럼 파일이 업로드 되는 경로를 알아내야 한다. 파일을 선택하지 않고 upload를 눌러보았다. 그랬더니 /var/www/html/challenge/web-19/index.php에 있는 21번째 줄에서 filename이 비어 있다는 에러 메시지를 출력했다. 이때 이 에러 메시지에서는 우리가 경로가 무엇인지 알 방법이 없다. 다른 에러 메시지를 출력하여, 경로를 찾아내야 한다. 보통 큰 파일의 경우, 업로드가 되지 않는 경우도 존재하니 kali-linux 가상머신 파일을 업로드 해보았다. 이 정도 파일 가지고는 안 되는 것 같다...

CodeEngn Basic RCE L16

문제 Name이 CodeEngn일때 Serial을 구하시오 성공 구문을 찾아보자! 형광펜이 성공 구문으로 보인다. 해당 위치로 이동해보자. CMP나 JMP가 GetStdHandle 함수를 호출하는 곳을 제외하고는 보이지 않아서 일단 바로 위에 있는 CALL에 BP를 걸어두고 실행해보았다. 웬열 . . 안 걸린다. 위의 GetStdHandle 어셈블리를 봤더니 004015A2 주소에 있는 분기문에서 ZF가 1이면 00401063C로 넘어가면서 Wrong password!가 출력되는 것 같다. 그럼 004015A2의 결과를 계산하는 CMP문인 0040159F에 BP를 걸어두고 실행해보자. EAX에는 내가 입력한 11111의 hex값이 들어간다. 그리고 비교 대상의 값은 E4C60D97이다. E4C60D97을..

Wargame/CodeEngn 2021.05.18

전송 계층(1)

Kocw에서 제공하는 한양대학교 이석복 교수님의 컴퓨터네트워크 강의를 수강한 후, 정리한 글입니다.(http://www.kocw.net/home/search/kemView.do?kemId=1312397) 교재 : Computer networking : a top-down approach PPT : https://gaia.cs.umass.edu/kurose_ross/ppt.htm V7.1 전송 계층에는 TCP와 UDP가 있다. 전송 계층에서는 보내는 컴퓨터와 받는 컴퓨터의 TCP/UDP만 알 수 있다. 네트워크 내부는 네트워크 계층에서 다룬다. 인터넷 : IP 프로토콜을 사용하는 디바이스들의 연결 애플리케이션의 전송 단위는 메시지이다. 이 메시지는 소켓을 통해 내려오게 되고, 전송 계층의 전송 단위인 세그..

공부/네트워크 2021.05.18

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