level12입니다. 이제 3/5 왔네요 ㅎㅎㅎㅎ

 

이번에도 코드를 알려줬습니다. 똑같은 버퍼오버플로우 문제인데, gets로 받아오네요. 파일 이름 뒤에 두번째 인자로 받아들이는 것이 아니라서 다른 방식을 사용해야 할 것 같습니다.

 

cp 명령어를 통해 해당 레벨의 tmp폴더로 attackme 파일을 가져왔으며, a.c파일을 만들어서 환경변수의 주소를 찾을 수 있도록 했습니다.

 

저번 레벨에서 입력했던 환경변수가 남아있을까 싶어서 실행해봤는데... 왠지 모르게 없어졌네요... 그래서 다시 만들어줬습니다.

 

주소가 제대로 나오는군요! (저번 레벨에서는 shll이었을겁니다. 그게 안떠서요 ㅎ)

 

우리는 파이프라인을 이용해서 첫번째 실행 결과를 다음 실행의 인자로 집어넣을 수 있다는 것을 알고 있습니다.

인자로 집어넣기 전에...

gdb로 어떻게 생겼는지, 더미는 없는지 확인해봅시다!

0x108은 264니까 8바이트의 더미가 존재하네요. 그러면 입력할 때 sfp 4바이트까지 해서 268만큼 넣고 ret 주소를 넣으면 될 것 같습니다.

 

어랏... 안되네여... 왜이러지 ㅠㅜ

 

괄호에 넣어서 해야되는 거였네요 ㅇㅁㅇ....

후우 이것도 외워야겠네요 ㅠㅜ 역시 리눅스의 세계는 어려워요...

 

그래서 아무튼! 이렇게 문제를 풀어보았습니다!

 

끄읕

+ Recent posts