collision 문제를 풀어보았다.
해쉬 충돌??



(collision 문제)


문제 화면



(문제화면)



이번엔 아빠가 등장 다음 문제는 형이 등장하나?
무튼
이번엔 아빠가 해쉬충돌을 이야기해주었단다. MD5 해쉬 충돌 문제인가?
그 동안 문제 풀면서 모은 MD5 충돌하는 매직해쉬값이 쓰일 날이 온건가!

소스코드를 보자.


(소스코드)



에이... 해쉬충돌이 아니다..!ㅎㅎ 
간단히 checksum 이라고해야하나. checksum은 아니고 
입력값을 다 더해준 값을 비교한다.

check_password 함수를 보면 입력값의 주소포인터를 받는데 
그 값의 주소 포인터니 4바이트씩 값을 가져가 더해주는 것이다.

총 20바이트여야하고 값은 총 합이 0x21DD09EC 이어야한다.

5로 나누고 그걸 입력하자!



(5로 나누기)




(등장한 값)



이 값을 5개 입력해주면 되겠다!



(실패)



... 여기서 정말 바보같은 일을 했다는 사실을 알았다.
무작정 5로 나누고 그 값을 5개 더해주니...
나머지는 생각을 안했던 것이다.

내가 입력한 값을 다섯번 더해주니 값이.



(내가 입력한 총합)


21DD09E8이 나왔다. 4가 부족했다.. ㅎㅎㅎ

앞에 4개를 1씩 증가시키고 뒤에 그대로 하나 붙여주는 식으로 맞추어주었다.



(문제 해결)


문제 해결!

'WarGame > 500 Project' 카테고리의 다른 글

(46/500) - pwnable.kr - flag  (0) 2017.07.05
(45/500) - pwnable.kr - bof  (0) 2017.07.05
(43/500) - pwnable.kr - fd  (0) 2017.07.05
(42/500) - Lena's Tutorial 01  (0) 2017.07.05
(41/500) Wargame.kr - Crypto Crackme Basic  (0) 2017.06.28


리버싱 문제를 풀다 너무 재밌어보이는 사이트를 발견하여 또 시작하게된 사이트...

pwnable.kr 이다.! 뭔가 내용도 스토리가 있어보인다.
아주 초보단계부터! 해보기!

사이트 화면


(사이트화면)



제일 앞에 문제 fd 문제부터 풀어보겠다.



(fd 문제)


Linux의 파일 디스크립터를 알아야한다는 그런 내용인거 같다.

일단 처음이니 접속을 해보자!



(접속!)


오호~ 첫화면~~

fd로 로그인하여 확인해본다.



(파일들)


먼저 소스코드를 확인해본다.



(소스코드)


소스코드를 확인해보니
어떤 조건들을 만족시켜서 fd_pwn 권한으로 flag 파일을 읽어주게 하는게 목표인것 같다.

처음에는 파일을 만들고 거기에 LETMEWIN\n 을 입력하여 이 파일 디스크립터를 입력해주어야겠다라고 생각하고 시작하다가 표준입력이 문득 생각이 들었다.

LETMEWIN\n을 표준입력으로 주고 fd를 0으로 만들면 되지 않을까?



(공격!)


여기서 한번의 실패를 겪었다.

하지만 strcmp는 마지막에 Null을 비교한다는 사실이 퍼뜩생각이나 혹시나 하는 마음으로 마지막에 널을 넣어주고 공격해보았다.



(공격)


성공! 
첫문제는 조금 간단하지만 신선했다.! (이전에 풀던문제들과 달랐다.)

'WarGame > 500 Project' 카테고리의 다른 글

(45/500) - pwnable.kr - bof  (0) 2017.07.05
(44/500) - pwnable.kr - collision  (0) 2017.07.05
(42/500) - Lena's Tutorial 01  (0) 2017.07.05
(41/500) Wargame.kr - Crypto Crackme Basic  (0) 2017.06.28
(40/500) Wargame.kr - EASY_CrackMe  (0) 2017.06.27

+ Recent posts