Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- blind sql injection
- JWT
- php
- lord of sql injection
- 게시판 만들기
- lord of sqli
- JS
- XSS
- css
- 웹개발
- 쿠키
- union sql injection
- MySQL
- CTF
- file upload
- Python
- csrf
- cookie 탈취
- sql injection
- 로그인
- 모의해킹
- 세션
- Los
- Cross Site Request Forgery
- 과제
- 로그인페이지
- Error based sql injection
- sql injection point
- Reflected Xss
- cors
Archives
- Today
- Total
Almon Dev
모의해킹 공부 (5주차 정리) 본문
5주 차 강의
1개월 정리
웹서버
WebServer : 정적인 페이지를 전송
WebApplicationServer(WAS) : 동적으로 페이지를 생성
DataBase : 데이터를 저장해 두는 공간
Browser : 웹서버로부터 전송받은 데이터를 화면에 출력해 줌
로그인
식별 : 많은 데이터중에서 하나를 골라내는 것
인증 : 본인이 맞는지 확인하는 것
쿠키 : 브라우저에 데이터를 저장하는 방식
세션 : 서버에 데이터를 저장하는 방식
세션 ID : 어떤 세션을 사용하는 유저인지 구별하는 식별정보
버프스위트
웹 프록시 툴 : 서버와 클라이언트 사이에서 주고받는 데이터를 읽거나 변경가능
SQL Injection
사용자가 입력한 값을 검증하지 않고 sql쿼리문에 넣을 때 발생하는 취약점입니다.
// 로그인 쿼리문
$sql = "select * from users where id = '$input_id' and password = '$pass'";
아이디를 입력하는 창에 admin' or '1' = '1을 입력하면 비밀번호에 무엇을 넣든 로그인에 성공합니다.
$sql = "select * from users where id = 'admin' or '1' = '1' and password = '$pass'";
=> sql에서 and는 or보다 우선순위가 높기 때문에 and가 먼저 연산이 처리됩니다.
1 > '1' = '1' and password = '$pass'
2 > id = 'admin' or false
id = 'admin'인 경우 true
인증을 우회하는 방법
Jump
회원가입 동의 페이지 -> 본인인증 페이지 -> 회원가입 페이지로 이동될 때
회원가입 동의페이지 -> 회원가입 페이지로 뛰어넘을 수 있습니다.
=> 인증이 완료되었는지 서버에서 다시 확인할 필요가 있습니다.
Brute force
아이디나 비밀번호를 모를 때 무차별적으로 대입하는 방식입니다.
=> 인증에 여러 번 실패하면 제한시간을 걸거나 잠금을 걸어야 합니다.
완전 탐색 : 가능한 모든 경우의 수를 넣어보기
ex) 집 비밀번호를 0000부터 9999까지 눌러보기
사전 대입 : 사람들이 많이 사용하는 방식을 고른 뒤에 넣어보기
ex) 비밀번호에 휴대폰 뒷자리, 생년월일, 이름, 별명
과제
1. 복습, 정리
2. ctf문제풀기
3. 문제풀이 쓰기
4. 웹개발 부족한 부분 채우기
'모의해킹 > 모의해킹' 카테고리의 다른 글
ctf 풀이 (Login Bypass 4) (0) | 2024.11.18 |
---|---|
ctf 풀이 (Login Bypass 3) (0) | 2024.11.16 |
자바스크립트로 키로거 만들기 (2) | 2024.11.07 |
모의해킹 공부 (4주차 강의 정리) (2) | 2024.11.07 |
JWT(JSON Web Token)에 대한 공부 (1) | 2024.11.02 |