1. 강제적 압박적 웹페이지 공부를 위한 해결책은,,,?

- 무작정 도메인 구매,,ㅎㅎ

- Godaddy에서 정말 도메인만 구입..! 

- 1년간 12900원

- www.hh-nn.net 




2. 도메인 구축 관련 

// 사실,,, 어떻게 하는지 몰라서 it신으로 불리는 분에게 자문을 구했다. 3일간 묻고 물은결과 드디어!! 

내 도메인으로 된 웹페이지가 만들어졌다 ㅎㅎㅎ




3. 도메인 구축 준비물

- 공유기 

 

- 리눅스 (Web server, DBserver) 

// 나는 virtual box에 CentOS6.9를 다운 한 후 

gns3를 이용해서 가상으로 돌리는 것도 가능하나, 속도가 느리다는 단점이 있어 리얼머신으로 돌렸다. 

따라서, web server, dbserver에 ip주소 , 서브넷, 게이트웨이는 자신의 pc에  서브넷팅과 같아야한다.

자신의 pc의 ip주소 확인은 

windows 키+ R -> cmd -> ipconfig 할 수 있다.  

아래 그림은 web server의 ip주소 설정이다. 

web 

// ip: 192.168.0.40, subnet: 255.255.255.0 , gateway:192.168.0.1 

db

// ip: 192.168.0.30, subnet: 255.255.255.0 , gateway:192.168.0.1 으로 설정. 


또한, web server에는 yum을 이용하여 http* , php* 을 

       db server에는 mysql*을 다운해야한다.


webserver 는 service httpd restart // http 재시작

                  service iptables stop // 방화벽 off 

                  service network restart // 네트워크 재시작 설정. 



- 사용 가능한 도메인 

// Goddady라는 도메인 등록 사이트에서 도메인 구매. 





4. 도메인 구축을 위한 기본 설정

- 공유기 포트포워딩 

// 사실... 왜하는지 모른다,,,,ㅎ,,, 묻고 물어서 그냥 하라니깐,, 했고 됐다..ㅎㅎ


192.168.0.1 검색 // 자신의 공유기가 나옴. 

로그인을 요구할 경우 기본 아이디/비번은 admin으로 설정되어 있다.

혹시나 아이디/비번을 모를경우, 공유기를 초기화해야한다.

관리도구 -> 고급설정 -> NAT/라우터 관리 -> 포트포워딩 

위에 그림처럼 포트포워딩을 추가해야한다. 여기서 내부IP는 자신의 Web server의 ip주소를 말한다. 




- DNS Management 

// 이건 지극히 goddady에 맞춘 설정이다. 

내제품(My Products) -> DNS -> 고급기능(Advanced Features) -> 호스트이름(Host names)  -> 추가 

-> 호스트(www) , ip주소(나의 공인ip주소) 기입. 

// ip주소 - 공인 : 인터넷 검색창에 '내 아이피주소는?' 으로 확인 가능.

            - 사설 : cmd창에서 ipconfig로 확인 가능

여기서 주의할 점은!!! 유선네트워크를 사용해야하며, 서버구축은 데스크탑에 하는 것이 좋다.

노트북을 사용할 경우, 랜선을 뺐다 끼면서 ip주소가 바뀌어서 서버가 안돌아간다.

혹시나 노트북으로 한다면, iptime에 가서 ip를 static으로 부여해준다거나(사실,,, 저도 하려했으나 실패했,,,,,,,,) 

저처럼,,,노트북에서 랜선을 뽑지않는,,,,,,, 정말 멍청한,,,,,ㅎ,ㅎ,,ㅎ,, 행동을 해야한다는거,,,ㅎ,ㅎ,,,,,

아무튼 이렇게 설정하고 기본 dns 설정은 아래 그림처럼 한다.

여기서 type A의 value값은 위에 www와 마찬가지로 자신의 공인ip를 기재해야한다. 

설정을 다 한후에! 검색창에 자신의 도메인을 쳐본다. 짜잔 이렇게 나오면 제대로 도메인 구축을 한것이다ㅎㅎㅎ

