티스토리 뷰
LOB goblin -> orc
id : goblin
pw : hackers proof
코드입니다.
//egghunter 부분은 환경변수 기법을 막은 것 입니다.
그리고 argv1의 47번째 글자가 \xbf가 아니면 종료가 됩니다.
strcpy를 해주니 bof가 일어납니다.
분석을 해보겠습니다.
분석을 위해 tmp폴더로 파일을 cp하겠습니다.
어셈블리 코드입니다.
중요한 부분만 보도록 하겠습니다.
스택 프레임을 44만큼 할당 하고 있습니다.
ebp-40부터 strcpy 하는 군요
따라서 메모리 구조는
i(4) | buf(40) | sfp | ret 이 됩니다.
sfp까지 44개를 채워주고
ret을 조작해주면 될 것 같습니다.
하지만 ret의 마지막이 \xbf여야 하니깐 스택을 이용해야 할 것 같습니다.
Nop sled 기법을 이용하도록 하겠습니다.
스택안에 쉘코드를 넣어주면 되는데요
저는 스택프레임(40) 안에 25바이트 쉘코드를 넣겠습니다.
좀 좁아서 뒤에다 하고싶지만 가능은 하니 해보겠습니다.
\x90 *3 +”SHELLCODE”+”\x90”*16 이렇게 하고
앞에 널값의 주소를 구할 것 입니다. 매우 작으니 힘들 겁니다.
흰색부분에 앞에 \x90의 주소로 공격해보겠습니다.
주소는
bffffc29이네요
공격해보겠습니다. tmp파일에
코어 덤프드가 되었습니다.
코어 파일을 분석해보겠습니다.
주소가 0xbffffc1c 입니다. 이 주소로 다시 공격해보겠습니다.
쉘을 얻었습니다.
실제 파일에 공격해보겠습니다.
권한을 획득했습니다.
orc의 키는 cantata 입니다.
'pwnable > LOB' 카테고리의 다른 글
[LOB] wolfman -> darkelf write-up (0) | 2018.01.27 |
---|---|
[LOB] orc -> wolfman write-up (0) | 2018.01.27 |
[LOB] cobolt -> goblin write-up (0) | 2018.01.26 |
[LOB] gremlin -> cobolt write-up (0) | 2018.01.26 |
[LOB] gate -> gremlin write-up (0) | 2018.01.26 |
- exit
- 본선가고싶다
- rt_sigreturn
- pwable
- hacking
- codegate
- TLS
- stack reusing
- fastbindup
- oob
- FSB
- shellcoding
- ebp change
- HackCTF
- fastbin
- glibc
- srop
- pwnable
- tcache
- 해킹
- fsop
- pwnable.tw
- heap
- SQLi
- overflow
- Total
- Today
- Yesterday