320x100

 

<인증 우회> - 로그인 우회

인증 : 내가 나라는 것이 맞다라는 것을 증명하는 것

  • 로그인인증, 핸드폰인증, 핀번호 인증

버프수트 → 웹 프록시 툴

Web : 정적리소스를 전달

WAS : 동적리소스를 전달

DB : 데이터를 보관

 

Client - Web - WAS - DB

* WAS 속에 SQL 언어를 넣어놔야 DB와 이야기를 한다

 

Web Browser

Front End(클라이언트 단)

HTML, CSS, Javascript(script 안에서 실행하는 자바)

Back end (서버 단)

ASP, JSP, PHP, Python, Javascript

 

쿠키 : 데이터에 넣어서 웹서버에 보내고, 클라이언트가 누구인지 인식하게 만든다 (포스트잇 역할)

→ 웹서버가 내가 어드민 이라고 보내면, 관리자로 인식하고 관련 정보를 전달하는 문제 발생

→ 그래서 나온 것이 “세션”

 

세션: 세션 정보를 서버에 저장을 하는데 식별을 위하여 만든 것은 세션ID 이다.

 

로그인 인증

ID 식별

  • 특징: 중복되는 데이터가 없어야 한다. → 아이디를 기준으로 정보를 찾는 것
  • $sql = select password from member where id = ‘normaltic’ —> 비밀번호 출력
  • $db_pass = sqlExecute($sql);
  • if($db_pass == $user_input) {로그인 성공 } else { 로그인실패}
  • $sql = select password from member where id = ‘normaltic’ and password=’$user_input’ —> 아이디와 비밀번호가 같으면 로그인이 되는 형태

SQL Injection → SQL 문법을 비정상적으로 삽입하여 공격

정상: select * from member where id = ‘normaltic’

비정상 : select * from member where id = ‘normaltic’’

웹서버는 SQL구문을 미리 준비하고 있다.

 

→ select * from member where id = ‘____’

normaltic ‘ and ‘1’=’1 을 넣으면?

1=1 은 항상 true 이기 때문에 통과된다.

 

 

 

normaltic’ #

#은 SQL 언어에서 주석

→ 코드 안에 주석을 넣으면 이것은 코드가 아니다. 라고 표시 # 뒤에 있는 내용은 무시가 됨

 

 

 

 

 

리피터 활용

응답코드가 300 으로 나오면 rediect 이기에 location 이 있음

 

DB 데이터를 가져오는 문법을 생각해야함

파라미터만 보고 아래와 같이 SQL 구문을 활용해서 응답이 오겠구나! 라고 생각을 할 줄 알아야 한다.

 

select from member where id=’____’

SQL 인젝션이 일어나는지 확인이 필요하다.

doldol’ and ‘1’=’1

 

정상적인 아이디와 비밀번호에 테스트 → doldol’ and ‘1’=’1 를 했는데 로그인이 정상적으로 들어간다?

그럼 and 뒤에 부분이 무시가 된 것 = 즉, sql injection 이 일어난다.

 

 

가정을 하고 SQL Injection 을 진행 해본다.

  1. 식별 인증 동시
    1. select from member where id=’’ and pass=’

정상적인 아이디와 비밀번호를 입력하면 302 코드가 나오는 것을 확인

즉, redirect 되고 있다는 것,

현 상황에서 SQL Injection을 활용해야함

 

 

 

 

식별 인증 동시 로그인 로직이라고 가정

select from member where id=’’ and pass=’

→ normaltic1' or '1'='1

select * from member where id=’normaltic1' or '1'='1’ and pass=’random

 

 

 

인증 우회 종류

  • Brute Force : 무작위 대입 공격
  • 사전 대입 공격 : 쓸만한 비밀번호를 다 입력해본다.
  • Jump

파일 이름을 보고 다음 파일이름을 유추해서 넘어가기

A - B - C

  1. 약관 동의
  2. 본인인증
  3. 아이디, 비밀번호 … 입력

 

5주차 과제

  1. 오늘 수업 복습
  2. 인증 우회 실습 문제 풀기

만든 로그인 페이지에서 테스트를 하고 → 풀어보고

풀었으면 write up 문제풀이 작성 (왜 여기에 넣었는지)

  1. 웹 개발

로그인 페이지, 회원가입 페이지 만들어오기

게시판 만들기 (로그인하고 사용하는 게시판)

로그인 페이지를 우회하는건 직접 만들고 실험하면서 풀면 도움이 더 될 것이다.

키로거 …

300x250

+ Recent posts