

퍼블이다.
분석 나열하겠다.
Dockerfile + chall.py로 구성된 CTF용 컨테이너.geth(Go-Ethereum, dev 모드)와 자체 HTTP 서버(기본 8888)를 동시에 띄운다.-http.api eth,net, -ws도 열림: 8545/8546)./flag 엔드포인트 동작:
geth가 살아있으면: "Kill GETH" 반환geth가 죽어있으면: "FLAG: " + FLAG 반환/flag를 치면 된다.관리자가 admin/debug를 막아뒀으므로 정상 RPC로는 종료가 불가능하다.
대신 WS/HTTP를 이용한 리소스 고갈로 geth 프로세스를 크래시 내는 방식이 의도이다.
내가 사용한 방법은 WebSocket eth_subscribe 폭주로 geth 프로세스를 죽이는 것이다.
ws://HOST:8546에 다량 접속 후 eth_subscribe "newHeads"를 수천~수만 개 생성.HTTP 필터 폭주도 방법이 될 수 있다고 생각이 드는데, 일단 문제 풀이 때 당장 생각났던게 위의 방식이라 그렇다.