31번 문제를 클릭하면 위와 같은 화면이 나온다.
서버에 연결하는 것이 거절되었다는 에러 메시지가 출력되고 있다.
코드에서 fsockopen() 함수를 사용하고 있어서, 이게 무엇인지 알아보았다.
fsockopen()
; PHP에서 사용되는 함수로, 소켓 통신에 사용된다.
fsockopen("IP주소", "포트번호", "에러", "에러메시지", "연결시도시간")이 문법이고, 반환되는 값은 파일 포인터이다.
사진에서는 IP를 가려두었지만,
내 IP로 연결되는 것을 알 수 있는데, 연결이 될 수 있도록 10000번부터 10100의 포트를 열어주어야 한다. (포트포워딩)
KT 공유기를 사용하는 경우에는 http://172.30.1.254를 입력하여 공유기 설정 페이지로 접속하면 된다.
cmd에서 ipconfig를 수행한 후(Window 기준) 나오는 IP 주소를 내부 IP 주소에 넣고,
외부 포트는 문제에서 10000부터 10100까지 랜덤 포트를 생성하니까 10000 ~ 10100으로 잡아준다.
그런 다음 외부 포트 10000부터 10100까지 들어오는 건 내부포트 10000으로 처리하게 해준다.
eternallybored.org/misc/netcat/
netcat 1.11 for Win32/Win64
eternallybored.org
10000번으로 들어오는 통신을 받아주기 위해서 netcat을 다운받았다.
Windows를 사용하는 경우, 실시간 탐지에 netcat이 걸리니까 실시간 탐지 기능을 꺼주어야 한다.
netcat 압축을 푼 경로에 들어가서 nc -l -p 10000을 입력하면 10000번 포트 통신을 대기하게 되고,
webhacking.kr 페이지를 새로 고침하면 플래그가 뜬다.
auth에 플래그를 입력해주면 문제가 풀린다.
'Wargame > Webhacking.kr' 카테고리의 다른 글
Webhacking.kr old 58번 문제 풀이 (0) | 2021.05.01 |
---|---|
Webhacking.kr old 32번 문제 풀이 (0) | 2021.04.28 |
Webhacking.kr old 27번 문제 풀이 (0) | 2021.04.27 |
Webhacking.kr old 25번 문제 풀이 (0) | 2021.04.27 |
Webhacking.kr old 19번 문제 풀이 (0) | 2021.04.27 |