전체 글 (81) 썸네일형 리스트형 [SQL Injection] Union Based SQL Injection란? (공격 절차, 실습) Union Based SQL Injection : Union 키워드를 사용해서 원래 서버에서 사용되는 쿼리에 추가 쿼리를 요청해서 추가적인 정보를 얻는 공격 현재 페이지에서 사용되는 테이블의 다른 컬럼에 저장된 데이터나 현재 사용되는 테이블 외의 테이블에 있는 데이터를 가져올 수 있다. Union Based SQLi를 사용하기 위해서는 두 쿼리에서 출력되는 컬럼 수가 같아야 한다. (https://sqltest.net/ 이 사이트에서 간단하게 확인할 수 있다.) [공격 절차] 1. SQLi 포인트 찾기 union sqli가 통하기 위해서는 데이터가 웹 페이지에 출력되어야 한다. 대표적으로 검색 페이지가 있다. 여기서는 id 검색 페이지를 활용할 것이다. (최종 목적은 flag를 획득하는 것이다.) id .. HTTP 상태 코드 (Response Status Code) 200, 300, 400, 500 정리 | 404 에러 코드 상태 메시지 설명 200번대 성공 200 OK 요청 성공 300번대 리다이렉션 301 Moved Permanently 요청한 리소스는 변경된 URL에서 찾음 400번대 클라이언트 오류 403 Forbidden 요청 거부 (클라이언트가 콘텐츠에 접근할 권리를 가지고 있지 않음) 404 Not Found 요청한 리소스가 서버에 없음 500번대 서버 오류 500 Internal Server Error 서버가 요청을 처리하지 못함 503 Service Unavailable 서비스가 불가능한 상태 처음 상태코드를 외웠을 때 시험을 앞두고 벼락치기 하면서 400번대는 내 잘못!!! 500번대는 니 잘못!!! 이러면서 외웠던 기억이 난다ㅋㅋㅋ 가장 흔하게 보는 404 not found는 보통 URL을 잘못 입력.. [SQL Injection] Error Based SQL Injection란? (공격 절차, 실습) Error Based Sql Injection : 데이터베이스 에러 메시지를 활용하여 데이터베이스에 대한 정보를 획득하는 공격 기법 보통 개발자는 개발을 할 때 어떤 코드에 오류가 있는지 확인하기 위해 일부러 에러 메시지가 출력되게 설정한다. 이것이 서버를 운영할 때 그대로 이어지는 경우가 많은데, 공격자는 이 에러 메시지를 악용한다. 에러를 유발하는 SQL 문을 삽입하여 도출되는 에러 메시지를 통해 공격자는 데이터베이스의 구조와 정보를 파악할 수 있다. DB 종류에 따라 다양한 문법과 함수를 활용할 수 있다. [공격 절차] 1. SQL Injection 취약점 찾기 > 조작된 sql문을 삽입했을 때도 데이터가 출력되는지 확인 > 싱글쿼터를 하나 더 넣었을 때 에러 메시지가 출력되는지 확인 2. 에러를 .. SQL Injection 공격이란? (종류, 방어기법, 공격 시나리오) 1. SQL Injection이란? : SQL Injection 공격은 클라이언트 입력값에 임의의 SQL 문을 주입해서 데이터베이스에 저장된 중요한 데이터를 가져오는 공격이다. 난이도가 비교적 쉬운 편이고 공격에 성공할 경우 큰 피해를 입힐 수 있다는 특징이 있다. 인젝션 공격은 OWASP Top10에 항상 상위권에 속해 있고, 주요정보통신기반시설 기술적 취약점 분석 가이드에서도 찾아볼 수 있다. (참고로 OWASP은 악용가능성, 탐지가능성 및 영향에 대해 빈도수가 높고 보안상 영향을 크게 줄 수 있는 10가지 웹 애플리케이션 보안 취약점 목록이다. 3~4년 주기로 발표된다.) 2. 공격 유형 (세세한 공격 방식을 설명하기에는 글이 너무 길어질 것 같아서 여기선 각 공격의 발생 환경 등 대략적인 설명만 .. [php/mysql] 게시판 글 삭제 구현하기 가장 간단한 삭제 페이지다 이제야 비로소 글 작성, 보기, 수정, 삭제 모두 구현이 완료되었다 [delete.php] [php/mysql] 게시판 글 수정 구현하기 글 수정 페이지는 글 작성 페이지와 구현이 비슷하니 참고하면 좋을 듯 하다! [php/mysql] 게시판 글 작성 구현하기 게시글을 저장하기 위한 db의 board 테이블이다. 간단히 인덱스 번호, 작성자 이름, id, 제목, 내용, 작성 날짜만 저장되도록 했다. [blank.js] function ch_blank() { const title = document.getElementById("title"); const studysteadily.tistory.com [modify.php] 게시글 수정 작성자 제목 [php/mysql] 게시판 글 읽기 구현하기 글 읽기 구현은 생각보다 간단했다. 따로 데이터를 처리하는 php 파일이 필요 없고, 기존의 로그인과 회원가입 페이지에서 썼던 css만 조금 수정을 해주었다. 코드는 여기 를 참고했다. [read.php] 작성자 목록 [php/mysql] 게시판 글 작성 구현하기 게시글을 저장하기 위한 board 테이블이다. [write.php] 게시글 작성 작성자 제목 내용 이전 1 ··· 6 7 8 9 10 11 다음