단계별 취약
SQLI
level 1 = 문자열 합치기 식 쿼리 (select * from table where id = + USERID) - Statement사용
level 2 = 블랙 리스트 방식
level 3 = PreparedStatement 사용 order by 사용 부분만 Statement
level 3 = 화이트 리스트 방식? (안될거같음)
level max = PreparedStatement 사용 (order by 사용하는 쿼리에는 Statement을 사용하는 대신 숫자 입력만)
XSS
level 1 = 특수문자 아무것도 안막음
level 2 = <, >, script 등 막음
level max = 그냥 htmlentity로 일반 문자열로 출력
FILE 업로드
level 1 = 확장자 안막음
level 2 = 블랙리스트 방식 (php 등 못올리게)
level 3 = 화이트리스트 방식 (jpg 등 만 올리게 - 고유 데이터 확인X)
level max = 화이트리스트 방식 (jpg 등 만 올리게 - 고유 데이터 확인)
FILE 다운로드
실제 구현
https://dohunny.tistory.com/14
[WEB] SQL Injection & 필터링 우회 방법
Basic SQL Injection DML(Data Manipulation Language) Select: 데이터를 조회하는 구문 (Ex: Login Form) SELECT uid, title, boardcontent FROM boards \ WHERE boardcontent like '%abc%' LIMIT 5 # "like" != "=" / 와일드카드 사용 시 like 사용 필
dohunny.tistory.com
SQL Injection
로그인
level 1 = 식별 인증 동시 + statement query (dogyun' and 1=1 --)
level 2 = 식별 인증 분리 + statement query (' union select 'a' from customer--)
level 3 = 식별 인증 분리 + 블랙 리스트 방식
& = 자바에서 안먹힘
0b100111100000101010110011101001001100111110011101000001010011100010110011001000101100001110101001000001001111100001100111100000100011010100101001111100110110000010000111010101101001110101001001111100110110001011010010101101101101
level max = 식별 인증 분리 + preparedStatement
게시판 검색