본문 바로가기
작업/Webhacking.kr

webhacking.kr old-31 이해하기

 

 

 

old-31 페이지는 여러 문장들이 적혀 있습니다. 어떤 내용인지 읽어보았습니다.

 

$port = rand(10000,10100);

 

$port는 포트 번호를 저장하는 변수입니다.

포트 번호는 특정 사용자에게 데이터를 보내기 위해 통과해야 하는 관문과도 같은 역할을 합니다.

번호와 일치하는 관문을 넘어가야 데이터를 받아야 할 사용자가 존재하는 것입니다.

 

 

rand() 함수는 값을 랜덤하게 얻어내는 역할을 합니다.

10000 ~ 10100의 값 중 하나를 랜덤하게 얻어내는 것입니다.

 

 

$socket = fsockopen($_GET['server'],$port,$errno,$errstr,3)

fsockopen ("연결할 도메인 또는 ip", "포트번호", "에러", "에러메세지", "연결시도시간")

 

fsockopen() 함수는 특정한 페이지를 읽어오는 역할을 합니다.

$_GET['server'] 값으로는 URL에서 적혀있는 server 값이 들어갑니다. (211.194.195.94)

$port에는 10000 ~ 10100의 값 중 하나가 랜덤하게 들어갑니다.

 

 

 

해답을 얻기 위해서는 ip값이 211.194.195.94이며

포트 번호가 10000~10100 사이의 값인 네트워크와 연결되어야 합니다.

 

 

그러기 위해서는 사용자 측에서 몇 가지 조치를 취해야 합니다.

포트 번호는 잘 알려진 번호 (0~1023), 등록된 포트(1024~49151), 나머지 포트(49152~65535)

3가지의 번호 대역으로 구성되어 있습니다. 10000~10100 번호는 등록된 포트 라인에 들어가지만

잘 사용하지 않는 번호 대역입니다.

 

 

 

또한, 지금 사용하고 있는 ip는 공유기를 통한 사설 ip입니다.

그렇기 때문에 외부에서 들어오는 데이터가 정확히 들어오려면 포트가 열려있어야 합니다.

 

 

특정 포트 번호를 허용하여 외부로부터의 데이터를 받아올 수 있게 하는 포트포워딩(port forwarding).

 

 

공유기에서 포트포워딩 작업을 해주어야

10000~10100 대역의 포트에서 제공되는 데이터를 얻을 수 있습니다.


포트포워딩 작업

공유기 관리에 접속합니다. 공유기 게이트웨이 ip를 URL에 입력합니다.

공유기 게이트웨이 ip를 모를 경우 cmd창에서 ipconfig를 입력합니다.

 

기본 게이트웨어 ip 확인

 

공유기 관리 웹 접속

 

 

iptime 공유기를 기준으로 진행하겠습니다.

관리 도구를 눌러서 들어갑니다.

 

 

 

 

고급설정 - NAT/라우터 관리 - 포트포워드 설정에 들어갑니다.

 

 

규칙 이름은 원하는 이름을 적으시고,

내부 IP주소는 현재 사용 중인 본인의 ip주소를 입력합니다.

 

 

외부 포트는 번호 대역은 랜덤으로 추출되는 포트 번호 대역인 10000~10100으로 잡아주시고

내부 포트는 10000으로 잡아줍니다.

 

 

내부 포트는 자신이 외부로부터 받는 것을 허용할 포트 번호이기 때문에

등록된 포트 번호(1024~49151) 대역에서 자주 사용 안 할 만한 포트를 하나 선택하시면 됩니다.

설정이 완료되면 적용을 눌러줍니다.

 

 

포트포워딩 적용 성공

 

 

내부 포트를 10000으로 잡아두었기 때문에 10000번 포트를 열어 놓고 데이터를 받을 준비를 합니다.

네트워크 통신을 진행하고 데이터를 읽어오거나 쓸 수 있는 프로그램인 netcat을 사용하겠습니다.

 

 

eternallybored.org/misc/netcat/

 

netcat 1.11 for Win32/Win64

 

eternallybored.org

 

netcat 설치 진행

 

 

 

netcat 압축파일을 푸신 다음 exe파일을 바로 실행시키거나, 환경 변수에 등록하여 cmd에서 사용합니다.

 

 

 

환경 변수에 netcat 경로 등록

 

 

이제 외부에서 데이터가 들어올 수 있도록 방화벽을 열도록 하겠습니다.

 

 

잘 사용하지 않는 포트로부터의 접속이 필요하기 때문에 방화벽으로 데이터가 차단됩니다. 

그래서 잠시 방화벽을 차단하겠습니다.

 


문제 해결

netcat 실행 명령어는 nc입니다.

 

명령어는 nc -lvp 10000을 사용합니다.

 

-l : 연결을 수행할 수 있도록 요청 듣기 (포트 열어놓음)

-v : 자세한 정보를 화면에 출력

-p : 포트번호로 적용

 

 

본인의 포트번호인 10000번을 열어놓고 대기하여 외부에서의 데이터 전송을 받아들이겠다는 의미입니다.

 

 

10000번 포트로 데이터가 들어오길 기다리는 중임을 알 수 있습니다.

 

 

이 상태에서 old-31 페이지에 가신 다음 새로고침을 누르시거나

URL을 클릭 후 엔터를 눌러 재접속을 시도합니다.

 

 

들어온 데이터의 정보가 나타나는 것을 알 수 있습니다.

 

 

데이터의 정보에는 FLAG로 시작하는 flag 값이 포함되어 있는 것을 알 수 있습니다.

값을 복사 후 Auth에 등록하도록 합니다.

 

 

 

 

 

해결되었습니다!

 

 

 

 

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

webhacking.kr old-23 이해하기  (0) 2020.09.10
webhacking.kr old-33 이해하기  (0) 2020.09.10
webhacking.kr old-20 이해하기  (0) 2020.09.06
webhacking.kr old-39 이해하기  (0) 2020.09.06
webhacking.kr old-26 이해하기  (0) 2020.09.06