티스토리 뷰
LOB gate -> gremlin
id : gate
pw : gate
코드입니다.
버퍼의크기는 356인제 argv[1]를 strcpy를 하니 버퍼오버플로우가 일어납니다.
bof로 ret을 조작해주면 될 것 같습니다.
RTL기법을 이용해서 풀도록 하겠습니다.
먼저 분석해보겠습니다.
분석을 위해 tmp라는 폴더를 만들고 복사했습니다.
어셈블리 코드 입니다.
스택프레임을 0x100 만큼 형성하고 있습니다.
0x100은
10진수로 256입니다.
따라서 메모리 구조는
buf 256 | sfp | ret 이 될 것 같습니다.
이제 시스템 함수의 주소와 /bin/sh의 주소를 구해보겠습니다.
0x40058ae0 입니다.
이제 /bin/sh의 주소를 구해보겠습니다.
주소를 구하는 코드입니다.
컴파일을 해주고 실행하면 주소가 나옵니다.
0x40058ae0 이 시스템함수의 주소이고 인자 값이 0x400fbff9임을 알 수 있네요.
페이로드를 짜보겠습니다.
/gremlin `python -c 'print "A"*260+"\xe0\x8a\x05\x40"+"AAAA"+"\xf9\xbf\x0f\x40"'`
시스템 함수 + 아무 값 + 인자 값으로 RTL기법을 이용했습니다.
공격을 해보겠습니다.
공격에 성공했습니다.
실제파일에 공격을 해보겠습니다.
권한을 얻었습니다.
gremlin의 키는 hello bof world 입니다.
'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] cobolt -> goblin write-up (0) | 2018.01.26 |
[LOB] gremlin -> cobolt write-up (0) | 2018.01.26 |
Comments
최근에 올라온 글
최근에 달린 댓글
TAG
- pwnable.tw
- fsop
- exit
- pwable
- SQLi
- overflow
- TLS
- codegate
- hacking
- FSB
- heap
- glibc
- stack reusing
- 해킹
- rt_sigreturn
- 본선가고싶다
- shellcoding
- fastbindup
- fastbin
- srop
- pwnable
- oob
- tcache
- HackCTF
- ebp change
- Total
- Today
- Yesterday