목록전체 글 (303)
의미없는 블로그
history.js 파일setDefaultURL: function(def) { defaultHash = def; def = getHash(); if (browser.ie) { window['_ie_firstload'] = true; var sourceToSet = historyFrameSourcePrefix + def; var func = function() { getHistoryFrame().src = sourceToSet; .... getHistoryFrame()이 가리키는 프레임의 src 속성에 sourceToSet 값을 넣고 있다sourceToSet 값이 악의적인 JavaScript 코드를 포함하고 있으면 XSS(DOM) 가능하다 근데 var sourceToSet = history..
http 로 요청하면 취약으로 잡는건데 login.js 파일에서 http.request 때문에 잡혔다http.request({ url: "pages/framework/data/LoginUser.json", before: (iMapper, oMapper, header) => { header.set({ "userId": this.LoginUser.getData(0, "userId"), "pswd": this.LoginUser.getData(0, "pswd") }); ... }); SAST 도구는 http.request()에서 URL이 명확하지 않을 경우, 기본적으로 HTTP를 사용한다고 판단할 수 있음아래처럼 명확하게 https 가 확인되면 안잡힐거임http.reque..
최신 브라우저에서 지원되지 않는 경우 거의 없음. 대부분의 브라우저에서는 X-Frame-Options 헤더가 제대로 작동 X-Frame-Options는 이미 거의 모든 최신 브라우저에서 지원한다고 했는데 그럼 별로의 헤더 설정 안해도돼?맞아요! 최신 브라우저만 사용하는 환경이라면, X-Frame-Options를 설정할 필요는 없을 수 있습니다. 이유는:최신 브라우저의 지원: 최신 브라우저(Chrome, Firefox, Edge 등)는 CSP의 frame-ancestors 디렉티브를 통해 Clickjacking을 방어할 수 있기 때문에, 별도로 X-Frame-Options 헤더를 설정할 필요가 없습니다.CSP의 frame-ancestors 디렉티브: 이 디렉티브는 X-Frame-Options보다 더 유연하..
ICMP 타입 중에- Timestamp : 네트워크 시간 정보 교환하는 목적으로 사용- Echo Request / Reply : Ping 할 때 사용 여기서 Timestamp 쓰지 말라고 잡은건데왜 쓰지 말라 하냐? 머.. 시스템이 Timestamp 패킷 응답하면그걸 분석해서 시스템 OS(ex. Windows)를 식별할 수 있다.. Timestamp 응답을 통해 서버의 정확한 시간 정보를 수집해서이를 기반으로 TCP 시퀀스 예측 공격을 할 수 있다.. 딱히 중요한 문제는 아님그래서 중요도도 Low 임 Timestamp 비활성화 하는 방법은방화벽에서 ICMP Timestamp 를 막으면 됨Timestamp Request 가 Type 13번이라서 이것만 막으면 됨 Request 만 막아도 요청이 차단되어 R..
Cache-Control: no-store캐시 금지모든 요청마다 항상 원본 서버에서 데이터를 가져오도록브라우저나 중간 캐시(proxy, CDN 등) 에서 가져오지 않도록이전 요청의 데이터를 재사용 하지 않음 이미지, css, js 같은 정적 리소스에는 사용하지 않는것이 좋음불필요한 네트워크 요청이 증가하여 성능이 저하될 수 있음 로그인 페이지 같은곳에, 보안이 중요한 특정 페이지에 설정 Pragma: no-cacheHTTP/1.0 에서 쓰는것HTTP/1.1 은 Cache-Control: no-store 로 내부망 서비스는 우리만 접속하니까Pragma: no-cache 안해도 되자나 apache (httpd.conf or .htaccess) Header set Cache-Control "no-sto..
불필요한 헤더 제거X-Powered-By: Servlet/3.0 해당 서버가 Java Servlet 3.0을 사용하고 있다는 의미 Java Servlet API 3.0 버전Java EE 6 (J2EE) 기반비동기 서블릿 지원 (AsyncContext)파일 업로드 API 개선웹 애플리케이션이 더 유연한 방식으로 동작 가능이 서버는 Java Servlet 3.0을 지원하는 Java 기반 웹 애플리케이션 서버(Tomcat, JBoss, WebSphere 등)에서 실행 중일 가능성이 높습니다. 공격자가 X-Powered-By: Servlet/3.0 헤더를 통해 웹 애플리케이션 서버의 버전을 유추할 수 있음.예: Apache Tomcat 7.x (Servlet 3.0 지원) 사용 가능성특정 버전에서 알려진 보안 ..
internal.example.com 과 admin.example.com 이 쿠키를 공유할 필요가 없다면 SameSite=Strict 쿠키가 동일한 사이트(도메인)에서 발생한 요청에서만 전송됨다른 도메인 링크 클릭, 리다이렉션 등에는 전송되지 않음example.com/dashboard > example.com/profile 이동 시 쿠키 유지됨other-site.com > 링크 클릭 > example.com 이동 시 쿠키 전송 X SameSite=Laxexample.com/dashboard > example.com/profile 이동 시 쿠키 유지됨other-site.com > 링크 클릭 > example.com 이동 시 쿠키 전송됨 other-site.com 에서 POST form 으로 example...
example.com/Viewer.aspx?path=");+alert(1);'>// 에서 스크립트 실행됨//");'> 여가지고 근데 이거 CSP 로 막을 수 있다고 함 Content-Security-Policy 헤더를 script-src 'self' 라고 하면현재 도메인 에서만 스크립트를 로드할 수 있음 같은 도메인에서 제공하는 .js 파일만 실행 가능함 이런거 이건 안됨이거 써야하면 Content-Security-Policy: script-src 'self' https://cdn.example.com; 이렇게 해야함 그리고 이런 구문도 차단됨이거 써야하면 Content-Security-Policy: script-src 'self' 'unsafe-inline'; 해야하는데그럼 또 xss 가능성이 ..