SQL INJECTION(7)
-
[Web Application-모의해킹] SQL Injection : 시큐어 코딩(Prepared Statement) #3-4
시큐어 코딩 : Prepared Statement 1) 개요 Project:Web Site 웹 사이트 로그인 페이지 user_id 파라미터에서 발견된 SQL Injection 취약점을 방지하기 위하여 대응 방안 중 하나인 Prepared Statement 기능을 구현하고 적용시켜 실제로 SQL Injection 공격을 방지할 수 있는지 확인한다. 2) 방법 Prepared Statement 기능은 사용자 입력 값과 마찬가지로 Client Side에서 구현을 하게 되면 공격자에 의해 변조될 가능성이 존재하므로 보안을 위해 Server Side에서 구현을 한다. 3) 시큐어 코딩 [1] login_proc.php 페이지 전문12345678910111213141516171819202122232425..
2024.04.27 -
[Web Application-모의해킹] SQL Injection : 시큐어 코딩(사용자 입력 값 검증) #3-2
시큐어 코딩 : 사용자 입력 값 검증 1) 개요 Project:Web Site 웹 사이트 로그인 페이지 user_id 파라미터에서 발견된 SQL Injection 취약점을 방지하기 위하여 대응 방안 중 하나인 사용자 입력 값 검증 로직을 구현하고 적용시켜 실제로 SQL Injection 공격을 방지할 수 있는지 확인한다. 2) 방법 사용자 입력 값 검증은 Client Side에서 구현을 하게 되면 공격자에 의해 변조될 가능성이 존재하므로 보안을 위해 Server Side에서 구현을 한다. 또한 검증 필터링 방식은 블랙 리스트 기반 필터링 대신 보안적인 측면에서 더 강한 화이트 리스트 기반 필터링 방식을 사용한다. 적용 대상이 로그인 페이지의 user_id 파라미터이므로 알파벳 대소문자 및 숫자만..
2024.04.26 -
[Web Application-모의해킹] SQL Injection : 대응 방안 #3-1
대응 방안 (feat.주요통신기반시설) 1) 점검 방법 SQL Injection 취약점을 점검하는 방법은 다음과 같다. 사용자 입력 값에 특수문자나 임의의 SQL 쿼리를 삽입하여 DB 에러 페이지가 반환되는지 확인사용자 입력 값에 임의의 SQL 참, 거짓 쿼리를 삽입하여 참, 거짓 쿼리에 따라 반환되는 페이지가 다른지 확인로그인 페이지에 참이 되는 쿼리를 전달하여 로그인되는지 확인 2) 보안설정방법 SQL Injection 취약점에 대한 대응 방안은 다음과 같다. SQL 쿼리에 사용되는 문자열의 유효성 검증 로직 구현시스템에서 제공하는 에러 메시지 및 DBMS에서 제공하는 에러 코드가 노출되지 않도록 예외 처리Prepared Statement 3) 대표적인 대응 방안 사용자 입력 값 검증 로직 ..
2024.04.25 -
[Web Hacking] SQL Injection : 여러 Case 및 대응 방안 #5
SQL Injection 공격이 가능하려면? SQL Injection 공격은 주로 사용자가 입력을 할 수 있는 입력창에서 발생한다. 그러나 입력창이 아니더라도 SQL Injection 공격은 DB와 관련된 곳이라면 어디든지 발생할 수 있다는 것을 인지해야 한다. SQL Injection 공격이란 공격자의 입맛에 맞게 SQL 질의문을 삽입함으로써 공격대상의 DB에 존재하는 데이터를 추출하는 것으로 목표로 한다. 그렇다는 것은 SQL Injection 공격은 DB와 연결되어 있으며 SQL 질의문이 사용되는 위치라면 어디든지 가능하다는 의미이다. *SQL Injection 공격이 발생 가능한 조건 DB와 연결되어있어야 한다. SQL 질의문을 사용하여야 한다. SQL Injection 공격 시 참과 거짓에 결과..
2023.12.16 -
[Web Hacking] SQL Injection : Blind SQL Injection #4
Blind SQL Injection Blind SQL Injection 공격은 SQL Injection 공격 중 한 종류로서 질의문의 결과가 참 혹은 거짓으로 출력이 되는 경우에 사용 가능하다. 사실 Blind SQL Injection는 다른 SQL Injection 공격을 사용할 수 없는 상황일 때 최후의 방법으로 사용이 된다. 공격의 이름 대로 눈먼 장님같이 문자 하나하나 대조하면서 공격을 진행한다. Blind SQL Injection Payload Blind SQL Injection Payload는 다음과 같은 순서로 작성해 나간다. normaltic' and '1'='1 normaltic' and ('1'='1') and '1'='1 normaltic' and ((select 'test')='te..
2023.12.15 -
[Web Hacking] SQL Injection : Union Based SQL Injection #2
Union Based SQL Injection Union Based SQL Injection 공격은 SQL Injection 공격 중 한 종류로서 SQL 문법 중 하나인 Union 문법을 사용하여 게시판 같이 SQL 질의문 결과가 출력되는 곳에서 사용 가능한 공격이다. 이를 통해 공격대상의 DB 데이터를 추출하는 공격을 진행하여 피해를 입힐 수 있다. 그렇다면 먼저 Union 문법에 대해 간단히 알아보자. 1) Union Union이란 2개 이상의 select문을 하나의 select문으로 합치는 문법이다. 이때 생기는 중복된 값들은 하나만 남기고 모두 제거한다. Union 문법을 쓰기 위해서는 여러 조건들이 존재하며 이를 지켜야 사용가능하다. 조건들은 다음과 같다. 컬럼명이 동일해야 한다. 컬럼별 데이터..
2023.12.14