SQL Injection이란 ?
악의적인 사용자가 보안상의 취약점을 이용하여, 임의의 SQL 문을 주입하고 실행되게 하여 데이터베이스가 비정상적인 동작을 하도록 조작하는 행위
→ user ID =1 검색하면 사용자에 대한 정보 출력
→ 이 코드에서 user_id 는 작은 다옴표 안에 있기 때문에 빈칸에 '입력하면 '''로 받아들여져서 오류발생
👇 테이블에 모든 정보 출력됨
조건문이 항상 참이되도록 함
id =1이라는 것과 상관 없이 모든 id정보 출력됨
→ # 입력하면 오류 발생 안함 : mysql에서 # 이후에 것들은 주석으로 처리하기 때문이다. 다른 sql에서는 //로 주석 이용
db 접근하는 명령어를 통해 조회
참, 거짓 정보만 알고도 정보를 알려주는 기법
존재하는지만 알려줌
1' AND 1=2#
-> 실행하면 사용자 없다고 나옴
네트워크 창에서 시간이 소요되는지에 따라서 사용자인지 확인 가능
프로그램으로 자동으로 실행하는 것
intercept on으로 설정하여 query 변경
id=1&Submit=Submit -> id=1'or'1'=1으로 설정
forward하게 되면 에러 발생함
-> medium에서는 '가 없기 때문에 빼고 적용하기
id=1 or 1=1
정보를 출력해줌!
limit을 통해 출력되는 레코드를 조절하는 코드가 추가됨
1'or'1'=1#으로 실행하면 정보 가져올 수 있음
입력값을 검증해주기