취약 웹 개발

단계별 취약

CodeBeginer 2023. 3. 30. 09:25

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

 

게시판 검색