Tiny Bunny

Rookies/애플리케이션 보안

[SK shieldus Rookies 19기] Django pybo - Cross-Site Scripting (Stored)

bento 2024. 3. 30. 00:46
[SK쉴더스 Rookies 19기] 클라우드 기반 스마트 융합보안 과정

01. pybo - autoescape

기존에 만들어 뒀던 게시판에 접근

 

xss 스크립트 삽입

 

스크립트가 단순 출력 됨

 

소스 보기를 하면 html 인코딩 되어있는 모습

→ 어디서 바뀐거지?

 

DB 확인 스크립트로 저장 = 아님

장고 템플릿에서 이스케이프 되는 거였군 . .

 

다른 태그들은 (<b>, <u> ...) 적용되게 하려면?

→ autoescape off가 필요함

 

b태그 잘 적용됨

 

<script> alert(document.cookie) </script> 가 들어가게 된다면?

쿠키 정보 alert

 

스크립트가 들어간 모습

→ autoescape off는 주의해서 사용해야한다.. 

 

02. pybo - safe 필터

sate 필터도 태그를 그대로 실행하기 때문에 조심해야함(위와 같은 기능)

 

03. pybo - mark_safe 함수

pybo\views.py 수정

 

question_detail.html 수정

 

자동 인코딩되어 단순 출력됨

 

mark_safe 함수를 이용해서 처리하지 않게 설정해보자

추가하면..

 

스크립트가 실행됨

→ 마찬가지로 주의해서 사용해야한다.. 

 

728x90