본문 바로가기
웹 해킹

웹 해킹 12

by 윤라경 2024. 7. 31.

[2024.07.31]

 

<XSS Reflected>

 

> Security Level: Mediun

 

> 대문자/소문자 우회

 

> <SCRIPT>alert('xss')</SCRIPT>

> <Script>alert('XSS')</Script>

> <SCRIpt>alert('XSS')</SCRIpt>

> <SCRipt>alert('XSS')</SCRipt>

> <SCRIPt>alert('XSS')</SCRIPt>

> <SCRIPT>alert(document.cookie)</SCRIPT>

 

> onerror 핸들러

> <img src=x onerror=alert('XSS')>  <-- 출력 텍스트 스페이스 두면 안 됨

> <img src=x onerror=alert('document.cookie)>

> <button onmouseover="alert('XSS')">클릭</button>

> <svg><animate onbegin=alert(1) attributeName=x dur=1s>

> <button onclick="alert('XSS')">클릭</button>

 

 

 

실습을 진행하기에 앞서 Security Level을 medium으로 설정해 준다

 

 

XSS reflected로 접속 시 이런 화면이 나타나는데

화면에 <SCRIPT>alert('XSS')</SCRIPT>를 입력한다

 

*화면에는 ('XSS)라고 되어 있지만 오타입니다

 

 

눌러 주게 되면 해당 화면이 나오며 우회를 성공한다

 

 

이밖에도 여러 가지 대소문자 유형들로 모두 성공시켜 보았다

 

 

이번에는 ('XSS') 칸에 document.cookie를 적게 되면

 

 

해당 화면과 같은 창을 확인할 수 있다

 

다음은 onerror 핸들러로도 진행시켜 봤다

 

 

이런 화면이 나타나게 되고

 

 

이번에는 img를 입력했기 때문에 이렇게 작은 이미지 창도 나타난다

 

 

여러 가지를 연습해 봤고, 도중에 새로 찾은 svg와 onclick, onmouseover도 진행했다

svg의 경우 기존과 비슷한 화면이 나왔고, onclick의 경우 버튼이 생성되며

그 버튼을 누를 경우 화면이 나타나는 형식으로 실행되었다

또한, onmouseover의 경우에는 마우스를 버튼 위에 올려 두기만 해도

화면이 나타나는 것처럼 실행되어 이런 것들을 찾아 연습하는 시간을 가졌다

 

 

> Secutiry Level: High

 

 

그렇지만 이어서 진행한 high 레벨에서는 그 무엇도 성공시키지 못했다

보안이 강화되어 취약점을 쉽게 찾을 수 없었다 

 

 

[XSS Stored]

 

> 서버에 공격 코드 저장

> 지속성

> Sercurity Level: Low

 

#mysql -p mysql

> 패스워드: 123456 or enter 누르기

 

> 제목

> <SCRIPT>alert('XSS')</SCRIPT>

 

> 본문

> <SCRIPT>alert('XSS')</SCRIPT>

 

> CSRF(패스워드 변경 공격)

<body topmargin=0 leftmargin=0 onload=document.body.innerHTML=<img src="http://192.168.10.52/dvwa/vulnerabilities/csrf/?password_new=1234&password_conf=1234&Change=Change">

 

> show databases;

> use dvwa;

> show tables;

 

> 데이터 검색

> select * from guestbook;

 

> 데이터 삭제

> delete from guestbook;

 

 

 

 

이어서 XSS Stored도 진행하려고 한다

해당 화면의 Name 칸에서 제목을 입력하려고 할 때

글자 수에 제한이 걸려 있어 더는 입력하지 못하게 되어 있다

이때 Name 칸에서 오른쪽 마우스를 누른 다음 Inspect(Q)로 이동

그럼 화면에 나타난 줄이 확인되는데, maxlength를 50 정도로 설정한다

 

 

그렇게 되면 이런 식으로 입력이 가능해진다

 

 

입력을 완료했고, 잘 실행된다면 이번에도 이런 화면이 나타나게 된다

 

 

다시 보지 않기를 누르지 않는 이상, 새로 고침 시에도 나오며

다른 페이지로 넘어갔다가 다시 해당 페이지로 돌아와도 나타난다

 

 

다른 페이지로 넘어갔다가

 

 

다시 XSS Stored로 넘어가자마자 바로 뜨는 화면을 캡처했다

 

 

진행된 만큼 화면에 나타나며 Metasploitable2에서도 확인 가능하다

 

 

mysql -p mysql을 입력하면 mysql 셸 화면이 나타난다

그 상태에서 show databases로 데이터베이스 목록을 확인

확인 후에는 dvwa로 접속한다

 

 

데이터베이스가 정상적으로 dvwa로 바뀌었으며,

현재 테이블 상태를 확인하면 user와 guestbook이 존재한다

 

 

우리가 공격한 내역을 확인하기 위해서는 guestbook을 확인해야 된다

명령어를 입력하고 확인하면 방금까지 공격했던 것들을 확인할 수 있다 

 

 

그 실행 기록을 삭제도 가능한데, delete from guestbook을 입력시켜 준다

 

 

그러고 다시 해당 페이지로 돌아오게 되면 실행했던

기록들이 말끔하게 제거된 상태의 화면이 나타난다

 

 

 

이런 식으로 문구를 변경하여 여러 번 연습도 진행해 보았다

 

 

이번에는 제목과 본문의 내용을 바꿔 입력해 보기로 했다

 

 

바꿔서 입력 시에도 공격이 성공한다

 

 

문구를 변경하고 document.cookie로 시도했을 때도

 

 

정상적으로 실행 화면이 나타나며, metasploitable2에서도 확인이 가능하다

 

 

마지막으로 해당 명령어들을 통해 비밀번호도 변경했다

원래의 password 비밀번호를 1234로 변경 후 로그인 시도 시 정상적으로 접근이 가능하다

 

 

다시 되돌려놓을 때도 같은 방법으로 1234의 자리에 password를 입력하게 되면,

다시 로그인 시도 시 password로 성공하게 된다

 

*모든 실습 종료 후에는 원래의 상태로 되돌려놓는 게 다음 실습을 위해서도 좋다

 

 

 

강의 소감

이번 시간에도 취약점에 대한 여러 가지 공격을 진행해 보았다

며칠을 걸쳐서 진행 중에 있지만, 전혀 모르던 취약점들과 각자 방식이 다른 취약점 공격 방식

취약점을 찾아내는 방법 또한 다르다고 느끼고 있고 이 외에도 많은 취약점들이

있다고 하여 많은 공부와 연습이 더 필요할 것 같다

또한, high 레벨에서는 보안이 강화되어 보통의 취약점을 찾아내기 쉽지 않지만

전혀 뚫리지 않는 것은 아니라고 해서 꼭 그 취약점을 찾아내고 싶다

그러기 위해서는 오늘 배웠던 내용들도 꾸준히 공부해야겠다 

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

웹 해킹 14  (0) 2024.08.03
웹 해킹 13  (0) 2024.08.02
웹 해킹 11  (0) 2024.07.30
웹 해킹 10  (0) 2024.07.26
웹 해킹 9  (0) 2024.07.26