본문 바로가기
728x90
반응형

해커스쿨 FTZ4

해커스쿨 FTZ level20 (HackerSchool) 풀이 힌트를 보자 마지막 uid로 바꾸는 setreuid 함수가 있고 얼마나 많이 입력하든 fgets 함수가 79바이트까지만 받게되어있어 버퍼오버플로우는 불가능하다. 대신에 printf 함수에 인자로 bleh 변수가 그대로 들어가서 포맷스트링 공격이 가능하다. 포멧스트링이란 https://bloofer.net/94 포맷스트링 공격(Format String Attack)이란? 포맷스트링 공격(Format String Attack)이란? 포맷스트링 공격은 프로그램에 입력된 문자열 데이터가 명령으로 해석될 때 발생합니다. 이러한 방식으로 공격자는 코드를 실행하거나 스택 메모리 일부 bloofer.net 설명을 명료하게 잘 해주셨으니 참고 문제를 풀기 전에 알아야하는게 있다. printf 함수가 실행될 때의 메모리영.. 2021. 11. 18.
해커스쿨 FTZ level19 (HackerSchool) 풀이 힌트를 보자 뭔가 굉장히 심플하다. 지금까지와는 다른점을 찾아보자면 이전에는 uid를 바꿔주는 코드가 써있었고 우리는 shell을 띄워주는 쉘코드를 환경변수에 등록해서 그 주소를 덮어씌워서 문제를 해결했었다. 그런데 이번엔 uid를 바꿔주는 setreuid() 함수가 없다. 그러다는 건? shell을 띄워주는 것과 마찬가지로 setreuid()를 실행해주는 쉘코드를 만들어야 한다! blog.naver.com/sungwhan4854/221787627860 FTZ level11 (3) 쉘 코드 level11이번시간에는 쉘 코드에 대해 배워보겠다.​1. 쉘 코드 - 쉘 코드는 터미널에 입력한 명령을 해석하... blog.naver.com (대부분의 내용은 위의 블로그에서 익혔습니다. 보다 자세하게 설명되어 있.. 2021. 3. 29.
해커스쿨 FTZ level17 (HackerSchool) 풀이 힌트를 보자 level16과는 다르게 shell() 함수가 없다. 대신 uid를 level18로 바꿔주고 call() 을 하는 부분이 있다. 그렇다면 call() 함수가 printit() 함수를 불러오는게 아닌 shell을 얻는 코드로 덮어씌우자. 1. 환경변수 등록하기(bash 쉘을 띄워주는 쉘코드) export TRAP=`python -c 'print "\x90" * 100 + "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x31\xd2\xb0\x0b\xcd\x80" ' ` 입력 후 export 입력하여 잘 등록되었는지 확인 마지막 부분에 위와 같이(?) 되어있다면 잘 입력된 것이다. 이게 맞나 싶은 분들이 .. 2020. 12. 28.
해커스쿨 FTZ level16 (HackerSchool) 풀이 바로 hint부터 보자 level17의 uid로 쉘을 열어주는 shell() 함수가 있고 printit() 함수가 정의되어 있다. 하지만 main()에는 printit() 함수만 call() 한다. fgets() 함수의 BOF 취약점을 이용해서 call() 하는 부분에 shell() 함수의 주소값을 덮어씌워보자. 1. call() 함수가 어디에서 실행할 함수를 불러오는지 주소값 알아내기 gdb를 해보자. set disassembly-flavor intel 코드가 뭔지 궁금한 사람 더보기 ------------------------------------------------------------------------------------------------ set disassembly-flavor int.. 2020. 12. 28.
728x90
반응형