ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [JS, PHP, MYSQL] 로그인, 로그인 우회 - 2.1
    Web - Security/Login 2023. 5. 4. 12:32

     

    로그인을 하면서 공백이 있으면 로그인이 안되도록 만들어 주었다

     

    로그인 페이지

    간단하게 id, pw 만을 데이터로 가지고 있는 테이블을 생성하였다

     

    로그인 페이지를 제작하였다

    php코드는 없지만 문제가 없기에 위와 같이 만들었다

     

    로그인 페이지에서 아이디와 비밀번호에 입력된 값을 uid, pw 변수에 대입해 주고 공백을 검사한다

    이후 공백이 없다면 데이터 베이스에 해당 정보가 있는지 조회를 하고 있다면 로그인 없다면 로그인페이지로 돌아가도록 해 주었다

     

    데이터베이스 연결 코드와 로그인 페이지다

    간단하게 로그인이 되는지 확인하기 위함이여서 로그인완료 페이지에는 별다른 기능이 없다

     

     

     

    로그인 테스트

    공백으로 로그인을 시도해보니 위와 같이 로그인에 실패하였다

     

    잘못된 값을 넣어봤다

     

    로그인에 실패했다

     

    정상적인 값으로 다시 도전해보았다

    위와 같이 로그인에 성공하였고 정상적으로 페이지가 이동이 되었다

     

     

     

    login_2  -  로그인 우회 및 취약점

     

    CASE 1 - SQL Injection

    normaltic 계정만 존재하지만 위와 같은 SQL Injection을 이용하여 로그인에 성공했다

     

     

    CASE 2 - 로그인 페이지로 바로 이동

    url에 로그인 성공 페이지를 바로 입력하면 위와 같이 로그인 과정을 뛰어넘고 바로 이동하게 된다

     

    CASE 3 - Brute Force ( 취약점 )

    이 로그인 페이지에서는 로그인 시도 횟수를 확인하지 않고 있다

    아이디가 normaltic 이고 비밀번호가 1234 이므로 사전대입공격으로 충분히 로그인이 가능하다

     

     

    대응방안

     

    CASE 1 - SQL Injection

    SQL Injection에 이용이 되는 #과 같은 주석기능을 제거해 줘야 한다

    또한 아이디값과 비밀번호를 따로따로 검증하는 방법도 있다

     

    CASE 2 - 로그인 페이지로 바로 이동

    로그인 페이지에서는 login_2check.php에서 확인되었다는 응답이 있어야 이동이 가능하도록 해 주어야 한다

     

    CASE 3 - Brute Force

    현재 쿠키와 세션 같은 기능을 추가해 주지 않았지만
    추가를 해 주었다면 로그인 시도 횟수를 확인하여 Brute Force 공격을 차단하도록 한다

    728x90
Designed by Tistory.