본문 바로가기
728x90
반응형

크로스사이트스크립트3

보안약점 진단 #5 01 public void do(HttpServletRequest request, HttpServletResponse response) throws Throwable { 02 String data = ""; 03 { 04 StringTokenizer tokenizer = new StringTokenizer(request.getQueryString(), "&"); 05 while (tokenizer.hasMoreTokens()) { 06 String token = tokenizer.nextToken(); 07 if (token.startsWith("id=")) { 08 data = token.substring(3); 09 break; 10 } 11 } 12 } 13 14 if (data != null) {.. 2020. 7. 12.
보안약점 진단 #2 01 public void do(HttpServletRequest request, HttpServletResponse response) throws Throwable { 02 String data = ""; 03 { 04 Connection connection = null; 05 PreparedStatement preparedStatement = null; 06 ResultSet resultSet = null; 07 try { 08 connection = IO.getDBConnection(); 09 preparedStatement = connection.prepareStatement("select name from users where id=0"); 10 resultSet = preparedStateme.. 2020. 7. 12.
크로스사이트 스크립트 크로스사이트 스크립트 공격자가 전달한 스크립트 코드가 사용자(희생자)의 브라우저를 통해서 실행되는 것 → 브라우저 또는 PC의 정보를 탈취 → 가짜 페이지를 생성해서 사용자 입력을 유도 후 입력한 정보를 탈취 → 희생자 PC의 제어권을 탈취 ⇒ BeEF [방어기법] 입력값에 실행 가능한 스크립트 코드 포함 여부를 필터링 후 사용 → 서블릿 필터, 인터셉터, 컨트롤러(Validator) 출력값에 실행 가능한 스크립트 코드 포함 여부를 필터링 후 사용 ⇒ 안전한 문자열로 대체 - HTML 인코딩 - TagLib 사용 ${fn:escapeXml(...)} → 컨트롤러, 뷰 #1 반사 XSS (Reflective XSS) 입력값이 (실행 가능한 스크립트 코드 포함 여부를 확인하지 않고) 출력으로 사용되는 경우 .. 2019. 10. 1.
728x90
반응형