최대 1 분 소요

  • Error Based SQL Injection을 연습하기 위해 DB 에러를 보여주는 로그인 페이지를 만들었다.

조건

  • SQL 질의문 결과가 화면에 안보임. (로그인, 아이디 중복 체크)
  • DB Error 메세지가 화면에 출력되어야 한다.

SQLi 취약점 서버 환경


  • 웹서버 : 우분투 Ubuntu 22.04.2 LTS
  • DB 서버 : Oracle DB oracle-database-xe-21c

과정


  1. 서버에서 어떤 질의문을 사용하고 있는지 추측하기.
    select xxx from xxx where id='x' ....
    

    Pasted image 20230427144207

  2. 의도적으로 오류 발생 시킨다음 오류 내용 확인 한다. SQL 오류가 출력되는 것을 확인할 수 있다.
    입력 = x'
    

    Pasted image 20230427144608

  3. Error Based SQL Injection Function 동작하는지 확인하기. test 단어가 오류에 출력되는 것을 확인할 수 있다.

    Pasted image 20230427145024
  4. 사용자 이름 구하기. C##DBFORPROB 라는 것을 알 수 있다.

    Pasted image 20230427145221
  5. Table 이름 구하기. MEMBERS 테이블이 존재하는 것을 확인할 수 있다.

    Pasted image 20230427150937
  6. column 이름 구하기.

    Pasted image 20230427151541
    Pasted image 20230427151801
  7. 데이터 추출하기.

    Pasted image 20230427160531
  • 추출한 정보 확인
    Pasted image 20230427152642
    Pasted image 20230427161753

참고사이트


댓글남기기