minhui study

Webhacking.kr 31번 본문

Hacking/Webhacking.kr

Webhacking.kr 31번

minhui 2020. 2. 15. 17:22

Challenge 31 - 150 Points::포트포워딩

 

$port = rand(10000,10100); 

// rand는 난수를 생성하는 함수이다. 즉, 포트 번호는 10000 ~ 10100 사이의 숫자에서 생성된다는 의미이다.

 

 

$socket = fsockopen($_GET['server'],$port,$errno,$errstr,3) or die("error : {$errstr}");

// $socket=fsockopen(hostname,port no,errno,errstring,timeout) 

= fsockopen ("연결할 도메인이나 ip","포트번호","에러(오류 번호)","에러메세지(문자열)","연결시도시간(데이터를 읽거나 쓰는 시간에 대한 시간 제한 설정)")

 -> 소켓 연결 함수로 다른 서버를 연결해서 파일을 읽어올 때 쓰인다.

    * 소켓이란?

          : 소프트웨어로 작성된 추상적인 개념의 통신 접속점, 소켓을 통하여 통신망으로 데이터를 송수신하게 된다.

 

*포트포워딩이란? 

https://opentutorials.org/course/3265/20038

 

포트 포워딩(port forwarding) - 생활코딩

수업소개 공유기 외부에서 공유기 내부의 컴퓨터에 접속하기 위해서는 공유기의 몇번 포트에 접속한 정보를 공유기 내의 어떤 아이피의 몇번 포트로 연결해줄 것인지를 공유기에게 알려줘야 합니다. 그 방법에 대해서 알아봅니다.  강의

opentutorials.org

먼저 cmd창에 ipconfig를 입력한 후 gateway 번호와 내ip주소를 확인한다.

그리고 인터넷 주소창에 gateway를 입력한다.(포트포워딩을 하기 위해) 그럼 다음과 같은 화면이 나온다.

초기암호는 admin이다. 로그인 한 후 고급 설정에 들어가서 다음과 같이 설정한 후 규칙을 하나 만든다.

문제에서 10000에서 10100까지 랜덤으로 포트 번호가 설정되므로 외부포트를 10000-10100로 설정해준다.

내 pc의 외부포트 10000-10100로 접속하게 되면 pc의 내부포트 10000로 연결시켜주도록 했다.

그리고 아까 ipconfig한 후 알아낸 본인 IP주소도 입력해준다. 

 

10000포트가 열려 연결이 되면 문제 화면에 오류가 다음과 같이 없어진다.

그 다음으로 netcat을 사용해 10000포트에서 오는 정보를 받아보자

일단 밑의 사이트에 들어가서 netcat을 다운받는다.

eternallybored.org/misc/netcat

 

그리고 cmd창에 cd 다운받은 파일 위치 를 친 다음  nc64.exe -l -p 10000를 입력하여 기다리면 다음과 플래그가 나타난다. 

  • -p [port number or name] : local-port 를 지정한다. 주로 -l 과 같이 사용하게 된다.

  • -l : listen 모드로 nc을 띠우게 된다. 당연히 target host는 입력하지 않는다. -p와 같이 사용하게 된다. nc server 로서 쓸때 사용.

 

문제 해결~~!!

'Hacking > Webhacking.kr' 카테고리의 다른 글

Webhacking.kr 47번  (0) 2020.02.16
Webhacking.kr 32번  (0) 2020.02.15
Webhacking.kr 27번  (0) 2020.02.14
Webhacking.kr 25번  (0) 2020.02.14
Webhacking.kr 19번  (0) 2020.02.14
Comments