기초 다지기 7

netcat 명령어 사용하기

Netcat(넷캣) 이란? TCP, UDP 프로토콜을 사용하는 네트워크 연결에서 데이터를 읽고 쓰는 유틸리티 프로그램이다. 일반적으로 Unix의 cat 명령어와 비슷한 사용법을 가지고 있다. (cat은 파일에 쓰거나 읽듯이 nc는 network connection에 읽거나 쓴다.) 자주 사용하는 nc명령어 옵션 -l(listen mod) : 연결을 할 수 있게 계속 요청을 듣고 있게 해주는 옵션 -v(verbose) : 상세 정보를 보여주는 옵션 -p(port) : 포트번호 nc명령어 사용 예시 (Kali -> Ubuntu 접속) nc -lvp 7777 : 7777번 포트로 연결을 기다림 nc명령어를 이용하여 칼리에서 우분투 서버로 접속할 수 있게 해준다. 우분투 IP주소(192.168.10.129)와 ..

기초 다지기 2021.07.28

.htaccess 파일이란 ?

.htaccess : "hypertext access"의 약자로, 파일명 앞의 점은 숨김 파일이란 뜻이다. htaccess 파일을 사용하면 디렉토리별로 설정을 변경할 수 있다. 한 특정 디렉토리에 위치하며, 모든 하위 디렉토리를 포함한 해당 디렉토리에 영향을 미친다. Apache와 같은 웹 서버에서 클라이언트(웹 브라우저)에 접근할 때, 어떤 식으로 서비스를 제공할지 apace2.conf와 sites-enabled 가상 호스트 설정 파일을 통해 결정한다. 이 때, 서비스를 제공할 파일이 위치한 곳의 디렉토리 경로를 지정하게 되는데, sites-enabled에 있는 파일에서 블럭을 통해 이 디렉토리에 접근을 허용할지 말지, 어떻게 보여줄지 등을 정하게 된다. .htaccess파일은 sites-enabled..

기초 다지기 2020.03.11

PHP addslashes(), magic_quotes_gpc

webhacking.kr문제에서 자주 등장하는 addslashes함수 ㅎ addslashes() : 데이터베이스 쿼리에서 필드값으로 저장하기 전에 사용되는 함수이다. 만일 문자열에 작은따옴표('), 큰따옴표("), 백슬래시(\), NULL 문자(%00)가 포함되어 있다면, 이 문자들 앞에 백슬래시(\)를 붙여 특수 문자가 순수한 하나의 문자로 인식되도록 해준다. 만약 데이터베이스에 저장하기 전에 addslahses함수를 사용하지 않는다면, 데이터베이스의 필드값에 저장되는 문자열 가운데 특수 문자가 포함될 경우 그 문자가 하나의 일반적인 문자가 아닌 특수 문자로 인식되어 오류를 일으키거나 잘못된 결과를 초래할 수 있다. 예를 들어, I'm studying English를 쿼리로 전송하게 되면 I'm의 작은..

기초 다지기 2020.02.25

해시함수

해시함수란 ? 임의의 길이의 데이터를 입력받아 항상 일정한 길이의 비트열로 변환시켜주는 함수 해시함수 종류 1) MD5 : 주로 무결성 검사에 사용되는 128비트의 암호화 해시함수 ->128비트의 해시값 출력 (16진수로 32바이트) 2) SHA : 서로 관련된 암호학적 해시함수들의 모임. SHA 함수군에 속하는 최초의 함수는 공식적으로 SHA라고 불리지만, 나중에 설계된 함수들과 구별하기 위하여 SHA-0이라고도 불림. SHA는 하나인 MD4에 기반을 두고 있으며, MD5의 취약성을 개선 및 대처하기 위해 설계된 함수 ->160비트의 해시값 출력 (16진수로 40바이트) 3) SHA-1 : 기존의 알고리즘에서 암호학적 보안을 감소시키는 결함들을 수정한 함수 ->160비트의 해시값 출력 (16진수로 40..

기초 다지기 2020.02.02

2진수, 8진수, 16진수

비트 (bit) : 0 또는 1 바이트 (byte) : 8개 단위의 비트(bit)를 하나의 그룹으로 사용, 나타낼 수 있는 수는 총 2^8(256)개로 0~255까지의 값 -> 1바이트 = 8비트 2진수 : 0과 1로 구성된 수로, 1개의 비트로 표현 가능 8진수 : 0~7로 구성된 수로, 3개의 비트로 표현 가능 10진수 : 우리가 사용하는 숫자 16진수 : 0~15로 구성된 수로, 4개의 비트로 표현 가능 10진수 2진수 8진수 16진수 10 0000 1010 012 0xa 11 0000 1011 013 0xb 12 0000 1100 014 0xc 13 0000 1101 015 0xd 14 0000 1110 016 0xe 15 0000 1111 017 0xf 16 0001 0000 020 0x10

기초 다지기 2020.02.02

URL encoding을 해야하는 이유

URL encoding은 문자나 특수문자를 웹 서버와 브라우저에서 보편적으로 허용되는 형식으로 변화하는 메커니즘으로, URL에 쓰인 텍스트를 모든 브라우저에서 똑바로 전송하기 위해 존재하는 것이다. URL은 아스키코드를 이용해 인터넷을 통해서만 전송할 수 있다. 그러나 URL에 아스키코드외의 문자가 포함될 수 있기 때문에 유효한 아스키코드 형식으로 변환해야 한다. 예를 들어, GET 메소드로 id=?hong, pw=&zone의 데이터를 보내기 위해서는 http://example.com/?id=%3Fhong&pw=%26zone 으로 전송되어야 서버에서도 정상적으로 데이터를 해석하여 처리할 수 있다. URL encoding 방식은 입력된 문자를 아스키코드표(ASCII table)에서 매칭되는 hex 값 앞에..

기초 다지기 2020.01.26

정규식 알아두기

까먹기전에 정규식 정리해두기 ! (내가 공부하면서 헷갈렸던 것들 위주ㅎㅎ) . : 임의의 문자 ? : 앞에 쓰인 문자가 있거나 없거나 (2가지 경우 존재) ex) a?c -> a,ac + : 앞에 쓰인 문자 1번 이상 반복 ex) a+c -> ac,aac,aaaac .. * : 앞에 쓰인 문자 0번 이상 반복 ex) a*c -> c,ac,aaac .. [ ] : 안에 있는 문자 중 하나, or과 같은 의미 ex) [abc] = [a-c] = 'a' or 'b' or 'c' ( ) : 그룹으로 묶음 ex) (A|BC)(12|34)\2\1 = 'A'나 'BC' 중 하나 + '12'나 '34' 중 하나 + 두번째 그룹(12|34)에 썼던 문자 + 첫번째 그룹(A|BC)에 썼던 문자 -> A1212A \ : 백..

기초 다지기 2020.01.26