윈도우 WSL2를 이용해 우분투를 설치하고 APM을 세팅해보자 WSL 이란? APM 이란? Apache 세팅 PHP 세팅 MySQL 세팅
DB 없이 우분투로 간단한 로그인 페이지를 만들어보자 아파치 웹서버를 활용할 예정이니 /var/www/html에 페이지를 만든다 목표 > id가 admin, password가 admin1234이면 로그인 성공이 되는 페이지 만들기 1. 아이디/비밀번호를 입력받는 페
오늘은 데이터 베이스에 대해서 알아보겠습니다~!! 💡 데이터베이스란? > 데이터를 저장하는 곳 * 데이터베이스는 왜 필요할까요?* 예를 들어, 회원가입과 로그인을 하는 상황을 생각해볼까요? 회원가입을 할 때 우리는 우리의 아이디, 비밀번호, 메일, 전화번호
PHP를 활용해 학생 이름을 입력하면 해당 학생의 점수를 출력하는 페이지를 만들어 보겠습니다 1️⃣ 데이터베이스 생성 : CREATE DATABASE 데이터베이스를 생성하는 명령은 CREATE DATABASE 입니다 학생의 데이터들을 담을 공간이니 student
이번에는 DB 연동을 통해 간단한 회원가입 페이지를 만들어보겠습니다 1️⃣ 데이터베이스 생성 우선 회원가입 및 로그인과 관련된 데이터들을 저장할 데이터 베이스를 만들어야 합니다 저는 login 이라는 데이터베이스를 만들겠습니다 한글도 처리할 수 있도록 UTF8
DB에 저장된 계정 정보를 활용해 로그인을 하는 페이지를 만들어 보겠습니다 1️⃣ 아이디, 비밀번호 입력 받기 우선 사용자로부터 아이디와 비밀번호를 입력받을 폼을 만들어야 합니다 저는 입력 받은 아이디와 비밀번호를 같은 페이지 내에서 처리할 예정이며, URL로 계
오늘은 로그인 로직에 대해 알아보도록 하겠습니다 🔎 로그인의 식별과 인증 로그인이란 무엇일까요? 로그인은 본인 확인 작업입니다 그렇다면 본인 확인을 하기 위해 어떤 과정이 필요할까요? 먼저, 이 사람이 누구인지 알아야 합니다 이것을 식별 이라고 합니다 그
웹서버는 웹페이지 파일을 한 번 주면 끝이라고 했지만, 실제로 우리가 웹서비스를 사용할 때는 로그인 정보가 그대로 유지되는 경우를 많이 만나게 됩니다 웹서버는 어떻게 로그인을 유지시켜주는 것일까요? 🔎 쿠키 쿠키는 로그인 성공 시 서버가 쿠키에 사용자의 정보를
첫번째 문제는 사이트에 접속했을 때 아무 데이터도 보이지 않습니다그렇다면 버프스위트로 이 페이지의 request와 response 데이터를 살펴보겠습니다response에 주석으로 <!-- header User-Agent에 segfaultDevice 라고 넣어서 보
💡 SQL Injection 👉 SQL Injection은 말 그대로 취약한 SQL문에 인증 우회와 같은 일을 수행할 수 있는 SQL문을 끼워넣는 공격입니다 예를 들어 알아보겠습니다 회원 아이디를 조회하는 페이지가 있다고 합시다 그렇다면 WAS에는 SELEC
우선, 로그인이 어떻게 진행되는 지 관찰하기 위해 주어진 계정으로 로그인을 해 봅니다POST 방식으로 로그인이 진행되고 있습니다로그인 완료 후 이동한 페이지에 대한 request를 확인했더니, cookie가 있는 것을 확인했습니다쿠키에 아이디가 적혀있는 것을 보니, 이
SQL injection은 데이터를 사용하는 곳에서 작성된 SQL문에 다른 SQL문을 주입해 원하는 결과를 얻어내는 공격입니다 SQL injection에는 여러가지 방법이 있는데요, 이번엔 UNION을 활용한 SQL Injection을 알아보겠습니다 그럼 먼저 U
1️⃣ SQL Injection 1 1. 문제 탐색하기 (SQL 형태 구상) 문제는 아래와 같은 페이지에서 비밀 데이터를 찾아내는 것입니다 페이지를 관찰해보니 아이디를 검색해 해당 아이디의 정보를 보는 곳 같네요 저장된 데이터를 출력해야하니 DB를 활용하는 페이
오늘은 Error Based SQLi가 무엇인지 알아보겠습니다 > ‼️ * Error Based SQLi * SQL 오류가 발생했을 때 화면에 SQL 오류가 출력 되는 경우, 이 에러 메세지에 SQL문 실행 결과가 포함되는 것을 이용해 SQL 질의문을 삽입하여 데이
오늘은 Blind SQL Injection에 대해 알아보겠습니다 Blind SQL Injection은 SQL문의 실행 결과가 참, 거짓으로 나올 때 사용하는 SQL Injection 공격입니다 실행 결과가 참, 거짓으로 나오는 경우는 로그인이나 아이디 중복 체크 등
1️⃣ SQLi 포인트 찾기 먼저 문제를 확인해볼까요? flag를 찾아야 하고, 우리에게 계정이 하나 주어졌네요 페이지에 접속해보도록 하겠습니다 평범한 로그인 페이지 같습니다 혹시 몰라 버프 스위트로 request, response를 확인해봤지만 별다른 특별한
1️⃣ SQLi 포인트 찾기 문제는 다음과 같습니다 계정이 하나 주어지고, 이걸 이용해 flag를 찾아야 하는 것 같네요 먼저 주어진 계정으로 로그인 해 request나 response에 특별한 점은 없는지 관찰합니다 딱히 특별한 점 없이 잘 로그인 되었습니다
문제는 아래와 같습니다계정이 하나 주어졌네요주어진 계정으로 로그인 해보며 response와 request에 특이한 점이 있는지 살펴보겠습니다별다른 특이점 없이 잘 로그인 되었습니다혹시 Error based sqli가 가능한지 알아보기 위해 normaltic' 를 아이디
1️⃣5️⃣6️⃣7️⃣SQLi 포인트 찾기 문제 주어진 계정으로 로그인 normaltic' 으로 로그인 시도 normaltic' and '1'='1 로 로그인 시도  이 실행되도록 하였습니다 alert(1) 은 해당 취약점에 alert(1) 이 아닌 다른 악성 스크립트를
🔎 DOM이란?Document Object Model의 약자로, HTML 문서를 객체로 표현한 것입니다javascript와 같은 언어는 DOM 객체를 통해서 HTML 문서에 접근합니다HTML에는 부모 요소, 자식 요소가 있습니다즉, 계층 구조를 이루고 있는데요, 그래
HTML의 예약 문자로 지정되어 있는 특수문자들을 & 로 시작하고 ; 로 끝나는 텍스트로 표현하는 방법예를 들어, < 는 HTML에서 태그를 여는 문자로 예약되어 있기 때문에, 이것을 HTML Entity로 표현하지 않으면 뒤의 텍스트를 태그로 인식합니다입력 값
XSS는 클라이언트 측에서 악성 스크립트를 실행시키는 공격입니다 이런 XSS의 대응 방안에는 무엇이 있을까요? 혹시 필터링을 떠올리지는 않으셨나요? 정말 필터링이 XSS의 대응 방안이 될 수 있는지 알아보도록 하겠습니다 > #### 🔎 필터링 : 특정 조건에
1️⃣ Page redirect 페이지를 이동시켜주는 스크립트 location.href = "주소"; location.replace("주소"); 2️⃣ 주소창 변조 history.pushState(null,null,경로); 3️⃣ DOM 객체 접근 docum
1️⃣ XSS 취약점 찾기 먼저 문제를 확인하겠습니다 마이페이지에 XSS 공격 취약점이 있다고 하네요 그럼 마이페이지에 접속해보도록 하겠습니다 아이디가 placeholder 로 입력되는 부분에 XSS 취약점 가능성이 있어보이니 테스트 해보도록 하겠습니다 ![]
1️⃣ XSS 취약점 찾기 문제를 확인해보겠습니다 중요한 정보는 마이페이지에 있지만, XSS 취약점이 다른 곳에 있을 것 같네요 iframe 을 이용해 중요 정보를 탈취해야 할 것 같습니다 우선 XSS 취약점 위치를 찾아보겠습니다 마이페이지가 아닌 다른 페이지
admin 계정의 마이페이지 정보란에 flag가 있다고 하네요그럼 먼저 마이페이지에 XSS 취약점이 있는지 확인합니다마이페이지에서는 XSS 취약점이 존재할 수 있는 부분이 user 파라미터인데, 이 부분에 취약점이 없는 것을 확인했습니다게시글의 제목과 내용에 <'
🔎 CSRF란? 사용자가 의도하지 않은 요청을 하도록 요청을 위조하는 공격 ex) 비밀번호를 1234로 변경하는 request를 보내게 만들기 ✅ CSRF vs XSS ⭐ XSS 클라이언트 측에서 즉, 브라우저에서 악성 스크립트(HTML, CSS, 자바스크립트