아빠가 오늘 멋진 MD5 해쉬 collision을 이야기 해줬다! 나도 그거 비슷한 거를 해보고 싶다!!


원격접속 툴은 Xshell을 이용했고 사용자이름에 col 패스워드에 guest를 입력하고 접속하여 어떤 파일들이 있는지 먼저 살펴보았다.



역시 col에는 setuid가 걸려있었고 flag를 읽기위해서는 col을 실행시켜야 된다는 것을 확인할 수 있었다. 이제 col의 소스파일을 확인해보자~



음 hashcode가 0x21DD09EC이고 이 hashcode와 check_password함수에 첫번째 인자를 넣어서 리턴된 값이 같으면 system함수로 /bin/cat flag를 실행시켜준다. 여기서 check_password의 역할은 전달된 인자를 4바이트씩 잘라서 res에 더한다음 res를 리턴해주는 함수이다.


그래서 처음에는 아무생각 없이 


이렇게 넣었더니 패스코드가 20바이트는 돼야 한다고 한다. 위를 다시보니까 전달받은 인자가 20바이트가 아니면 저 문자열이 출력되고 0을 리턴하는 것을 볼 수 있었다. 대충 보고 하지좀 말아야 할텐데.... 그러면 저 0x21DD09EC를 5로 나눠서 다섯번 집어넣어주도록 하면 될 것 같다~



파이썬 켜서 계산해주고



또 안됨...뭐지..?



아....나머지가 있었다... 멍청이... 그럼 0x06c5cec8을 4개 넣고 여기에 4를 더한 0x06c5cecc를 넣어주면 될 것 같다.



성공~!~!

'pwnable > pwnable.kr' 카테고리의 다른 글

[pwnable.kr] random  (0) 2019.01.15
[pwnable.kr] passcode  (0) 2019.01.13
[pwnable.kr] flag  (0) 2019.01.12
[pwnable.kr] bof  (0) 2019.01.04
[pwnable.kr] fd  (0) 2018.12.27

+ Recent posts