-
XSS game 05, 06 (8주차)보안/WEB HACKING 2024. 3. 14. 18:05
XSS game 05 문제:
Angular는 애플리케이션을 안전하게 개발할 때 자체 규칙을 가진 매우 인기 있는 프레임워크입니다. 그 중 하나는 Angular의 템플릿 시스템이 실행되기 전에 DOM을 수정할 때 주의해야 한다는 것입니다.
이 과제는 이것이 왜 중요한지를 보여줍니다.
목표는 응용 프로그램의 취약성을 이용하여 JavaScript alert() 함수를 실행하도록 만드는 것입니다.
aa를 입력한 후 페이지 소스코드를 확인해보자.
아래에 UTM_PARAMS 가 적혀있다.
UTM 파라미터
- 사용 : 각 유입 채널의 성과를 알아내고자 할 때 어떤 사용자가 어떤 채널로 유입되었는지에 대한 데이터를 쌓고 싶을때
- 링크 중간에 물음표가 나오면 물음표 앞까지가 원래 url
- 파라미터 종류
- utm_source: 유입채널
- utm_medium: 유입매체
- utm_campaign: 유입된 마케팅 캠페인
- utm_term: 검색 유입의 키워드
- utm_content: 유입된 컨텐츠
페이지 소스 코드에서는 imput name=utm_term / utm_campaign이다. 이 때는 alert가 나오게 하려면
{{ alert() }}를 사용한다.
물음표 앞까지의 url이 원래 url 이므로, 있던 url 뒤에 ?utm_campaign={{alert()}} 을 넣어준다.
XSS game 06 문제:
Angular 식 주입으로 이어지는 프로그래밍 패턴은 Angular가 자체 템플릿으로 사용하는 HTML을 생성하기 위해 서버 측 템플릿 시스템을 사용하는 것이다. 이는 서버 측 템플릿이 출력에 "일반적인" XSS가 없음을 보증하는 경우에도 마찬가지입니다.
목표는 응용 프로그램의 취약성을 이용하여 JavaScript alert() 함수를 실행하도록 만드는 것입니다.
aa를 입력한 후 페이지 원본을 확인해보자.
xss game 05와는 다르게 utm이 없다.
url에 덧붙여서 alert 를 실행시켜야 한다.
html code 를 이용해서 덧붙이자. 중괄호를 포함해 제대로 보내기 위해서 특수문자를 직접 복붙해서 넣자.
물음표 뒤에 코드를 수정해서 작성하면 성공이다.
'보안 > WEB HACKING' 카테고리의 다른 글
드림핵 웹해킹 stage 2-웹 브라우저 (2) 2024.03.14 드림핵 웹해킹 stage 1, stage 2-웹 기본상식 (0) 2024.03.14 XSS game 03, 04 (7주차) (1) 2024.03.14 XSS game 01, 02 (6주차) (0) 2024.03.14 BWAPP 5주차(cross-site scripting stored) (0) 2024.03.14