Jin Heo

Hacking Pwnable

[PWN] relro2

  relro1과 마찬가지로 Full relro와 NX만 켜져있다. ida로 까봤다. main함수에서는 r2(내가 이름 정해줌) 함수만 호출하고 있고, r2 함수 내부에는 buf를 […]

Hacking Pwnable

[PWN] relro1

  NX와 full relro만 켜져있다. ida로 까봤다. buf의 크기는 정확히 모르겠지만(0x30이라고 생각했는데, ida로 보니 아닌 거 같기도 하고..?), 일단 buf의

Hacking Pwnable

[PWN] pie2

다 켜져있다. ida로 까봤다. 흐름은 대충 bof가 한번 일어나고, 특정 주소에 8byte를 덮어쓸 수 있고, 마지막에 특정 주소를 free할 수

Hacking Pwnable

[PWN] pie1

  이번 문제는 Full Relro, NX, 그리고 PIE까지 켜져있다. 코드 영역의 주소까지 랜덤화된다는 것을 인지하고 시작하자. ida로 까봤을 때 메인

Hacking Pwnable

[PWN] canary2

  ida로 까봤다. thread를 생성할 수 있고, 입력을 받을 수 있다. 그리고 마지막에 read로 0x400만큼 입력 받을 수 있기에 bof가

Hacking Pwnable

[PWN] canary1

  canary, nx, pie, full relro 다 켜져있다. 메인 함수이다. 처음엔 약간 복잡해 보였지만 그렇게 복잡하지 않다. 예전 주차에 풀어봤던

Hacking Pwnable

[PWN] helpme

  C코드를 보자. main 함수 내부에는 긴 설명이 적혀있다. 간단히 요약해보면 name을 입력 받고(크기는 10byte로 제한) 이를 출력해주며, vuln 함수를

Hacking Pwnable

[PWN] note

  C코드이다. main 함수 내부에는 note라는 2차원 배열(100 x 8)이 선언되어 있고, name에 입력을 받은 후 while 내부에서 input_note, print_note를

Hacking Pwnable

[PWN] onetime

  C코드이다. check 때문에 main 함수를 여러번 실행하기는 힘들어보인다. (사실 sfp와 ret를 잘 고려하여 if문 뒤로 jmp하면 main함수를 다시 실행할

Hacking Pwnable

[PWN] oneshot2

  이번 문제는 Canary가 있다! Canary가 뭔지 구글링해보았다. Stack Canary는 보호기법 중 하나인데, 간단히 말하여 버퍼와 sfp 사이에 특정 값을

위로 스크롤