티스토리 뷰
LOB cobolt -> goblin
id : cobolt
pw : hacking exposed
코드입니다.
전 레벨과 달라진 점은 argv를 이용해서가 아닌 gets로 입력을 받군요.
bof가 발생하는 군요. ret값을 조작하여 공격하면 될 것 같습니다.
바로 분석을 해보겠습니다.
분석을 하기 위해 tmp라는 폴더를 만들고 cp하겠습니다.
스택프레임이 16만큼 형성되어 있고
ebp-16 즉 esp부터 gets로 입력을 받습니다.
메모리 구조는
buf(16) | sfp | ret 이 되겠습니다.
저는 RTL기법으로 풀도록 하겠습니다.
먼저 system 함수의 주소를 구하도록 하겠습니다.
0x40058ae0입니다.
이제 /bin/sh의 주소를 구해보겠습니다.
주소를 구하는 코드입니다.
컴파일을 해주고 실행하면 주소가 나옵니다.
0x40058ae0 이 시스템함수의 주소이고 인자 값이 0x400fbff9임을 알 수 있네요.
페이로드를 짜보겠습니다.
gets 이기 때문에 | 파이프 명령을 이용해서 값을 넘겨줘야 합니다.
페이로드 입니다.
(python -c ‘print “A”*20+”\xe0\x8a\x05\x40”+”AAAA”+”\xf9\xbf\x0f\x40”’;cat) | ./goblin
공격 해보겠습니다.
쉘을 얻었습니다.
실제파일에 공격 해보겠습니다.
권한을 얻었습니다.
cobolt의 키는 hackers proof 입니다.
'pwnable > LOB' 카테고리의 다른 글
[LOB] wolfman -> darkelf write-up (0) | 2018.01.27 |
---|---|
[LOB] orc -> wolfman write-up (0) | 2018.01.27 |
[LOB] goblin -> orc write-up (0) | 2018.01.27 |
[LOB] gremlin -> cobolt write-up (0) | 2018.01.26 |
[LOB] gate -> gremlin write-up (0) | 2018.01.26 |
Comments
최근에 올라온 글
최근에 달린 댓글
TAG
- SQLi
- oob
- overflow
- fastbindup
- shellcoding
- stack reusing
- FSB
- fsop
- hacking
- rt_sigreturn
- 해킹
- pwable
- pwnable.tw
- fastbin
- 본선가고싶다
- TLS
- glibc
- HackCTF
- tcache
- codegate
- srop
- pwnable
- ebp change
- heap
- exit
- Total
- Today
- Yesterday