본문 바로가기

1. Web hacking (웹 해킹)

(62)
[2020.04.14] XSS Game Level5 첫페이지에서 Sign up을 누르면 이메일을 입력하는 창으로 넘어간다 이때 url을 보면 변수 next에 인자값으로 confirm이 들어가는 것을 볼 수 있다 아무 값이나 입력하고 next를 누르면 위의 페이지로 이동하고 몇초 후 첫 페이지로 다시 넘어간다 소스코드를 보면 Next>>의 링크 값이 next변수값에 의해 결정되는 것을 볼 수 있다 따라서 url에서 netx=confirm 이라고 되어있는 값에 confirm값을 조작해 문제를 해결한다 url로 스크립트를 전달하기 위해서 javascript: 를 사용한다 javascript:alert("hello");를 입력하고 go를 누른 후에 Next>>버튼을 누르면 ​ 스크립트가 동작하며 문제가 해결된다
[2020.03.31] XSS Game Level 1,2,3 ​1번 Level 1은 alert()으로 팝업창을 띄우면 풀리는 문제입니다. 입력창에 Hello라고 입력하고 Serch 버튼을 눌러보니 사용자가 입력한 값이 GET 방식으로 전달되는 것을 확인할 수 있었습니다. 더 자세한 분석을 위해 코드를 확인해보았습니다. 사용자가 검색하려고 입력한 값이 query라는 변수에 담기고 그 변수가 message에 들어가는 것을 확인할 수 있었습니다. HTML에 들어가는 변수를 사용자가 입력할 수 있는 취약점을 이용하여 입력창에 를 넣고 serch를 누르면 다음과 같이 alert 창이 뜨면서 문제가 해결됩니다. --------------------------------------------------------------------------------------------..
[20.04.07] Dreamhack 개념정리 - Server-side Basic Server-side(서버 사이드) 취약점 1)정의: 서버에서는 사용자가 요청한 데이터를 해석하고 처리한 후 사용자에게 응답한다. 그 과정에서 웹 어플리케이션이나 데이터베이스와 같은 서버의 자원을 사용해 처리하기도 한다. 이 과정에서 사용자의 요청 데이터에 의해 발생하는 취약점을 서버 사이드 취약점이라고 한다. 2)발생 원인: nc나 telnet과 같은 네트워크 프로그램을 통해 HTTP Request를 보낼 때는 메소드나 요청 헤더처럼 브라우저에서 조작하지 못하는 데이터도 조작하여 전송할 수 있기 때문에 서버에서는 사용자에게 받는 모든 입력 데이터를 신뢰하지 않아야 한다. (HTTP 요청 시 모든 데이터는 조작하여 전송이 가능하며, 악의적인 사용자는 이를 이용해 서버의 취약점을 확인 할 수 있게 된다.)..
[20.03.31] Dreamhack 개념정리 - Introduction of Web hacking (1) Web browser= 웹에 접속하기 위해 사용하는 소프트웨어 (2) Web resource= 웹 상에 존재하는 모든 콘텐츠(HTML, CSS, JS, PDF, PNG등) (3) URL(URI)= 리소스를 식별하기 위한 식별자 (4) HTTP= 웹을 이용하기 위한 통신규약 (5) HTTPS= 기존 HTTP 데이터를 암호화하여 통신함 (6) Cookie= 웹 브라우저에 저장하는 데이터 (7) Session= 서버에 저장하는 데이터 (8) Domain Name= 웹 네트워크 상에서 컴퓨터를 식별하는 이름 (9) Server= 인터넷상에서 사용자에게 서비스를 제공하는 컴퓨터. 그 중 웹서버는 사용자(웹 브라우저)와 HTTP를 이용하여 통신하는 서버 (10) Application= 서버에서 설정한 특정 ..
[2020.03.31] Dreamhack 개념정리 - Client-side Basic 1. Client-side Basic Client-side 취약점의 주목적 공격자는 사용자로부터 본인을 식별하기 위한 사용자 정보, 즉 쿠키나 쿠키에 저장된 세션 아이디를 탈취해 사용자 권한을 얻거나, 사용자의 브라우저에서 자바스크립트를 실행하거나 특별한 행위를 수행하도록 하여 사용자가 보낸 것처럼 요청을 전송하는 것이 클라이언트 사이드 취약점의 주 목적 ​ 취약점이 발생할 수 있는 이유 웹 브라우저는 Stateful한 상태를 유지하기 위해 모든 HTTP 요청에 쿠키를 함께 보냄 ※ stateful: client의 이전 상태를 기록하고 있는 것 > 서로 다른 사이트인 dreamhack.io와 theori.io에서 dreamhack.io/resource1에 요청을 보내지만, 같은 쿠키가 함께 보내지는 것을..
[2020.04.07] XSS Game Level 4.Context matters alert() 함수를 호출하는 문제이다. 처음 화면에서 입력창에 3이 적혀있는 것을 볼 수 있다. 그대로 입력해보면, 3초 안에 타이머가 실행된다면서 Time is up! 이라는 alert 창이 뜨는 것을 볼 수 있다. 이전과 같은 방식으로 onerror 이벤트도 써보았다. 당연히 풀리지 않았다. 힌트는 이렇게 주어져 있었다. 마지막 힌트대로 '(작은 따옴표)를 입력하여 실행시켜보니, 무한루프에 빠진 듯 alert함수가 실행되지 않았다. 'alert('1')' 이라는 문장을 HTML 코드로 인코딩하여 넣어보았다. (hint 2 활용) 입력 값: alert('1')' 하지만 여전히 풀리지 않았다. 소스코드를 살펴봤을 때 21번째줄에서 startTimer 함수가 호출되는 것을 볼 수 있었다..