본문 바로가기

Security/Web Hacking16

[XSS Game] Level 6 alert를 실행시킬 외부 파일을 요청하게 하라고 하고 있다. 일단 주어진 화면을 조작해보려고 했지만 따로 입력창이나 버튼 같은 게 없기 때문에 조작해야하는 건 url일 것이라고 생각했다. 이 이후로 소스코드를 참고하여 url 뒤쪽을 조작해보다가 이것만으로는 한계가 있어서 힌트를 일부 살펴보았다. 1. # 뒤에 오는 게 로드된 스크립트의 url에 영향을 미친다. 2. 가젯 url의 보안 체크가 정말로 풀 프루프인 것인가? (풀 프루프 : 제어계 시스템이나 제어 장치에 대하여 인간의 오동작을 방지하기 위한 설계) 일단 이 정도만 확인해보고 좀 더 살펴보았다. 힌트에서 얘기해준 대로 # 뒤의 내용을 바꿔주었더니 페이지 상에서 from 뒤에 입력한 내용이 들어가는 것을 확인할 수 있었다. 아래의 소스코드 마지.. 2022. 1. 23.
[XSS Game] Level 5 이번에도 마찬가지로 스크립트를 삽입하여 alert 팝업을 띄우라고 하고 있다. 문제 설명을 보니 DOM에 새로운 요소를 넣지 않고도 공격자들이 공격을 할 수 있다고 한다. 일단 주어진 화면을 확인해보았다. Sign up 버튼을 누르면 주소가 위와 같이 변한다. 이메일을 치고 Next 버튼을 누르면 위의 화면이 뜨고 몇초 뒤에 다시 처음 화면으로 돌아간다. 한번에 감이 오지 않아서 힌트를 조금 참고해봤다. 1. 제목이 힌트 2. url 파라미터를 봐라 제목으로 봐서는 프로토콜에 문제가 있는 듯 했다. 프로토콜은 정보기기 사이 즉 컴퓨터끼리 또는 컴퓨터와 단말기 사이 등에서 정보교환이 필요한 경우, 이를 원활하게 하기 위하여 정한 여러 가지 통신규칙과 방법에 대한 약속 즉, 통신의 규약을 의미한다. 뭔가 데.. 2022. 1. 23.
[XSS Game] Level 4 이번 문제도 단순히 스크립트를 삽입하여 자바스크립트 alert를 띄우라고 하고 있다. 주어진 것은 이렇게 생긴 화면과 Create timer를 누르면 타이머가 작동되는 기능이다. 아래에 타이머가 있어서 시간을 5초로 바꿔서 작동시켰더니 url 맨 끝에 ?timer=5가 붙는 걸 확인할 수 있었다. 이번에도 소스코드를 확인해보았는데 잘 모르겠어서 힌트를 참고해보았다. 힌트 1번에 startTimer 함수가 어떻게 호출되는지를 잘 봐보라고 하고 있다. 소스코드에서 startTimer가 사용되는 부분을 찾아보았다. 이 부분과 다른 부분을 보니 시간을 입력하는 창의 입력 값이 timer라는 id 값을 가지고 이를 onload에 가져와서 사용된다는 것을 알 수 있었다. 위의 코드를 참고하여 startTimer 함.. 2022. 1. 14.
[XSS Game] Level 3 이전 단계의 문제들처럼 스크립트를 삽입해서 자바스크립트 alert 팝업을 띄우라고 한다. 하지만 입력을 할 수 없기 때문에 url 주소창을 수정하라고 이야기하고 있다. 실제로 화면을 보니 값을 입력하는 데는 없었고 오로지 주소창만 수정 가능했다. 그리고 이미지 1, 2, 3 창을 넘나들 때마다 url위의 숫자가 1, 2, 3으로 바뀌는 것을 확인했다. html += ""; 일단 아무것도 없는 상태에서 고민을 하다가 스크립트 태그에 alert를 넣어서 해보았는데 역시나 작동되지 않았다. 잘 모르겠어서 소스코드를 살펴보다가 위의 코드를 발견했다. 아까 이미지 1, 2, 3을 왔다갔다 할 때마다 url 뒤에 있는 숫자가 바꼈었는데 이를 통해 그 수가 위의 코드의 num에 해당하는 값일 거라고 예상했다. 저 i.. 2022. 1. 14.
[XSS Game] Level 2 문제를 읽어보니 저번 단계와 마찬가지로 스크립트를 삽입하여 alert 팝업창을 띄우라고 한다. 일단 Level 1에서 했던 것과 마찬가지로 스크립트를 넣어보았는데 아무것도 출력되지 않았다. 이를 통해 스크립트 태그를 필터링하고 있다는 것을 확인할 수 있다. 검색을 통해 스크립트 필터링을 우회할 수 있는 방법을 찾아보니 몇가지 방법이 있었다. 처음엔 스크립트 태그의 대소문자를 바꿔서 삽입해보았지만 똑같이 아무것도 출력되지 않았다. 두번째로는 onerror를 사용해보았다. 저 코드를 해석해보면 none.jpg라는 파일이 없을 시 alert 팝업이 뜨며 괄호 안의 내용을 출력한다는 내용이다. 참고해온 곳에서 그대로 가져와서 document.domain이라 입력했었는데 이것 대신에 아무 내용이나 적어도 상관없다.. 2022. 1. 9.
[XSS Game] Level 1 문제를 읽어보니 스크립트를 삽입해서 alert()를 띄우라고 한다. 문제에서 제시된 대로 자바스크립트 alert를 띄우기 위해 입력 창에 스크립트 태그를 넣어 alert를 띄우도록 했다. 해당 내용을 입력한 후에 버튼을 누르면 위와 같이 팝업이 뜨며 문제를 해결했다고 뜬다. 2022. 1. 8.
[1주차] XSS 공부 1. XSS 공격 - Cross-site Scripting의 약자 - 공격자가 공격하려는 사이트에 스크립트를 삽입하여 다른 사용자가 이를 실행하게끔 하는 기법 - 대표적 스크립트 언어 : 자바스크립트, VB스크립트 - 공격 당한 사용자는 의도치 않은 행동을 수행하거나 계정 하이재킹, 사용자 설정 변경, 쿠키 훔치기 및 오염, 광고 등을 당함 - 이 취약점은 사용자로부터 입력 받은 값을 제대로 검사하지 않고 그대로 사용할 경우 나타남 - 보통 특수문자나 예약어, 스크립트를 나타내는 문자를 사용함 2. 종류 1) Stored XSS - 공격자가 삽입한 악성 스크립트가 데이터베이스에 저장되고, 저장된 악성 스크립트를 사용자가 조회할 때 발생 - 공격 당한 사용자는 쿠키를 탈취당하거나 다른 사이트로 리다이렉션 .. 2022. 1. 2.