format 그냥 format string attack 이다. exit 를 main 시작점으로 덮고, printf 를 system 으로 덮은다음 ;/bin/sh 하면 끝 special bash jail? 같은건데 미리 정의된 환경변수 잘라다가 sh 만들면 된다. 하는거 미리알고 좀 빡세게 했으면 순위권 들수 있었을거 같은데 얼마 못해서 아쉽다ㅠㅠ
http://juckchang.github.io/guest 사실 완성한지 꽤 됬는데 까먹고 있었따ㅣ,,
이런식으로 쉽게 풀수 있다. Shellcoding 문제가 나왔을때 shellcode 가 실행될 때 레지스터를 잘 살펴보면 libc 주소가 들어있는 경우가 있기 때문에, 이를 잘 이용하면 쉽게 풀릴수도있다
최근 하고있었던 프로그램의 취약점을 찾아냈다,,, 근데 사실 찾아낸건 시작하고 1시간인가 만에 찾았던것이다. 지금까지 이게 취약점인가 하면서 몇주를 가져다 버렸다. 쨋든 이걸 익스해야하는데 답이없다. stack based overflow 인데, Cookie 체크전에 내가 일으킬수 있는 except 도 없어서 SEH overwrite 도 안되는거 같고, 그렇다고 leak 을 따는것도 아니고 해서 답이 없어졌다. 다른 벡터를 찾던가 어떻게든 해보던가 인거 같은데... stack based overflow 라 너무 아깝다,,,
http://juckchang.github.io/guest/main.php 인데 아직 손볼게 있어서 index 로 옮기지는 않았다. 백엔드보다 디자인이 어려워,,,
https://juckchang.github.io/usage/ 이거 보면 사용하는 방법이 나와있다. 이걸 이용해서 거의 도메인이랑 다른거 없이 쓸수 있다ㅋㅋㅋㅋㅋ 다만 nc 같은 접속은 안되지만 웹은 다된다리,,, http://juckchang.github.io/guest 이런식으로 내서버로 이동시켜준다 개꿀 다음 같이 깃헙 페이지에서 404.html 을 만들면 각자의 404 페이지를 만들 수 있는데, 이때 javascript 를 써서 document.URL 해서 그걸 파싱하고 location.href 해서 내서버로 돌려주면 도메인과 비슷한 작업이 가능하다ㅋㅋ
사실 어제 올린 글이 이문제 풀면서 생각해 본거다ㅋㅋ.. stage 1. heap1, heap2 를 malloc 후 free 시켜서 heap1 => heap2 만듬 -> heap2 을 vote 를 통해 fd 에 들어간 heap1 주소를 늘려서 원하는 주소를 받을 수 있게함 ( 힙 임의 쓰기 ) stage 2. heap3 을 만들어서 heap4 부근에 name 을 받아서 heap4 의 fd 를 조작할 수 있게끔 fake size 를 구성해줌. -> heap4,5 를 malloc 후 free 함 heap5 => heap4 -> heap1 => heap2 를 만들어 논것을 이용해서 heap4 부근의 fake size 로 주소를 받음 -> 이를 통해 heap4의 fd 를 조작할 수 있음. -> fd 를 mall..
굳이 fastbin dup 을 해야지만 원하는 영역에 할당 받을 수 있는건 아니다. fastbin dup 을 제대로 이해했으면 다 알법 하지만 그래도 알아도 상황에 맞춰서 써먹기 힘든거 같아서,,, 좀 적어보겠다 Free 되어 fastbin 에 들어간 chunk 의 fd 를 조작할 수 있으면 굳이 duplicate 시키지 않아도 된다. 이 fd 를 조작할 수 없을경우, duplicate 시켜서 fd 를 조작할 수 있게 하는거다. 따라서 임의쓰기가 있고, heap address 를 leak 가능하다면, 굳이 duplicate 시키지 않고, free 시킨다음 직접적으로 fd 를 조작해 주는걸로 끝낼 수 있다. 막 내가 임의로 넣을 수 있는 값이 fd 영역에 들어가지 않는다던가 그런식일때 임의쓰기랑 연결해서 ..