-
22 . fsb [ pwnable.kr ]카테고리 없음 2021. 11. 20. 22:25
22번째 문제는 fsb입니다! 역시 제가 rookiss 문제를 풀 수 있어서 감격스럽기도 하고 뿌듯하기도 합니다.제가 많이 썼던 포뮬러싱을 이용한 문제로 시작하면 쉽게 풀 수 있을 것 같았고, 이 문제에서 얻을 수 있는 교훈은 따로 있었어요.소스 코드의 이유는 모르겠지만, fd를 랜덤으로 빼주고 read 하는데 사용하면 그 값이 버퍼에 들어간다는 것을 조금 전부터 알게 되었습니다.이번 main함수도 그렇게 랜덤치를 넣어주었던 것 같습니다.그 후에 0x12345와 and 연산을 해서 fsb 함수를 온으로 하겠습니다. 저 함수로 익스플로잇을 하면 된대요! 상당한 인자와 환경 변수는 모두 제거해 주는 것 같습니다.오로지 포맷 스트링 버그만 사용해서 푸는 것 같네요.printf 함수의 got을 조건문 내의 주소로 하면 자동빵에서 셸이 계산될 것 같습니다만, 키를 랜덤 값이 아니라 초기화할 수도 있겠습니다.
엑스코드(?)가 최초로 생성된 엑스코드입니다.그 동안 항상 서버에 ssh하고 코드를 베껴서 그 c언어를 비트에 맞게 컴파일하고 제 파일을 로컬로 따로 만들어 주었습니다. 왜? scp 명령어를 사용할 줄은 몰랐기 때문입니다!인터넷에서 분명히 이렇게 하면 파일이 생긴다던데 제가 못하는걸 어쩌죠!이것은 폴더가 아닙니다! 이것은 폴더입니다.영문 모를 소리만 해대면서요.그래서 그동안 그렇게 풀었어요.
근데 오늘은 그것 때문에 조금 고생했어요로컬에서는 에쿠스가 됐는데 서버에서는 에쿠스가 안 됐더라고요.그래서 오늘 깨달은 주된 내용은 바로 sp입니다.scp-P222 fsb@pwnable.kr:homefsb. 정확하게 위와 같이 치면 현재 있는 폴더에 파일이 생깁니다.이상한 주황색 표시가 나오는 것은 chmod 755fsb에서 흔히 사라집니다.그리고 이렇게 하면 제일 좋은 점!
서버와 로컬간의 이진차이가 없습니다!제 바이너리에서는 제가 입력한 13번째 인덱스가 6번째 인덱스의 주소를 포함하고 있어서 그것을 이용해서 엑스를 했는데 서버에서는 전혀 통하지 않았습니다.그리고 그 이유를 다른 분들의 랩으로 알았다는... (눈물)
이제 위와 같이 바이너리를 다운받아 사용하세요!익스플로잇 코드
새벽에 삽질을 해서 졸려도 뿌듯했어요내일도 올릴게요!