이 문제는 참 간단한 문제다. 따로 로컬로 불러올 필요도 없었다.




코드는 이렇다. strcmp로 password와 입력받은 buf를 비교한다.

peda로 strcmp에 BP를 걸고 진행해보자



레지스터 RDI에 보면 cat: password: Permission denied라는 문자열이 보인다.


얼핏보면 cat을 통해 뒷 문자열을 출력하려고 하는 것처럼 보이겠지만 사실 저 문자열 자체가 password이다. 


64비트에서 함수를 호출할때 보통 인자를 rax, rdi, rsi, rdx ,...식으로넣는다는걸 생각해보면 rdi에는 password가 들어가 있을것을 유추할 수 있다.


따라서 저 문자열을 넣으면 된다.




peda에서 보여주는 arguments에도 같은 값이 들어있는것을 볼 수 있고,

실행하면 flag를 얻을 수 있다.

'pwnable > Toddler's Bottle' 카테고리의 다른 글

[Toddler's Bottle] unlink  (0) 2018.09.14
[Toddler's Bottle] horcruxes  (0) 2018.09.12
[Toddler's Bottle] asm  (0) 2018.09.12
[Toddler's Bottle] uaf  (0) 2018.05.31
[Toddle's Bottle] cmd2  (0) 2018.05.31
블로그 이미지

천재보다는 범재

,