이후, 도메인 등록(?) 절차를 위해 최대 24시간 정도 기다려야 비로소 자신의 도메인에 html,php 등의 파일도 올리고, db연동도 가능하다. 




5. 확인법 

- windows키+ R ->cmd

 > nslookup

> www.hh-nn.net (자신의 도메인 주소) 를 쳐서 address부분에 자신가 지정한 공인ip가 잘나오면 성공한거다 ㅎㅎ

기다리자 24시간......☆


약 16시간 경과후,,,,☆

db는 당장 쓰지 않기때문에 

webserver를 리얼머신으로 돌려서  service httpd restart // http 재시작

                                              service iptables stop // 방화벽 off 

                                              service network restart // 네트워크 재시작 설정을 하였다. 

그랬더니,, 짜잔,,,!!!! 넘나 기쁜,,ㅎㅎㅎ 나의 도메인으로 된 서버가 구축되었다ㅎㅎㅎㅎ 이히이히

화면에 helllllllllllllllllllllllllllllll0라고 표시되는 이유는 내가 

webserver 에서 cd /var/www/html 

                     vi index.html  에 helllllllllllllllllllllllllllllll0라고 적었기 때문!


웹페이지에 기본(?) 웹페이지...?(?) 말이 이상하네,,ㅎ,ㅎ,ㅎ 아무튼 기본은 

도메인주소/index.html이라고 한다.

따라서 저 페이지가 나온 것이다!


내가,, 서버를 돌리는 것이라,, 무조건 고정된 ip에서 web server를 켜고,, 돌려야 홈페이지를 사용할 수 있어서,, 넘나 불편하지만,,, 남들보다 몇만원은 아꼈으니,,,,ㅎ,,ㅎ,,, 위로삼으려한다,,ㅎ,,ㅎ,ㅎ,,,,,,,,, 

이제 나의 웹페이지의 美를 위해 html, php, javascript을 꾸준히 공부해야겠다 오늘은 끄읕



www.hh-nn.net 

뿌듯 세상 뿌듯 하지만 얼마나 열려있을지,,, 의문이다...ㅎ...

웹해킹을 위해,, 얼른 이쁘고 허술하게 만들어야하지..ㅎ 이러다가 허니팟이 되는건 아닌지.. 벌써부터 걱정이다,,,~ 





'Soso' 카테고리의 다른 글

KH 실전모의면접  (0) 2019.02.26
드디어  (0) 2018.10.24

1. WebGoat란?

- 웹 취약점에 근거하여 다양한 해킹기법을 테스트할 수 있는 페이지를 말한다. 

- OWASP(Opensource Web Application Security Project) 에서 제공.


2. WebGoat다운을 위한 Docker 설치


   https://docs.docker.com/toolbox/toolbox_install_windows/

// 이 링크에 가서 Docker다운. 혹시나 virtual box가 깔려있다면, 다운하는 과정에서 virtual box다운의 체크를 풀어야하다. 그러지 않으면 호환성 문제로 에러가 날 수 있다.

다운이 잘 되었다면 Docker Quickstart Terminal에 아래 그림처럼 뜬다.



3. WebGoat 다운

- 검색창에 WebGoat 검색



화살표가 가리키는거 클릭. 


4. WebGoat 실행

- 화살표가 가리키는 것을 누르면 이런 화면이 뜰 것이다. 

- 그럼 아래 그럼처럼 /WebGoat/attack을 추가해준다. 대소문자는 꼭 구분해서 기입해야한다!!

이제,, 재량껏 문제를 풀어나가면 된다..~






1. 프로그래밍 환경 


- ATOM Editor




- c/c++을 사용하기 위해선 gpp-compiler 패키지 필요




2. hello_server.c 


#include <stdio.h>  //표준 입출력

#include <netinet/in.h>

#include <sys/socket.h>

#include <string.h> // write, close를 위해

#include <ctype.h> // memset, strlen 위해


