본문 바로가기
XSS report할 때, alert(1)을 사용하지 말아야 하는 이유 ※ 영문영상에서 정보를 따와서 오역이 있을 수도 있습니다. 지적 시 성실히 수정하도록 하겠습니다. ※ alert(document.domain) alert(window.origin) 순으로 script가 출력되게끔 설정해놨습니다. ▶When reporting XSS, don't use alert(1) XSS취약점을 발견하면, 통상적으로 alert(1)을 쓴다. 해당 영상에서는 왜 alert(1) 대신에 alert(document.domain), alert(window.origin), console.log를 써야하는지 설명하고 있다. XSS 취약점을 bug hunt 할 때에, 특히나 현재의 web app에서, 중요하게 이해해야하는 정보들을 설명한다. 이는 실제로 얼마만큼의 파급력을 XSS가 가졌는지 알게 해.. 2022. 12. 31.
JSFuck and XSS Payload (부제 : !,[,],(,),+ 만으로 XSS하기) ▶ JSFuck? JavaScript + BrainFuck 의 합성어로, 난해한 JS 프로그래밍 스타일을 뜻한다. 전에 작성한 Filtering Bypass를 할 수 있는 극단적 경우가 여기에 해당된다. JS문법에서 사용되는 문자 중 단 6가지인 [,],(,),+,! 만으로 JS코드를 구성할 수 있음에 착안하여 고안된 프로그래밍 스타일이다. ▶ 원리? JS의 자체기능을 이용해서 문자를 뽑아쓰는 형태로 작동된다. 대표적인 것이 괄호를 문자열로 바꾸는 방법이다. ★ ![] = false : 배열 자체는 truthy한 값으로 인정되는데, 이것을 부정하면 false가 나온다. ★ (객체)+[] = "" : 자바스크립트에서 오브젝트 간에 더하기 연산은 정의되어 있지 않으므로 .toString() (문자열로 변환).. 2022. 12. 11.
CSRF(Cross-Site-Request-Forgery) 개요 ▶ CSRF vs XSS? 피해자가 의도치 않게 웹서버로 특정 요청을 하게 만드는 공격을 뜻한다 예를 들면 다음과 같이 나타낼 수 있다. 클라이언트, 서버에서 처리하는가에 따라 나누기도 하지만, 어차피 둘다 피해자(클라이언트 측)가 공격받음은 똑같다. ▶ 왜 일어날까? 공격자가 요청을 예측하고 만들 수 있어서 발생한다. 예를 들어, PW를 바꿀 경우에 기존 PW을 기입하게 만들면 요청을 예상하기 어렵기 때문에 CSRF 공격을 수행하기 껄끄러워진다. ▶ CSRF 공격 예시 1 2 3 4 5 6 7 8 9 10 11 // html태그 사용 // javascript 태그 사용 /* 새 창 띄우기 */ window.open('http://bank.dreamhack.io/sendmoney?to=dreamhack&.. 2022. 11. 25.
XSS 블랙리스트 필터링 우회 ▶ Script 태그 바깥 1. event handler 사용 (onload, onerror, onfocus...) 2. 문자열 치환(ex. script -> scripscriptt) 3. 활성 하이퍼링크(a태그, iframe태그 등): URL들은 활성 콘텐츠를 포함할 수 있다.(ex. javascript:) 1 2 Click me! cs javascript 필터링 시, 브라우저의 정규화 과정에서 \x01, \x04, \t 와 같은 특수 문자들이 제거되고 스키마의 대소문자가 통일되는 점을 이용하여 다음과 같이 우회가능(단, url에 입력할 때에는 2비트짜리 특수문자가 아닌, 진짜로 tab키를 눌러서 나오는 공백을 넣어야 함!). 1 2 Click me! cs 자바스크립트일 경우, 직접 normalizeU.. 2022. 11. 22.
XSS(Cross-Site Scripting) 개요 ▶XSS(Cross-Site Scripting,크사, 크스스)란? 클라이언트 측 스크립트를 삽입하는 공격(주로 JS, 가끔 HTML도). 웹 브라우저에서 일어남. ▶취약점 발생이유? 공격자의 스크립트가 그대로 서버에서 응답되기 때문에 발생! ▶발생 가능한 위치? 사용자의 입력이 응답에 포함되는 모든 곳! (input뿐만 아니라 모든 parameter에서 발생!) ▶ 스크립트 삽입 전략에 따른 XSS종류 [1] 서버에 저장 : Stored XSS [2] 서버에서 반사 : Reflected XSS [3] 클라이언트 조립 : DOM Based XSS ▶ Reflected XSS 클라이언트가 입력한 파라미터를 활용해서 서버가 내용을 반환할 때 응용함. 단, 그 정보는 서버에 저장하지 않음. 대표적으로 검색기능을.. 2022. 11. 11.