fsockopen(string hostname, int port, int [error], string [errstr]) : 서버의 열려진 어떤 포트로도 접속할 수 있고, 소켓의 연결을 설정할 수 있는 함수
먼저 코드를 해석해보자 !
port는 10000 ~ 10100사이의 랜덤으로 지정되고, GET의 server파라미터로 받은 IP에 랜덤한 port로 소캣을 열어서 연결을 시도한다.
Warning을 보면, 'IP번호:포트번호'에 연결할 수 없다고 뜬다.
이를 통해 fsockopen함수로 연결을 시도한다는 것을 알 수 있다.
=> 연결을 시도한다는 것은 서버에 요청을 보낸다는 말과 같다.
요청을 보내면, 서버가 받아야하는데 그냥 받을 순 없고 서버 소캣을 열어야 한다 ! ๑°⌓°๑
문제를 해결하기 위해서는 요청받을 서버를 만들어줘야 한다.
- 웹 서버를 열어서 apache2 로그 보기
- 간단한 python3 웹 서버를 열어서 로그 보기
- netcat을 이용해 소켓 하나만 받아보기 .. 등 방법이 여러가지 있다.
nc(netcat)를 이용해 10000~10100사이의 포트를 Listening 상태로 열어놓고, server=IP주소를 입력하여 포트번호가 맞을때까지 새로고침한다.
내가 입력한 포트번호가 10051이 나오면! 위처럼 FLAG값이 출력된다.
문제 해결 ㅎㅅㅎ
참고
'WEB > webhacking.kr (old)' 카테고리의 다른 글
webhacking.kr 36번 (0) | 2020.02.11 |
---|---|
webhacking.kr 32번 (0) | 2020.02.11 |
webhacking.kr 21번 (0) | 2020.02.11 |
webhacking.kr 27번 (0) | 2020.02.08 |
webhacking.kr 26번 (0) | 2020.02.06 |