#define PORT 9000 // 포트 9000으로 지정


char buffer[BUFSIZ]="hello, world";


int main()

{

  int c_socket, s_socket;

  struct sockaddr_in s_addr, c_addr;

  int len;

  int n;



s_socket= socket(PF_INET, SOCK_STREAM,0);  //tcp용 소켓 생성


memset(&s_addr, 0, sizeof(s_addr));

s_addr.sin_addr.s_addr=htonl(INADDR_ANY);

s_addr.sin_family=AF_INET;

s_addr.sin_port=htons(PORT);          /// port와 ip주소 설정(ip는 모두,, 받아들인다는 뜻에서 INADER_ANY사용)


if(bind(s_socket, (struct sockaddr *) &s_addr, sizeof(s_addr))== -1){

  printf("Can not Bind \n");

  return -1;                     // 소켓을 포트와 연결

}


if(listen(s_socket ,5)==-1){

  printf("listen Fail \n");

  return -1;

}                              // 커널에 개통 요청


while(1){


  len=sizeof(c_addr);

  c_socket=accept(s_socket, (struct sockaddr *) &c_addr, &len);  // 클라이언트로부터 연결 요청을 수신(연결 요청을 s_socket<듣기소켓>이 받으면, 자료 송수신시 사용하는 c_socket<연결소켓>으로 반환)


  n=strlen(buffer);

  write(c_socket,buffer,n); // 클라이언트에게 서비스 제공


  close(c_socket);  // 클라이언트와 연결 종료

}


close(s_socket); // 서버 종료 


}



'웹소켓' 카테고리의 다른 글

hello_client.c  (0) 2018.11.01
소켓 프로그래밍 맛보기  (0) 2018.10.31

1. 클라이언트와 서버


   - 클라이언트 --------------------> 서버 

      // 연결 요청(소켓 API함수를 호출 -> 서버 프로그램에 연결 요청)

 

   - 서버 ------------------->  클라이언트  

     // 문자열 전송(요청 받은 서버는 연결되자마자 문자열을 클라이언트에게 전송)

  

   - 클라이언트 --------------------> 서버 

     // 화면 출력(클라이언트는 전송받은 문자열을 자신의 화면에 출력)



2.  소켓 프로그래밍(Server)  관련 함수

  

 처리과정

관련 함수 

비유 

 소켓을 생성 

socket() 

전화기 준비 

 연결 요청을 수신할 주소 설정

 

회사 대표전화와 내선 번호 준비 

 소켓을 포트에 연결

bind() 

전화기를 준비한 내선에 연결 

 커널에 개통 요청 

listen() 

전화국에 개통 요청 

 연결 요청을 수신 (기다림)

accept() 

전화를 기다리다가 전화가 오면 받음 

 클라이언트에게 서비스를 제공 

read() / write() 

전화 통화 

 클라이언트와의 연결 종료 

close() 

전화 끊기  




3. telnet 연결 


 $ telnet host [포트번호]


 - 포트번호 : 기본값은 23번 

   (그러나 대부분 보안상 23번 포트 연결을 허용안됨. 따라서 지정해줘야함. 보편적으로 9000번이나 9080번을 사용.)

 

- 자기자신

    $telnet 127.0.0.1  또는 $telnet localhost 


'웹소켓' 카테고리의 다른 글

hello_client.c  (0) 2018.11.01
hello_server.c  (0) 2018.10.31

1. IP주소 할당  

vi /etc/sysconfig/network-scripts/ifcfg-eth0

- ONBOOT=yes // 이더넷을 부팅시 자동으로 활성화하기 위해서이다. 

- BOOTPROTO= static

- IPADDR=(지정한 ip주소)  // IP랑 NETMASK, GATEWAY는 직접 작성해서 추가해주기. 

- NETMASK=(지정한 ip주소의 netmask)

- GATEWAY= (지정한 ip주소의 gateway)


=> service network restart 

만약, FAILED가 뜬다면,, reboot 하는 걸로 ,,,ㅎㅎㅎ




