System&Write up 87

[Codegate 2017] babypwn

[Codegate 2017] babypwn 일단 소켓 연결을 하는데 포트번호를 8181번으로 연결해줍니다. 그리고 바이너리에는 canary와 nx가 걸려있습니다. 들어가보면 Echo 기능은 입력을 받고 그대로 출력하는 것입니다.Reverse Echo 기능은 입력을 받고 거꾸로 출력하는 것입니다.Exit 기능은 나가는 것입니다. 이제 함수를 분석해보겠습니다. main의 sub_8048B87() 함수를 보겠습니다. 저 함수 3개를 분석하겠습니다. 1번째 함수는 처음에 환영글을 출력하는 함수입니다. 그럼 2번째 함수를 분석하겠습니다. 여기가 중요 함수입니다. 3번째 함수는 이걸 출력해줍니다. 2번째 함수를 보면, 어머 Echo와 Reverse Echo 모두 BOF가 발생합니다. 여기서 v2는 bp-0x34지만..

System&Write up/CTF 2018.01.29

[pwnable.kr] Toddler's Bottle - input

[pwnable.kr] Toddler’s Bottle - input 1 2 3 4 5 6 #argvs = range(100) argvs = [str(i) for i in range(100)] argvs[ord('A')] = "\x00" argvs[ord('B')] = "\x20\x0a\x0d" s = process(executable='/home/input2/input', argv=argvs) cs 처음에는 range(100)로 만들었는데, process 함수에서 오류가 나서 전체가 다 문자로 이루어진 리스트를 만들었습니다. 그리고 process에서 executable에 공격할 파일 경로를 주고, argv에 넣을 인자 리스트를 줍니다. Stage 1 clear! code: 1 2 3 4 5 6 7 8 9..

[Pico CTF 2013] overflow5

[PicoCTF-2013] overflow5 이번에는 NX가 걸려있어서 셸코드를 올려서 실행하는 건 힘들 것 같습니다. vuln 함수입니다.v2의 시작 주소는 ebp-0x40c이고, strcpy 함수의 BOF 취약점으로 인해 return address까지 변조할 수 있습니다. esp+0x420가 첫 번째 파라미터이니, esp+0x41c가 return address입니다.esp+0x10이 buf의 시작주소이기 때문에, buf의 시작 주소와 return address의 거리는 0x40c(1036)입니다. 실제로 확인해보겠습니다. 이렇게 return address를 변조할 수 있다는 것을 확인했습니다. RTL을 이용해서 system 함수를 호출해서 인자에 “/bin/sh”를 넣어주도록 하겠습니다. 하지만 “/..

System&Write up/CTF 2018.01.18
반응형