HanJeouk의 개인공부 블로그

#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 문제를 풀 때는 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 풀이를 올리기 시작했다.

#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