해당 문제는 소켓통신과 관련돼있는 문제이다. socket=...이 두번째 줄은, 소켓 연결함수인데, get으로 전달된 ip 주소와 포트값으로 소켓 연결을 시도하는 것이다.
fsockopen()함수와 관련해서는 여기서 참조.
www.php.net/manual/en/function.fsockopen.php
이때 Warning:...오류 메시지가 나오는데, 이 이유는 소켓 연결에 실패했기 때문이다. 근데 왜 연결 안되나? 포트포워딩으로 해결 가능하다!
일단 이문제에서는 포트 번호가 10000과 10100사이로 랜덤으로 정해지는데, 여기로 접속을 맺을 수 있도록 해줘야한다. 보통의 경우 포트번호가 10000대이상으로는 포트가 열려있는 경우가 많이 없기 떄문에, 포트를 열어줘야 연결이 가능할 것인데, 포트포워딩을 해줘야하는 것이다.
아직 포트포워딩은 무엇인지는 잘 몰라 찾아가며 문제를 풀었다
포트포워딩이란 무엇인가?
opentutorials.org/course/3265/20038
일단 참조할 사이트들. 설명이 잘 되어있는 듯하다...? 포트포워딩(port forwarding)은 공유기 외부에서 공유기 내부의 컴퓨터에 접속하기 위해 해당 포트를 열어줘야하는데, 포트 포워딩 설정이 되어 있지 않으면 외부로부터의 접근이 공유기에서 막힌다.
공유기 사이트에 들어가서 포트포워딩을 할 수 있다. kt 공유기를 사용하기 때문에 kt 포트포워딩 설정에 들어가 보았다.
일단 이문제의 경우, 외부포트와 내부포트 모두 10000과 10100사이의 값을 입력해주고, 내부 IP주소의 경우 cmd 창에서 ipconfig 했을 때 뜨는 주소를 입력해주면 된다.
이렇게 설정을 마쳐주고 나면은, 요청을 listen 하기위해서 특정 프로그램을 사용할 수 있다.
이때 사용하는 프로그램은 netcat(nc). netcat 설치하려면 계속 윈도우에서 바이러스가 있다고 경고를 주면서 설치를 못하게 막는데 그거 해결해서 하튼 netcat을 설치하고,
명령어를 입력한다.
nc -l -p (포트번호). 해당 포트 번호를 listen하라는 뜻!
netcat 명령어와 관련해서는 여기 참조.
그러면, listening....하다가 GET /Password is~형식으로 flag값이 나타나는데, 입력해주면 성공!!
'해킹 공부 > 웹해킹' 카테고리의 다른 글
개발자 콘솔 도구, captcha (3) | 2020.10.06 |
---|---|
다양한 우회방법-VT우회, 주석처리 등 (SQL INJECTION) (0) | 2020.10.03 |
SMTP/ Mail header injection (0) | 2020.10.01 |
LFI 취약점, php wrapper (0) | 2020.09.30 |
쿠키 변조, encoding (0) | 2020.09.29 |
댓글