반응형 WEB HACKING56 SQL Injection 대응 방법 지금까지 SQL Injection의 개념과 다양한 공격 방법에 대해 알아보았다. SQL Injection 취약점은 데이터 유출로 이어지므로, 이를 막기 위한 대응 방안이 필요하다. Q) 왜 발생하는가? SQL injection이 가능한 이유는 결국 사용자가 입력한 값을 그대로 SQL 구문에 포함하기 때문이다. 따라서 SQL Injection에 대응하기 위해서는 사용자의 입력 값을 한번 검사할 필요가 있다. ① Prepared Statement prepared statement 혹은 parameterized statement는 SQL 구문을 먼저 컴파일한 이후에 사용자의 입력값을 바인딩하는 방식을 사용한다. 특정 값을 지정하지 않은 SQL 구문을 하나의 템플릿으로 만들어둔 후, 실행할 때 변수에 값을 지정.. 2021. 11. 12. Php로 웹 개발하기 : 게시판(4) - Create 이번에는 글 작성 기능을 만들어보자! 우선 제목과 내용을 적고 제출할 수 있는 form 하나를 만들자. input text과 textarea로 값을 받아서 board_create.php로 전달한다. 기존에 만든 게시판 데이터를 관리하는 board 테이블은 내용을 넣을 컬럼이 없으니 content 컬럼을 추가해주자. ALTER table `board` ADD `content` varchar(10000) NOT NULL; update board set content = 'hello' where username = 'normaltic'; ALTER로 컬럼을 추가해준 후, update 방식으로 content를 추가해준다. 이제 제목과 내용을 title과 content에 추가해야 하는데, 그 외에 username.. 2021. 11. 11. Php로 웹 개발하기 : 게시판(3) - Option Search 지금의 게시판은 사용자의 ID만으로 검색이 가능한데, 사용자의 ID, 글 제목, 글 내용, 날짜로도 검색이 가능하게 만들어보았다. 우선 form 안에 select & option으로 선택지 4개를 만들어준다. 이름 제목 내용 날짜 알아서 선택할 수 있는 기능을 잘 만들어주었다. select를 form안에 넣었기 때문에 검색 버튼을 누르면 POST에 의해 option 값이 같이 넘어가게 된다. 이는 select에 부여한 name 값으로 확인이 가능하다. echo $_POST['option_val']; 전에 만들어둔 board 함수 안에서 값을 출력해보면 선택한 항목의 value값을 잘 가져온 것을 확인할 수 있다. $find = $_POST['board_result']; $column = $_POST['o.. 2021. 11. 10. Php로 웹 개발하기 : 게시판(2) - Search 게시판 만들기(1)에서는 test DB를 생성하고 데이터를 불러오는 것까지 마무리했다. 이번에는 초기 화면에서 모든 데이터를 확인하고, 검색에 따라 내용을 바꾸는 것까지 마무리 지은 후, 대충 만들어두었던 CSS를 다듬어 보았다. ① 검색 기능 우선 코드는 기존의 게시판 만들기(1)을 토대로 진행하되, form안의 input 들의 name을 다음과 같이 수정하였다. table 코드도 그대로 사용하였지만 tbody 부분을 다음과 같이 수정하였다. 코드를 설명하자면, array_key_exitst로 'board_search'라는 이름을 가진 input값이 POST를 통해 넘어왔는지 확인을 해준다. 즉, search 버튼이 눌렸는지 체크해주는 것이다. 버튼이 눌리지 않았다면 초기 상태이므로 else에서 DB에.. 2021. 11. 9. Burp Suite 설치 및 사용법(Ubuntu) Burp Suite은 웹 프록시 프로그램인데, 웹 프록시에 대한 설명은 [모의해킹_이론] - 웹 서버 구조와 동작 포스팅을 참고하면 된다. 설치 환경은 Ubuntu 18.04 LTS이며, 이번 포스팅에서는 우분투에 Burp Sutie을 설치하고 사용하는 방법에 대해 알아볼 것이다. ① 설치 Burp Suite은 Java Application 이기 때문에 자바 JDK를 먼저 설치해주었다. sudo apt-get install openjdk-8-jre 설치가 완료되었다면 다음 링크로 들어가서 바로 다운로드 하면 된다. https://portswigger.net/burp/releases/professional-community-2021-9-1?requestededition=community 다운로드한 파일이 .. 2021. 11. 6. SQL Injection : Blind SQL Injection 앞선 포스팅에서는 Union SQLi와 Error Based SQLi에 대해 알아보았다. 일반적으로 SQL Query문의 결과가 화면에 표시된다면(게시판) Union SQL Injection을 사용할 수 있지만, 그 이외의 경우에는 대부분 Blind SQL Injection을 사용할 수밖에 없다. 이번 포스팅에서는 Blind SQL Injection의 개념과 활용 방법에 대해 알아보자. ① Blind SQL Injection이란? Blind SQL Injection은 서버가 쿼리에 대한 결과가 참인지 거짓인지에 따라 다른 응답을 주는 점을 이용하여 정보를 얻어내는 공격이다. ② Blind SQL Injection의 공격 Step Blind SQLi도 Step 별로 공격의 흐름을 알아볼 것인데, 어떤 쿼리.. 2021. 11. 5. 이전 1 ··· 4 5 6 7 8 9 10 다음