(XSS 코딩 패스 용) 브라우저기구 복호화

1. 브라우저 약 워크 플로우

(1) 구문 분석 HTML 브라우저

태그를 식별하는 DOM 노드 태그 (2)에, HTML 파서 개체가 인코딩 된 것을 인식하지 못 위해 설립 DOM 트리 각 노드의 내용을 확인하기

(3) JS DOM API (JS 파서)의 내용을 변경하는 DOM 트리를 수정, 참여합니다. 이 때, CSS 및 외부 CSS 파서 스타일 태그를 구문 분석, 함께 렌더링 트리를 형성 ==

렌더링 트리를 구성 (4) 여기서 CSS 이전에, CSS 규칙 트리가있을 것입니다

(5)에 표시하여 상기 UI 각 노드의 도면의 후단을 사용하여 레이아웃의 종료 후,

두 리졸버는 특별한주의를 필요로하는, 즉,있는 HTML 파서, JS 파서의 CS 파서 (시간 인을 언급하지 않기 위하여). 기본적으로 XSS 코덱 페이로드는이 두 가지에 의존하기 때문에 활용합니다.

 

2. 파서

  • HTML 파서

효과 : 구축해 DOM 트리 노드 콘텐츠 분석

 

  • JS 파서

작업 : 처리 스크립트, 스타일 태그, JS 파서 파싱 모드가 자동적으로 전환하고, SRC는 나중에 추가 HREF 의사 - 프로토콜 모드를 파싱 JS JS를 입력한다. 이 모드에 진입하면, DOM이 확립 된

 

3. 케이스 (모든 테스트는 파이어 폭스 브라우저에서 수행되었다)

구문 분석 HTML, HTML 동안 1 엔티티 자동으로 디코드 코딩

<a href="javascript:alert('1')"> 테스트 </a>를

 

 

일반 대중을 테스트 클릭합니다. 이 경우, 동일한 효과를 인코딩 형식 :

(1) HTML 엔티티 인코딩 & # 106;

2 진수 : & #의 x6a;

(3) 측정 : & # 106

(4) (# & 00,000,000,106) 디지털 하이 부 0 추가 지원 & # 00,000,000,106

 

2.JS의 해결

<a href="javascript:alert('\u0061')"> 테스트 </a>를

 

 

팝업 테스트 A, 실시 유니 코드 디코딩을 클릭합니다. 이 경우 동일한 효과를 인코딩 형식 :

(1) 유니 코드 포맷 : \ u0061

16 진수 형식 (2) : \ X61

(3) 진법 형식 : \ 141

 

4. 요약

JS 여부 파싱 모든 HTML 파싱, 문자 부분은 , 예를 들면, <a href="javascript:alert('\u0061')"> 시험 </a>를 따옴표 ''안에 내용물을 작동 문자 부 JS의 내용에 속한다 따옴표 ', 문자 부에 속하는 HTML 태그.

따라서 : 때 라벨 파싱 브라우저, 제 자바 스크립트에 경보 ( '\ u0061' ) HTML 디코더가 표시 될 최종 결과를 얻기 위해 프로세스 디코더 JS 번 \ u0061 후 처리 후 <A HREF = "자바 스크립트 : 경고 ( '이 ')"> 테스트 </a>를

게시 10 개 원래 기사 · 원 찬양 5 · 조회수 2992

추천

출처blog.csdn.net/qq_36896220/article/details/104618130