LOB 3번 cobolt
#LOB 문제를 풀 때는 bash2 명령어를 꼭 입력해야한다. LOB는 더미가 없다.
문제 코드를 보면
이번에는 gets 함수의 취약점을 이용하는 문제다.
이 문제 역시 환경변수를 이용하여 풀면 쉽게 풀린다. 같은 기법이라 페이로드만 짜겠다.
끗
'Wargame > Load Of Buffer overflow' 카테고리의 다른 글
LOB 6번 wolfman (0) | 2017.05.11 |
---|---|
LOB 5번 orc (0) | 2017.05.10 |
LOB 4번 goblin (0) | 2017.05.07 |
LOB 2번 gremlin (0) | 2017.05.02 |
LOB 1번 gate (0) | 2017.05.02 |
LOB 2번 gremlin
#LOB 문제를 풀 때는 bash2 명령어를 꼭 입력해야한다. LOB는 더미가 없다.
우선 문제 코드를 보면
전 문제와 버퍼 크기 빼고는 똑같다.
gate 때와 똑같이 환경변수를 이용하여 풀면 되기 때문에 과정은 생략하고 페이로드만 짜겠다.
gdb로 확인했을 때 버퍼의 크기는 16 바이트였다. 그렇기 때문에 sfp까지 값을 넣어 총 20바이트를 채운 뒤
쉘코드가 들어있는 환경변수를 이용해 답을 얻을 수 있다.
끗
'Wargame > Load Of Buffer overflow' 카테고리의 다른 글
LOB 6번 wolfman (0) | 2017.05.11 |
---|---|
LOB 5번 orc (0) | 2017.05.10 |
LOB 4번 goblin (0) | 2017.05.07 |
LOB 3번 cobolt (0) | 2017.05.02 |
LOB 1번 gate (0) | 2017.05.02 |
LOB 1번 gate
오늘부터 LOB 풀이를 올리기 시작했다.
#LOB 문제를 풀 때는 bash2 명령어를 꼭 입력해야한다. LOB는 더미가 없다.
문제 코드를 보면
strcpy 함수가 무한대로 받아진다는 것을 이용하여 문제를 풀 수 있을 것 같다. 나는 sfp까지 값을 넣고 ret에 쉘코드 주소를
넣어 문제를 풀 것이다.
우선 gdb로 버퍼의 크기를 봤다.
0x100 = 256
즉 버퍼의 크기는 256 바이트다. 그럼 sfp를 포함한 260바이트를 채워야 함을 알 수 있다.
이제 환경변수를 설정해준다.
NOP로 50바이트 만큼 채워주고 25 바이트짜리 쉘코드를 넣었다.
이제 이 환경변수의 주소값을 알아내자. 주소값은 코드를 짜서 구했다.
구한 주소값은
이제 페이로드를 짜자.
버퍼(256 byte) + sfp (4byte) + 환경변수(Little Endian) 식으로 짜주면 될 것 같다.
끗
'Wargame > Load Of Buffer overflow' 카테고리의 다른 글
LOB 6번 wolfman (0) | 2017.05.11 |
---|---|
LOB 5번 orc (0) | 2017.05.10 |
LOB 4번 goblin (0) | 2017.05.07 |
LOB 3번 cobolt (0) | 2017.05.02 |
LOB 2번 gremlin (0) | 2017.05.02 |