BOF
-
-
-
level20war game Write up/ FTZ 2018. 11. 18. 05:24
이 문제는 FTZ의 마지막 문제이기도 하고 가장 어려운 문제라고 생각한다... 이 문제의 핵심은 바로 Format String 취약점 즉, FSB 취약점을 이용한 문제인데요. 먼저 Format String이란 무엇이냐 아마 내일 올라올 포스팅을 확인 해주시면 감사하겠습니다...그 포스팅에 정리해두었거든요,,ㅎ 아직 포스팅중이라,,ㅎ헤헤헤ㅔㅔㅔ 음,, 이 사진에 다 담았는데요,,하나 하나 설명을 해보자면 위의 코드에서 format string이 터지는 이유는 printf 함수를 보시면 알 수 있습니다. printf(bleh); 라고 코딩되어 있는데요. 바로 여기서 취약점이 터지게됩니다.. 왜 터지는지는 이 후 나올 포스팅을 확인하시구요,, (이 글을 적는 시간이 새벽 3시인 관계로 너무 피곤합니다.,,) ..
-
level19war game Write up/ FTZ 2018. 11. 18. 00:12
이번 문제는 이전 문제들과 다른 문제이다. 문제의 코드를 보면 setreuid()함수가 존재하지 않는다는 것을 볼 수 있다. 즉, 직접 setreuid()를 넣어줘야 하는데 직접 쉘을 짜도 되고 아니면 에그쉘을 통해서 풀 수 있는 문제이다. 먼저 쉘 코드를 만들기 전에 gdb로 attackme를 분석해보자. 총 스택 길이는 40byte로 buf가 20byte이니 더미값은 20byte이다,그림으로 보면 이다. 이 문제는 bash drop privileges policy 을 활용한 문제인것 같다..----------------------------------------------------------------------------------RedHat 7.0 이후 버전부터 bash drop privileg..
-
level18war game Write up/ FTZ 2018. 11. 16. 01:35
++ 다시 라업을 적을거니 이 글은 참고만,,, 제대로 다시 풀 예정이다.!!! ++--> 결국 다시 풀었다ㅑ,, 풀이 방법은 동일하나 코드 분석을 그나마 조금이라도 정확하게 해보고 싶었다,,ㅎㅎㅎ 음,, 이 문제는 코드만 분석하면 반은 할 수 있는 문제인 것 같다,, ++2018.11.17 다시 코드를 보면 FD_xxx 라는 코드가 있는 것을 볼 수 가 있는데fd는 File Descriptor 의 줄임말로 자신이 사용할 파일 또는 장치에 대한 고유 식별 값이며 리눅스에서 특정한 파일에 접근하기 위한 키라고 할 수 있다.소켓 프로그래밍을 할 때 socket 함수를 사용하여 socket 을 생성하면 정수 값이 반환되는데 이 값이 fd 이다.그리고 fd는 같은 프로그램 내에서 중복되지 않으므로 고유 값으로 ..
-
level17war game Write up/ FTZ 2018. 11. 14. 18:44
이 문제는 그냥 보자마자 setreuid만 있길래 환경변수 등록해서 쉘 따는거다 싶어서 했더니 맞았다....힌트의 코드들이고 attackme를 실행했을 때의 모습이다.코드는 이전 문제의 코드와 거의 동일하기 때문에 하지않겠다. main() 함수 모습printit()함수의 모습 총 스택이 56byte고 buf변수 부터 fgets함수까지 길이가 40byte그냥 환경변수를 등록하고 변수 주소 찾은 뒤에 익스하면 된다. 뭔가 되게 쉬웠던 문제다...
-
level 16war game Write up/ FTZ 2018. 11. 14. 17:37
이 문제는 이전 문제들과 다르게 함수를 사용해서 코딩을 해놓았다.. 덕분에 황당함을 감추지 못했다고,,간단하게 코드분석부터 해보면 main() 함수부터 crap 변수를 int형(4) 로 선언해주고 printit()함수의 호출 주소를 call에 저장하고 buf 변수를 char형(20)으로 선언했다. 그리고 fgets 함수를 이용해 표준입력을 받는다. 그 후에는 call 을 불러와 printit()함수를 호출한 후 프로그램이 종료된다. 여기서 생각해볼 수 있는것이 printit함수의 호출 주소를 저장하는 변수가 있는데 이곳을 shell() 함수를 호출하는 주소로 오염시켜버리면? 쉘을 얻을 수 있을것이다.근데 지금 손목이 너무나도 아프다, 그렇다 이건 의식의 흐름이니 무시하고 gdb로 분석을 해보자. 함수가 ..