본문 바로가기

WebHacking

SSRF, XXE 취약점 간단 개념 정리 [SSRF 취약점] what - 서버측의 요청을 변조하여 공격자가 원하는 형태의 응답을 반환해주는 공격이다. why - 서버에서 웹 요청에 대해 내/외부 서비스와 상호작용을 하기 때문에 발생한다. where - 웹 사이트의 정보를 읽어오거나 링크 삽입을 통해 이미지를 호출하는 곳 scenario - 웹 사이트의 정보를 읽어오는 페이지에서 내부 주소를 입력했을 경우 해당 정보가 노출될 수 있다. defense - 파라미터에 입력된 주소가 올바른 주소 또는 신뢰할만한 주소인지 재검증을 해야한다 - 화이트리스트 방식으로 도메인 주소를 필터링 한다. [XXE 취약점] what - XML 타입의 데이터 요청을 전송할 때 XML의 외부 엔티티를 처리할 수 있게 설정이 되어있는 경우 발생하는 취약점 why - 입력받.. 더보기
SQL Injection 공백 문자 필터링 우회 SQL Injection 문제를 풀면서 검색하고 알아낸 공백 문자 필터링 우회 방법을 까먹지 않고 종종 사용할 수 있게 적어놓겠다. [공백 문자 필터링 우회] 1) 개행문자 \n - 커서를 다음 줄로 이동시키는 개행문자 - url encoding : %0a 2) Tab \t - 커서를 탭 하나만큼 이동시키는 문자 - url encoding : %09 3) 캐리지 리턴 \r - 커서를 줄의 맨 왼쪽으로 이동시키는 문자 - url encoding : %0d 4) 주석 /**/ 5) 괄호 () 6) 더하기 + 7) %0b, %0c, %a0 위 방법 모두 실패할 경우 사용 - %0b : vertical tab - %0c : form feed ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 추가로 다른 우회방법도 차.. 더보기
WebHacking - (11)마이페이지 만들기 로그인 후에 내 정보를 확인할 수 있는 마이페이지를 만들어보자 우선 마이페이지를 확인할려면 로그인이 되어있는 상태여야 하고, 보여지는 정보는 간단하게 계정명, 비밀번호 변경, 이름이다. [mypage.php] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 .text{ text-align:center; padding-top:20px; color:#000000 } 메인 페이지 마이페이지 계정명 : 더보기
WebHacking - (10)게시판 만들기_기간 검색 기능 게시판 검색을 할 때 지정 기간의 게시물만 나오는 기능을 추가하자. 우선적으로 제목, 작성자, 내용 카테고리를 구분해서 완성해 놓은 상태이다. 그래서 코드 몇 줄만 추가하면 되는 작업이라 그리 어렵진 않았다. [index.php] 1 2 3 4 5 6 7 8 9 10 제목 작성자 내용 검색 Colored by Color Scripter cs fontawesome 을 통해 달력 이미지를 가져오고, input type을 date로 설정하면 날짜를 선택할 수 있게 페이지에 나타난다. 카테고리와 날짜를 선택해서 검색버튼을 누르면 search.php로 해당 정보들이 전송된다. [search.php] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 query($sql); $to.. 더보기
WebHacking - (9)게시판 만들기_좋아요 기능 기본적인 게시판 출력은 완성된 상태이고, 좋아요 기능을 추가하자 개인적으로 느끼기에 게시판 만들기에서 제일 어려웠었던 기능이였다. (코드 이해하는 것도 약간 오래걸린듯?) 좋아요 기능 추가는 구글링으로 배열로 구성한 블로그를 참고해 만들었다. 해당 테이블은 게시판 테이블로 기존에 있던 칼럼들에서 likes, likes_count 칼럼을 추가했다. 좋아요 기능은 게시물을 보는 페이지에 설정해줘야 하니 view.php에 소스코드를 추가해줬다. 개인마다 테이블 칼럼명이 같아도 의미하는 바가 다를 수 있으니 좋아요 기능을 만드는 코드 위주로 설명을 하자면, number 칼럼은 게시글 번호 / id 칼럼은 유저명을 의미한다. [view.php] 1 2 3 4 5 6 Colored by Color Scripter .. 더보기
WebHacking - (1.1)CentOS7 MySQL 초기 root 비밀번호 설정 오류 노트북을 포맷하게 되면서 다시 웹 서버를 구축하게 됐는데 CentOS7 에서 MySQL 설치 후에 root 계정으로 접속이 안되는 일이 발생했다. 원래는 초기 비밀번호는 없는 걸로 알고 있는데 아래와 같은 오류 메세지가 뜬다. Access denied for user 'root'@'localhost' (using password: NO) 내가 알고있는 경우로는 mysql -u root -p 후 비밀번호 입력창이 나오면 그냥 엔터를 누르면 DB로 접속이 된다. 검색해보니 가끔가다 설치 하고나서 초기 비밀번호로 접속이 안되는 사람들이 꽤 있어서 따라해 봤는데 해도 안되는 것들이 많아서 삽질 좀 오래한거 같다. 해결 방법은 아래와 같다. 1. vi /etc/my.cnf 로 파일을 열어 아래 그림과 같이 [my.. 더보기
WebHacking - (8)XSS 기본 개념 정리 XSS 란? Cross Site Scripting 의 줄임말로 크로스 사이트 스크립팅이라고 한다. (모의해킹 현업쪽에선 크사 or 크사사 라고 한다.) XSS 공격은 공격자가 게시판 등에 악성 스크립트를 삽입하고, 게시판을 이용하는 피해자가 해당 게시물을 열람할 경우 악성 스크립트가 클라이언트 측(웹 브라우저) 에서 동작하여 피해를 입히는 공격이다. 공격자는 악성 스크립트를 이용해 피해자의 세션 정보를 탈취하거나 피싱 사이트로의 유도, 웹 사이트 변조등의 피해를 입힐 수 있다. XSS 종류 1. Stored XSS Stored XSS는 공격자가 게시판에 악성 스크립트가 삽입된 게시글을 작성하고, 해당 게시물을 피해자가 열람하게 되면 악성 스크립트가 피해자의 웹 브라우저에서 동작해 피해를 입히는 기법이다... 더보기
WebHacking - (7)우편번호 DB 만들기 (MySQL) 주소 검색 기능을 구현하기 위해서 일단 MySQL DB에 우편번호를 Import 시켜보자. https://www.epost.go.kr/search/zipcode/cmzcd002k01.jsp 우체국 홈페이지에 들어가서 지역별 DB를 다운받는다. 해당 파일을 다운받은 후에 압축을 풀어준다. (용량이 꽤 크다..) 파일 하나를 열어보면 칼럼명을 "|" 기준으로 나와있고 아래로 주소들이 기입되어 있다. 우편번호|시도|시도영문|시군구|시군구영문|읍면|읍면영문|도로명코드|도로명|도로명영문|지하여부|건물번호본번|건물번호부번|건물관리번호|다량배달처명|시군구용건물명|법정동코드|법정동명|리명|행정동명|산여부|지번본번|읍면동일련번호|지번부번|구우편번호|우편번호일련번호 아래 코드를 이용해서 MySQL에 zipcode 테이블을.. 더보기