2. 이더넷 설정 

vi /etc/udev/rules.d/70-persistent-net.rules

CentOS를 복제 이더넷이 2개라면?? 

위에 있는 eth0을 명령모드에서 '2d'를 누른 뒤 화살표 위부분을 누른다. 그럼 사라진다.

그 이후 eth1로 되어있는 부분을 eth0으로 수정한다.  


밑에 그림처럼 한다. 이후, 

eth0에 있는 ATTR{address}를  vi /etc/sysconfig/network-scripts/ifcfg-eth0 에 있는 주소 HWADDR에 똑같이 적는다.

밑에 사진은 vi /etc/sysconfig/network-scripts/ifcfg-eth0 에 있는 주소 HWADDR에 똑같이 적은 모습이다. 


3. ifconfig => eth0이 안보인다면?


- ifup eth0 입력

혹시나 결과로 찾을 수 없다 막 이런 문구가 나온다면 

reboot을 하고 다시 ifup eth0을 입력해보자!

짜잔 eth0이 생겼다,,ㅎㅎ  기본설정끝,,~

이제 같은 대역대에 있는 pc끼리 통신이 가능한지 ping명령어를 이용해 확인해야한다. 


후,,,,,, 도메인을 사서 서버구축을 위해 dns구축에 힘썼지만,,, 리얼머신으로 해야한다는,,,?ㅎ,,,ㅎ,,ㅎ,,, 김빠지지만,,,ㅎ,ㅎ,ㅎ, 그래서 오늘은 이만,,ㅎㅎ 




  => Web Proxy Tool


1. Proxy 

- 대리, 대리인이라는 사전적 의미.

- 최종 목적지에 프록시 서버를 통해 간접적으로 접근하는 것.

- 클라이언트와 웹 서버간의 요청/응답 패킷을 볼수 있음. 

* 중간에 정보를 변조 후 전달 가능!! 따라서 BURPSUITE는 웹 취약점 점검 시 자주 사용!!*



2. BURPSUITE 다운법 

- Community 다운  -> 계속 다음 -> 다운 끝 -> BURPSUITE 클릭 -> 


-> 이 창이 나오면 Next -> start Burp  (다운 및 시작)



3. BURPSUITE 기본 설정

- BURPSUITE > proxy -> Options -> 사진처럼 설정하기 

// 127.0.0.1 은 루프백 IP이다.  루프백 IP란??? 자기 자신을 가리키기 위한 목적으로 사용되는 IP주소.

IPv4의 루프백 IP는 127.0.0.0 ~ 127.255.255.255 이며, 보통 127.0.0.1 사용. 


- Chrome 기준> Chrome 맞춤설정 및 제어 -> 설정 -> 고급 -> 프록시 설정 열기 -> 연결 -> LAN 설정 

                       -> 사진처럼 주소는 127.0.0.1 포트는 8080 설정. 

// 8080번은 HTTP 대체 포트라고 한다. (원래는 80번)  참고: http://blog.alyac.co.kr/1218 

// BURPSUITE에 적혀있는데로 적으면 된다.


- (다시)BURPSUITE > proxy -> Options -> Intercept Client Requests/ Intercept Server Responses 체크.

// Intercept는 가로막는다는 사전적 의미를 가짐.  

   즉, proxy가 중간에서 Client Requests, Server Responses 보고, 수정 가능. 





4. BURPSUITE 사용법

- Proxy -> Intercept -> Intercept is on 또는 off 로 설정.

- on) 들어오는 패킷을 보고 Forward 또는 Drop 으로 설정.   








그렇게,, 초대장을 구걸하고 구걸하고..

1달째.. 나의 간절함에 하늘이 응답하였다.

라스베가스 서커스단에 있던 또치를 꿈꾸는 야생타조의 IT탐방기 시작..☆

'Soso' 카테고리의 다른 글

KH 실전모의면접  (0) 2019.02.26
도메인 등록  (0) 2018.10.31

+ Recent posts