본문 바로가기

전체 글

(226)
[10주차] 해킹 스터디 정리 - File Upload 공격 ** 모의해킹 워라벨 -> 정보보안팀 모의해킹 팀. 보안컨설팅. IT -- File Upload What : 공격자가 임의의 파일을 업로드 할 수 있는 공격 -> 웹 쉘. -> 서버 장악. 웹 쉘이라는 건 사실 한 줄로도 만들 수 있음 ** Point ** 1. 우리가 웹 서버에서 실행할 수 있는 파일 2. 그걸 실행할 수 있어야함. (가장 중요) -> 업로드된 파일의 위치를 알아야 함. 만약 mal.php 라는 파일이 있다면? 웹 브라우저로 우리가 올린 파일을 요청하면 됨. 그럼 was에서 php 파일을 실행하고 우리(요청자)에게 전해주게 됨 웹 쉘을 띄웠을 때 가장 먼저 대부분 어떤 일을 할까? 대부분 소스코드를 탈취함 ** 소스코드 탈취. -> DB를 탈취 한다는 말과 동일 > 왜냐면 DB의 계정 ..
[javascript] 배열 내장 함수 - push, splice, slice, pop, shift, unshift 웹컴파일러는 IDEONE.COM을 사용했습니다. 거의 모든 현존 언어를 바로바로 실행하고 결과를 볼 수 있어 좋은 사이트입니다. 배열 내장 함수를 테스트 하기 위해 간단한 요소 5개짜리 배열을 생성합니다. 1. push push 내장함수는 배열의 끝에 하나 이상의 요소를 추가하고, 리턴값으로 제일 최근 길이를 반환한다. push는 원본 배열을 바꿀 수 있는 함수이다. 터미널에 push함수로 array2 변수에 저장합니다. array와 array2 둘 다 찍어보니 array는 배열 끝단에 제가 추가한 문자열에 추가되고 array2는 6을 반환합니다. 2. splice splice는 배열의 기존 요소를 삭제 또는 교체하거나 추가하여 배열을 변경합니다. 원본 배열을 바꾸고, 이 때 삭제시킨 요소를 다시 반환합..
해킹 기법 - Hash Cracking 케빈 미트닉 > 사회공학기법의 달인 전화 해킹. * 보안! 돈 주고 사는 프로그램, 솔루션이 아니다. rsh -> ssh rlogin R 서비스 . ( Remote ) 홈디렉토리. .rhosts. IP주소 JSZ : IRC IP 스푸핑으로 인증을 다 뚫어버릴 수 있음 공격 원리 TCP Session Hijacking > 클라이언트 pc는 syn 대답을 못하게 마비를 시켜버리고, 공격 pc로 서버에 syn을 날리면 서버가 클라이언트 pc에 synack를 보내고 다시 공격 pc가 ack를 날려서 완성시킨다. (클라이언트 pc는 syn응답을 하지 못하는 마비상태이므로) * TCP / UDP 데이터를 보내는 방법의 차이 - TCP : 데이터 잘 보내는 것 - UDP : 막 보내는 것 * TCP 연결 과정 3 W..
PHP에서 다른 파일 포함하기 - include, require 웹 서버를 열고 사이트를 작성하다보면 오류가 나거나 수정이 필요할 때가 있습니다. 그럴 때, php파일 수가 적으면 다행이지만, 파일 수가 많고 고쳐야 할 변수의 수가 쏟아진다면 정말 멘붕이 아닐 수 없습니다... 그럴 때 사이트를 작성하면서 DB연결이라던지, 통용되는 변수들을 PHP 파일에 모아놓고 다른 파일에 포함하는 식으로 프로젝트를 작성해가면 PHP 파일 하나만을 수정하면 해결되는 경우가 많습니다. 사용되는 함수는 다음과 같습니다. include include_once require require_once test를 위해 quest.php 파일과 require.php파일을 만들어줍니다. require.php에는 Hi! 라는 문자열을 $name 이라는 변수에 저장합니다. include는 파일이 없어..
[Virtualbox 포트포워딩] 내 웹 서버 다른 컴퓨터로 접속하기 포트포워딩이란? 외부 접속을 위해서는 외부의 기기가 내부에 있는 컴퓨터나 서버가 연결된 공유기를 통과해야 합니다. 공유기는 방화벽 역할을 하기 때문에 내부 컴퓨터에 접근이 가능하도록 하려면 특정 포트를 열어줘야 합니다. 외부의 기기에는 고정된 IP만 전달하고 외부 기기가 접근할 수 있도록 내부의 공유기 관리자에서 설정하는 과정이 포트포워딩입니다. 우선 가상머신 Ubuntu의 터미널을 엽니다. 포트포워딩을 위해선 가상 머신의 IP주소를 알아야 하는데 우선, net-tools라는 것을 깔아야 합니다. sudo apt install net-tools 그 후, ifconfig 명령어를 입력하면 ip를 확인할 수 있다. 그 후, Virtualbox에서 해당 가상머신을 누르고 설정을 누릅니다 네트워크 탭에 들어갑니..
[9주차] 게시판 구현 #7 - File Upload 기능 만들기 이번에는 File Upload 기능을 구현해보겠습니다. 해킹에 있어 File Upload 라는 공격이 있는데, 차후에 이 공격을 기반으로 한 웹 쉘을 이용해 제가 만든 웹 서버를 탈취해볼 계획입니다. 우선, 데이터베이스에 File 컬럼을 추가해줍니다. 여태까진 터미널에서 데이터베이스에 컬럼을 추가하거나 다양한 작업을 했지만, 이번에는 phpmyadmin을 한번 사용해보겠습니다. localhost/phpmyadmin로 들어가면 접속할 수 있습니다. 원하는 테이블로 이동합니다. 스크롤을 내리면 몇 개의 컬럼을 추가할지, 어디에 추가할지 선택할 수 있습니다. 실행 버튼을 누릅니다. 그럼 이렇게 이름과 종류를 선택할 수 있습니다. varchar(100)으로 설정해주고 NOT NULL을 위해 NULL 체크를 풀어..
GitHub 첫 이용해보기 - 프로젝트 Commit 하는 법 프로젝트를 작성해나가다 보면 다른 컴퓨터에서 편하게 그 저장 시점까지 받아서 다시 작성하고싶은데, 항상 어딘가 넣어다니긴 그렇고 프로젝트 파일이다 보니 일일히 클라우드에 올리는 것도 번거롭다. 그런데 이런 생각을 개발자들이라면 다 해봤을 것이다. 그런 생각에서 GitHub은 아주 유용한 도구가 될 수 있다. 우선, GitHub.com에 들어가 가입해준다. Sign up for GitHub을 누르면 이제 가입할 수 있는 창이 나옵니다. 하나하나 작성하다보면 Create 버튼이 나옵니다. 몇 가지 인증 절차를 거치면 바로 start repository를 할 수 있게 창이 나온다. 그럼 이제 터미널을 열어 프로젝트가 있는 곳으로 이동해줍니다. 그 후, git init 명령어를 통해 git을 실행시켜 줍니다. ..
[9주차] 해킹 스터디 정리 - CSRF Token, SSRF, File Upload 공격 CSRF 공격 Remind > 요청이 서버에 날라간다. -WHERE > 모든 요청 -> 컨설턴트 주관 -> "비밀번호 변경" -> 게시판 글을 작성 CSRF (1) GET method > URL > 로그인 한 다음에 볼 수 있는 페이지 (2) POST method > 무조건 XSS 공격 포인트를 찾아야 함 -> 같은 도메인에서. 왜 꼭 같은 도메인?! -> 세션을 이용하기 위해서! 예전에는 공격자 사이트에 접속만 해도 모든 입력 정보를 받을 수 있었다. 최근에는 좀 더 똑똑해져서 도메인 별로 쿠키를 다르게 뿌려준다. (3) Referrer Bypass -> meta (4) CSRF Token -> 요청을 위조할 수 있다. -> XSS 공격이 있다면 Bypass 가능. 게시판이 위 코드를 복붙해서 원하는 ..