일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 딥러닝파이썬
- 신경망파이썬
- 8086CPU레지스터
- 신경망구현
- 밑바닥부터시작하는딥러닝
- 보안
- 정보보안
- 달고나bof
- C언어알고리즘
- 딥러닝
- 신경망 학습
- 스트림암호
- 파이썬신경망
- 인공지능
- C언어 알고리즘
- 항등함수
- 백준
- 알고리즘
- 버퍼오버플로우
- c언어
- BOF
- 소프트맥스함수
- C알고리즘
- 신경망
- BOJ
- FTZlevel10
- 활성화함수파이썬
- 백준알고리즘
- 파이썬
- 머신러닝
- Today
- Total
목록<CTF>/<XSS game> (5)
HeeJ's
DOM에 스크립트를 삽입하지 않고 문제를 풀어야 한다고 한다. DOM이란 무엇일까? 더보기 Document Object Model 웹 페이지(HTML)에 대한 인터페이스 1. 뷰 포트에 무엇을 렌더링 할 지 결정하기 위해 사용 2. 페이지의 콘텐츠 및 구조, 그리고 스타일이 자바 스크립트 프로그램에 의해 수정되기 위해 사용 원본 HTML 문서 형태와 비슷하지만 몇 가지 차이점이 있다. - 항상 유효한 HTML 형식이다 - 자바 스크립트에 수정될 수 있는 동적 모델이어야 한다. - 가상 요소를 포함하지 않는다.(ex. ::after) - 보이지 않는 요소를 포함한다.(ex. display : none) signup 링크를 클릭하게 되면 ?next=confirm이라는 요청과 함께 다른 페이지로 넘어가게 된다..
이 화면에서 Create timer를 바로 눌러보았다. URL에 바로 timer=3이라고 GET 방식으로 들어가게 되고, 3초가 지나면 바로 alert 창이 뜨게 된다. 입력값이 URL에 들어가기 때문에 적당한 값을 넣어주면 alert창을 띄울 수 있을 것이다. timer 값을 그대로 두고, '를 닫아준 후, 그 뒤에 alert 문을 다시 연결시켜 보았다. (Inejction) URL도 입력 값으로 바뀌었다. alert 창이 뜨면서 문제를 해결할 수 있다.
Image n 버튼을 누르면 창이 넘어가면서 Image1, Image2, Image3을 보여준다. 이 이미지들을 이용해서 alert 문을 띄워줄 수 있을 것 같다. html 문을 살펴보면 어느 부분에 코드를 삽입해주어야 할지 알 수 있을 것이다. 이 부분에 onclick 시 chooseTab이 아닌 alert를 실행시켜주면 Image n 탭을 눌렀을 때 alert가 실행될 수 있도록 할 수 있을 것이다. 개발자 도구를 이용해 tab onclick 명령이 있는 부분을 찾아주었다. 그리고 alert 명령을 뒤에 덧붙여주었다. 그리고 Image 2 탭을 눌러주면 성공!
메세지 창(?)처럼 생긴 부분이 있었는데, 이 부분에 값을 넣어주면 메시지를 띄워준다. 그래서 스크립트 창을 이용해 값을 바로 넣어보았다. 아래 값을 넣어주니 필터링이 되는건지 NULL 값(?)이 전달되는 것을 확인할 수 있었다. 그렇다면 이 문제를 풀기 위해서는 script를 우회?하여 값을 전달해주어야 할 것이다. script 우회 태그라고 검색해보았더니, onerror라는 태그를 찾을 수 있었다. onerror 태그는 이미지가 경로에 없을 때, 대체할 이미지를 지정하는 속성이라고 한다. 대체할 이미지 대신에 명령을 넣어주어도 실행이 될 것이라고 예상하고, img 태그와 onerror를 함께 사용해보았다. 위처럼 img 태그에 경로를 지정해주지 않고, onerror 조건에 alert 문을 넣어 주었다..