해킹-보안 (97) 썸네일형 리스트형 XSS(Cross-Site Scripting) 테스트 앱 본 게시글은 크로스 사이트 스크립팅을 테스트할 수 있는 웹 애플리케이션이다. - 사용법 - 1. 입력창 유형을 선택한다. Textbox - 한 줄로만 실행 가능, Enter 키로 Ok 버튼을 요청 할 수 있어서 스크립트를 빠르게 실행하려고 할 때 유용하다.Textarea - 여러 줄 실행 가능, 게시글과 같은 넓은 입력 화면을 제공하여 스크립트 작성이 편리하다. 2. XSS 코드 입력 창에 테스트할 스크립트를 삽입 후 OK 버튼을 요청한다. 3. Output html 코드에서 삽입된 스크립트가 실행되고 Output Code에서 입력된 스크립트가 text 형식으로 출력된다. 1. Output form에서 html 폼을 변경할 수 있다. 2. #1은 script 태그를 이용한 방식, #2-3은 이벤트 핸들러.. SuNiNaTaS WEB 23번 풀이 - Hard Blind Sql Injection 필터링 문자를 우회하여 admin 계정의 비밀번호를 알아내야 한다. 테스트 계정으로 guest/guest가 존재하며 비밀번호 컬럼 명은 pw이다. 로그인 반응 로그인 실패 - False 로그인 성공 - OK admin 혹은 OK guest 필터링 탐지 - No hack 필터링 우회 "admin"을 필터링하므로 문자열 연결 연산자(+)로 우회한다. 먼저 guest 계정을 이용해 연결 연산자가 제대로 동작하는지 확인한다. guest 계정으로 로그인되는 것을 확인했으며 동일한 방법으로 admin 계정의 로그인 여부를 확인한다. 문자열 연결 연산자로 로그인 우회 가능 여부를 확인했으므로 admin 계정의 비밀번호 길이를 확인한다. ad'+'min' and len(pw)=1-- -- ... 중략 ad'+'min'.. SuNiNaTaS WEB 22번 풀이 - Blind Sql Injection http://suninatas.com/challenge/web22/web22.asp 필터링 문자를 우회하여 admin 계정의 비밀번호를 알아내야 한다. 테스트 계정으로 guest/guest가 존재하며 비밀번호 컬럼 명은 pw이다. 로그인 반응 로그인 실패 - False 로그인 성공 - OK admin 혹은 OK guest 필터링 탐지 - No hack 비밀번호 길이 확인 admin' and len(pw)=1 -- admin' and len(pw)=2 -- -- ... 중략 admin' and len(pw)=10 -- 비밀번호 확인 admin' and substring(pw,1,1)= 'a'-- admin' and substring(pw,1,1)= 'b'-- admin' and substring(pw,2,.. Fiddler 환경 설정 및 단축키 피들러 web debugger 설치 : https://www.telerik.com/download/fiddler 피들러 사용 가이드 : https://horae.tistory.com/attachment/cfile23.uf@25066F4F57946A9602DB51.pdf Intruder 추가 위 zip 압축 해제 후 BurplikeInspector.dll 파일을 ..Fiddler\Scripts 폴더로 이동시킨다. 피들러에서 대상 패킷에 우클릭 > Send to Intruder21 > [Target] > 대상 파라미터 드래그 후 Add Tag [payloads] > 파라미터에 입력될 Signature 삽입 > 응답 결과에서 찾을 문자열 검색 SearchFor Requset Threads(요청 속도 조정) >.. 자바스크립트 정규식 비밀번호 유효성 검사 주요정보통신기반시설 기술적 취약점 분석 평가 기준 약한 문자열 강도 회원 가입 시 안전한 패스워드 규칙이 적용되지 않아 취약한 패스워드로 회원 가입 가능한 경우 공격자가 추측을 통한 대입 공격을 시도하여 사용자의 패스워드를 추출할 수 있다. ➽ 규정 예시 Spring XSS Java Filter 등록하기 일반적인 웹 환경에서는 클라이언트 요청이 DispatcherServlet로 전송되지만 Java Filter 등록 후 ServletFilter를 먼저 통과하게 된다. 따라서 Java Filter를 이용해 서버에 들어오는 모든 요청 값을 ServletFilter에서 필터링 할 수 있다. 먼저 필터를 등록하기 위한 2개의 Java Class와 web.xml 파일을 설정해야 한다. ① CrossScriptingFilter 필터 파일 package com.sec.secprj.controller; import java.io.BufferedReader; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; i.. 톰캣 에러 페이지 처리 및 버전 정보 삭제 톰캣 서버 디렉토리 / conf / web.xml 파일에 아래 내용을 추가한다. 400 /error/400.html 404 /error/404.html 500 /error/500.html location 설정에서 파일 경로(/)를 꼭 명시하고 location에 해당하는 경로에 에러페이지 파일을 만든다. 클라이언트가 서버에게 "127.0.0.1/|!@#~" 와 같이 해석 불가능한 요청을 보내면 400 Bad Request - " 유효한 문자들은 RFC 7230과 RFC 3986에 정의되어 있습니다. " 라는 메시지를 출력하는데 해당 오류는 지정한 에러페이지로 리다이렉트가 안될 수 있다. 따라서 server.xml 파일에 아래처럼 relaxedQueryChars에 요청 허용할 문자들을 지정하면 해당 에러가 .. 톰캣 8.5 사설 SSL 인증서 설치 Centos7 톰캣 8.5 버전에 SSL 인증서를 설치한다. ① 개인키 생성 # openssl genrsa -des3 -out private.pem 2048 ② 인증 요청서(CSR) 파일 생성 # openssl req -new -key private.pem -out private.csr ③ rootCA 기본키 생성 # openssl genrsa -aes256 -out rootCA.pem 2048 ④ rootCA CSR 생성 # openssl req -x509 -new -nodes -key rootCA.pem -days 3650 -out rootCA.csr ⑤ 인증서(CRT) 생성 # openssl x509 -req -in private.csr -CA rootCA.csr -CAkey rootCA.pem -.. 1 2 3 4 5 6 7 8 ··· 13