Web Hacking/Webhacking.kr

[Webhacking.kr] child toctou

프레딕 2024. 8. 1. 15:01
728x90

toctou 문제이다. 

일단 baby toctou와 비슷하게 cat flag.php는 못한다.

api.php내용은 다음과 같다.

 

webhacking.kr 이나 202.182.106.159로 온 응답이 아니면 exit된다.

이제 이건 dns rebinding attack으로 우회할 수 있는데 dns rebinding attack은 dns를 리바인딩 했을 때 ip 가 두개 이상이 리턴되면서 예상했던 ip와 다르게 공격자의 ip로 요청을 보낼 수 있다. 

뭐 ssrf나 sop 우회등에 쓰이는데 인터넷에 자료 참고하면 될것 같다.

https://lock.cmpxchg8b.com/rebinder.html

 

rbndr.us dns rebinding service

 

lock.cmpxchg8b.com

rebinder 사이트이다. A에다가 우회할 ip B에다가 get으로 보낼 ip를 적으면된다.

여기선 A에다가 내 서버 ip, B에다가 webhacking.kr ip를 적으면 된다.

그러면 요청을 보낼때마다 B ip가 나오다가 가끔가다 A ip가 나올것이다.

$_SERVER['HTTP_HOST'] 는 request의 host헤더부분을 바꾸면 쉽게 변조 가능하다.

그래서 다음과같이 요청을 계속 보내다 보면 어느 순간 내 ip로 요청이 올거고 flag가 뜬다.

 

사실 dns rebinding과 toctou와 뭔상관인지 잘 모르겠다라고 생각할 수 있는데

나역시 그렇게 생각해서 찾아보니 dns rebinding이 toctou의 일종이라고 하긴 하는데....

저 코드에선 sleep(1)없이도 dns rebinding취약점이 발생할거 같긴한데 아직은 잘 모르겠다.

https://github.com/taviso/rbndr

 

GitHub - taviso/rbndr: Simple DNS Rebinding Service

Simple DNS Rebinding Service. Contribute to taviso/rbndr development by creating an account on GitHub.

github.com

toctou 기법에 대해선 좀더 공부해봐야겠다

728x90
반응형