목록전체 글 (91)
Study

먼저 XXE에 대해 알아보자 XML External Entities (XXE) : Many older or poorly configured XML processors evaluate external entity references within XML documents. External entities can be used to disclose internal files using the file URI handler, internal file shares, internal port scanning, remote code execution, and denial of service attacks. This attack occurs when XML input containing a reference to an..

먼저 싱글쿼터를 삽입해서 injection취약점이 존재하는지 확인해보았다. 다음과 같이 경고메시지가 뜨는 것으로 보아 취약점이 존재한다. 그리고 url을 통해 login과 password의 값을 전달할 때 and연산을 이용한다는 것을 알 수 있다. 그렇다면 항상 참인 쿼리를 만들기 위해서는 ' or 1=1 or ' 를 넣어줘야한다. 위와 같이 넣어주면 login=' ' or 1=1 or ' ' and password=' ' 이렇게 되는데 or 연산보다 and연산이 먼저 이므로 ' ' and password=' '를 먼저 수행해주면 false and false 이므로 false가 되지만 앞의 연산값이 참이 되기때문에 true or false가 되어 최종적으로는 true가 된다. Neo라는 계정으로 로그인 ..
● XML(EXtensible Markup Language) : HTML과 비슷한 문자기반의 마크업언어 사람과 기계가 동시에 읽기 편한 구조로 되어있다. HTML처럼 데이터를 보여주는 목적이 아닌, 데이터를 저장하고 전달할 목적으로만 만들어졌다. 사용자가 직접 정의가능하다. -XML 구조 : HTML문서와 마찬가지로 트리형태의 계층 구조를 가진다. 하나뿐인 root에서 시작해서 각각의 자식요소에 차례대로 연결된다. 예제) 귤 과일 3000 상추 야채 2000 루트요소는 자식요소로 2개의 요소를 가진다. 첫번째 요소는 요소, 요소, 요소를 자식요소로 가진다. ●Xpath(XML Path Language) : XML문서의 특정요소나 속성에 접근하기 위한 경로를 지정하는 언어 -XPath 표현식(express..

● Secure: 웹브라우저와 웹서버가 https로 통신하는 경우만 웹브라우저가 쿠키를 서버로 전송하는 옵션 - level : low HttpOnly문제와 같이 Cookies를 보면 쿠키값이 뜬다. BurpSuite로 서버로부터 오는 응답을 확인해보았다. 빨간박스를 보면 httponly옵션만 설정되어있다. 이번엔 medium level로 접속해서 low level과 어떤 차이가 있는지 확인해보자 -level : medium Cookies를 눌렀을 때 low level과 security_level값 말고는 다른게 없어보인다. 다만, low level에서는 볼 수 없었던 새로운 문구가 추가되었다. 이 페이지에서는 ssl채널로 접속해야 완전한 기능을 한다고한다. 우선 서버의 응답을 확인해보자 secure 옵션..

쿠키의 HttpOnly 옵션에 대한 문제이다. Cookies버튼을 누르면 내 쿠키를 볼 수 있다. ★HttpOnly 자바스크립트의 document.cookie를 이용해서 쿠키에 접속하는 것을 막는 옵션 쿠키를 훔쳐가는 행위를 막기 위한 방법이다. F12(개발자도구)-Storage에서 HttpOnly 옵션이 false로 설정되어 있는 것을 확인할 수 있었다. 그렇기 때문에 위에서 here을 누르면 alert창이 떠서 쿠키값을 확인할 수 있다. 이제 HttpOnly옵션을 true로 바꿨을 때 alert창에 쿠키값들이 안뜨는지 확인해보자 아래와 같이 바꿔주고 here을 누르면 아래와 같이 빈 alert창이 뜬다. 콘솔창에 입력해도 마찬가지로 쿠키정보가 뜨지 않는다. 마지막으로 다른 계정(test)으로 접속해서..

low level과 같이 스크립트를 삽입해보았다. 글이 등록은 되었지만 alert창은 실행되지 않는 것으로 보아 단순히 문자열로만 인식해 xss공격을 방어한다는 것을 알 수 있다. 어떻게 방어했는지 보기 위해 /var/www/bWAPP에서 xss_stored_1.php를 살펴보았다. high level은 코드를 살펴보면 security_level값이 2라는 것을 알 수 있고 이 경우 xss_check_3()가 entry에 들어가게 될 값을 검증한다. xss_check_3()를 살펴보자 htmlspecialchars()를 통해 입력값에 들어간 특수문자를 HTML 인코딩 해주는 것을 알 수 있다. 그 결과 브라우저가 일반 문자로 인식해 실행되지 않게되어 xss를 방어할 수 있다. 함수에 대한 자세한 설명은 ..

블로그 형식으로 글을 쓸 수 있는 것 같다. Stored XSS는 악의적인 스크립트를 저장해서 공격하므로 위 입력창에 를 삽입해 제출해보자 위와 같이 스크립트가 실행되어 alert창이 뜨고 새로운 글이 등록된 것을 확인할 수 있다. 따라서 xss취약점이 존재한다. ●Stored XSS : 웹 애플리케이션 취약점이 있는 웹 서버에 악성 스크립트를 영구적으로 저장해 놓는 방법이다. 웹 사이트의 게시판, 사용자 프로필 및 코멘트 필드 등에 악성 스크립트를 삽입해 놓으면, 사용자가 사이트를 방문하여 저장되어 있는 페이지에 정보를 요청할 때, 서버는 악성 스크립트를 사용자에게 전달하여 사용자 브라우저에서 스크립트가 실행되면서 공격한다. 참고 사이트 www.kisa.or.kr/uploadfile/201312/201..

위와 같이 입력 칸이 주어졌다. xss이니깐 기본적인 script태그를 이용해 공격을 시도해보았다 First name과 Last name 입력 칸에 다음과 같이 삽입하면 alert창이 뜨는 것으로 보아 xss에 취약하다는 것을 알 수 있다. ●Reflected XSS : 웹 애플리케이션의 지정된 변수를 이용할 때 발생하는 취약점을 이용하는 것으로, 검색 결과, 에러 메시지 등 서버가 외부에서 입력받은 값을 받아 브라우저에게 응답할 때 전송하는 과정에서 입력되는 변수의 위험한 문자를 사용자에게 그대로 돌려주면서 발생한다. 사용자가 서버로 입력한 값을 서버는 요청한 사용자의 브라우저로 악성스크립트를 반사시킨다. 주로 사용자에게 악성URL을 배포하여 사용자가 클릭하도록 유도하여 클릭한 사용자를 바로 공격한다...