다운로드 후 필수 세팅에 대해 알려주겠다.
프록시 > 세팅 > 리퀘스트 인터셉션 룰, 리스폰스 인터셉션 룰
이 두 가지를 내가 원하는 도메인과 IP를 추가해두면 훨씬 좋다.
여러가지 도메인과 IP를 원한다면 '|' 이것을 작성하여 추가하면 된다.
그리고 세팅을 저장할때는 톱니바퀴를 누르거나 프로젝트 > 세이브 > 파일명으로 하면 된다.
SQL + INJECTION[주입] = 구조화된 질의 언어를 주입하는 공격.
SQL - 구조화된 질의 언어 및 RDBS[관계형 데이터베이스에서 데이터를 관리하기 위해 만들어진 언어]
SQL 인젝션은 웹 해킹에서 가장 인기가 많고 유명한 종목이다.
웹사이트, 게시판 등은 너무 포괄적인 의미이다.
'사용자가 입력하는 값'을 통해서 공격이 이뤄진다.
즉 사용자가 입력할 수 있는 모든 곳은 공격 대상이 된다.
※ 사용자의 입력값 = 파라미터라고 불린다.
Ex) 게시글을 작성 후 상세보기를 눌렀을 때 http://abc.com/boardView.do?idx=[1~10000]
boardView.do에서 게시글이 생성될때마다 자동으로 숫자가 늘어나며 증가된다.
이러한 동적 자원을 활용하여 해킹이 가능하다.
이러한 값은 모두 데이터베이스에 저장이 되기때문이다.
웹 뿐만 아니라 데이터베이스를 저장하는 모든 실행 프로그램에서도 SQL 인젝션이 가능하다.
다만 공격자의 관점으로 봤을 때, 공격자의 대부분은 기업의 개인정보 즉 회원 DB를 통해 이윤을 창출하기 때문에 웹 해킹에 주로 사용되고 있다.
사이트 내 PHP나 Java Script 백앤드가 보안이 낮게 설계가 되어있다면 난이도가 쉽겠지만 환경에 따라 난이도가 달라진다.
SQL에 대한 기본 문법에 대한 이해도도 필요로 한다.
웹 애플리케이션에서 생성[INSERT], 읽기[SELECT], 수정[UPDATE], 삭제[DELETE] 기능을 제공한다. 이것을 CRUD라고 한다.
INSERT - 게시글 등록, 댓글 등록, 다양한 등록 절차
SELECT - 게시글 클릭, 검색, 조회 등
UPDATE - 수정
DELETE - 삭제
실제 공격시에는 대부분 SELECT 기능에서 이뤄진다.
다른 3가지 기능에서도 이뤄지지만, 해킹을 할때 명령문을 잘못쓰면 서버 내 데이터베이스가 뒤죽박죽이 되므로 안전하게 SELECT에서 작업을 대부분 한다.
Ex) SELECT idx, title, date FROM board Where tb_name='notice' ORDER BY idx desc
이 문장에서 모든 곳이 공격 포인트가 될 수 있다.