sql injection
blind
- 응답값에 따라서 필드 개수 찾아낸 후 DB 명이나 필드명 같은 것들도 하나하나 찾아낼 수 있다.
- DB 명이 CHAT이라고 하면 INSTR 같은 함수 사용해서 찾는다.
- ex)
SELECT sleep(2) from dual where instr(DATABASE(), ‘c’);
- 결과 반환속도가 다르다 → 결과 나오면 2초 뒤에 응답
- SQL map으로 빠르게 처리 가능
해결방안
- WAS에서 접속 권한 필요한 곳 제외하면 막아두기
- PreparedStatement 사용해서 변수 입력부분과 sql 구문 분할
- DB 에러메세지는 사용자에게 노출 안되게 하기
XSS
- Reflected css
- Stored css
- csrf
해결방안
- 문자열 치환
- white list로 사용자가 입력한 값을 검사해 XSS 방어가 가능합니다.