본문 바로가기

해킹-보안

(97)
nmap 포트스캔 고속 스캔 기본 옵션은 1000개의 포트를 스캔하지만 이 옵션으로 자주 사용하는 포트 100개만 스캔한다. nmap -F 127.0.0.0/24 호스트 탐색 호스트의 존재 여부를 확인한다. nmap -sP 127.0.0.0/24 포트 상태 확인 포트가 어떤 이유로 현재 상태(open,close,filter)가 됐는지 알려준다. nmap --reason 127.0.0.1 디버깅 스캔 시도 중 송수신되는 패킷을 모두 확인한다. nmap --packet-trace 127.0.0.1 자주 사용하는 포트순 스캔 nmap-service 파일에 정의된 자주 사용하는 포트를 스캔한다. nmap --top-ports 5 127.0.0.1 nmap --top-ports 10 127.0.0.1 방화벽 우회 스캔 ※ 호스트 ..
웹 보안 헤더 종류 ி X-Frame-Option , , 태그 등의 렌더링 여부를 나타내는데 사용한다. 사용자의 눈에 보이지 않는 영역을 추가하여 사용자는 의도한대로 버튼을 누르지만 실제로는 다른 곳을 클릭하게 만드는 ClickJacking 방지 옵션이다. 헤더 X-Frame-Options : DENY 모든 표시 거부 X-Frame-Options : SAMEORIGIN 동일한 출처만 표시 X-Frame-Options : ALLOW FROM http://a.com a.com에 대해서만 허용 ி X-Content-Type-Option 리소스 다운로드 시 해당 리소스의 MIMETYPE 형식이 일치하지 않으면 차단하는 헤더이다. 자바스크립트를 로딩하려면 JavaScript MIME 형식("text/javascript" 또는 "ap..
Fiddler Customize Rules Ctrl + R ( Fiddler ScriptEditor ) 룰셋 창 Go 메뉴에서 to OnBefore 선택 시 해당 클래스로 이동 사용 가능 클래스와 메서드는 룰셋 창 우측의 클래스 뷰에서 확인 https://www.fiddlerbook.com/fiddler/dev/scriptsamples.asp ி OnBeforeRequest 서버로 요청하기 이전에 호출되는 함수 요청 파라미터를 조작하여 서버에 다른 값을 요청 기본 룰보다 먼저 적용 되도록 함수명 바로 아래부터 작성 파라미터 변조 // 파라미터 변조 함수 정의 static function ReplaceQueryParameter(rq:String, sName: String, sValue: String) { var re = new RegExp( "("..
xss-game level6 xss-game.appspot.com/level6 ி 소스 코드 index.html Line - 44~45 // #뒤에 입력된 DOM String 값을 반환하고 includeGadget 함수의 파라미터로 전달 function getGadgetName() { return window.location.hash.substr(1) || "/static/gadget.js"; } includeGadget(getGadgetName()); Line - 28 // DOM String으로 전달받은 값을 스크립트 src 속성으로 설정한다. scriptEl.src = url; // 결과적으로 아래와 같은 스크립트 문을 생성 후 스크립트 문을 head 에 추가한다.
CSP(Content-Security-Policy) CSP 개요 Mozilla가 개발한 표준으로 XSS, Data Injection, Click Jacking 등의 공격을 방지하기 위한 컨텐츠 기반 보안 정책 SOP(Same Origin Policy)와 비슷하지만 CSP는 웹 사이트 관리자가 규칙 적용 웹 서버는 웹 사이트에서 사용 가능한 CSP 헤더를 브라우저에게 전달, 브라우저는 이를 기반으로 웹 페이지 렌더링 인라인 자바스크립트(태그 내에 자바스크립트 명령어 작성) 실행 금지 설정 가능 특정 웹사이트(origin)에서만 자원을 불러오도록 설정하여 공격자 서버에 요청을 차단 공격자가 웹 사이트에 본래 존재하지 않던 스크립트 삽입하는 것을 방지 CSP 보안 정책을 정의한 상태에서 공격자가 다른 소스의 스크립트를 로딩 시 에러 출력 CSP 사용 헤더 Co..
XSS CheatSheet ி Common Tags test link ி Uncommon Tags // hidden input : only on Firefox (when pressed Alt+Shift+X) ி Custom Tag ி Obfuscation link link Click // base64 YWxlcnQoMSk= // hex &#x61&#x6c&#x65&#x72&#x74&#x28&#x31&#x29 // ascii 97,108,101,114,116,40,49,41 // JJEncode (http://utf-8.jp/public/jjencode.html) $=~[];$={___:++$,$$$$:(![]+"")[$],__$:++$,$_$_:(![]+"")[$],_$_:++$,$_$$:({}+"")[$],$$_$:($[$]+"..
구글 해킹(Google Dorks) 검색 지시자 allintitle - 글 제목에 포함된 단어 검색 allinanchor - 링크 글 안에서 검색 allintext - 글 내용에서 검색 intitle - 페이지 제목에서 검색 intext - 해당 텍스트가 포함된 페이지 검색 inurl - URL에 검색 문자열이 포함된 페이지 검색 site - 특정 사이트 검색 related - 관련 사이트 검색 filetype - 파일 확장자 검색 link - 해당 주소가 링크된 페이지 검색 Rel - 유사한 사이트 검색 numrange - 숫자의 범위를 검색 daterange - 페이지 색인 날짜 검색 cache - 구글이 cache한 페이지 검색 define - 단어 정의 검색 검색 옵션 + - 성격이 비슷한 문자 검색 - - 제외할 검색어 지정 ""..
XSS 화이트리스트 소스코드 클라이언트 단에 자바스크립트 필터링 로직이 구현될 경우 우회 가능성이 존재하므로 아래 코드를 참고하여 서버단에 XSS 화이트리스트 필터링을 구현할 것을 권고한다. // filter str= str.replaceAll("&","&") .replaceAll("#","#") .replaceAll(";",";") .replaceAll("\\\\","\") .replaceAll("",">") .replaceAll("\\(","(") .replaceAll("\\)",")") .replaceAll("'","'") .replaceAll("\"",""") .replaceAll("[$]","$") .replaceAll("[*]","*") .replaceAll("[+]","+") .replaceAll("[|]","|..