티스토리 뷰

pwnable/LOB

[LOB] gate -> gremlin write-up

ba0bab 2018. 1. 26. 16:05




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