분류 전체보기257 [비박스를 활용한 웹 취약점 진단] 7-7.크로스 사이트 스크립팅 [Reflected XSS-eval] eval 함수란? - 수식 형태로 된 문자열을 실수로 반환하는 자바스크립트 내장 함수이다. 작은 따옴표에 의한 값은 보통 텍스트 문자로 처리되는데 eval 함수를 사용하면 PHP 코드로 해석하고 실행하게 된다. [난이도 하] GET 방식으로 받는 페이지이기에 위에 date 변수에 date() 함수 결과를 출력하고 있어서 바로 스크립트 구문을 넣어보았다. 하지만 스크립트가 정상적으로 수행되지 않았다. 이는 alert 함수가 필터링 되었기 때문이다. 이제 이를 우회하기 위해서 eval 함수를 사용해서 세션값을 출력해보자. eval(document.write(document.cookie)) 코드를 입력해서 쿠키값을 얻었다. alert 함수가 필터링 되는 경우 eval 함수로 우회할수 있게 된다. [난이도 중].. 2023. 12. 13. [비박스를 활용한 웹 취약점 진단] 7-6.크로스 사이트 스크립팅 [Reflected XSS-AJAX/JSON] 이번 페이지는 AJAX 기능을 이용해서 검색어 입력 시 자동으로 데이터베이스를 확인해서 결과를 출력한다. [난이도 하] 페이지에 값을 넣고 버프슈트로 캡쳐해보았는데 2-1 페이지가 아닌 2-2.php 페이지에 대한 HTTP 요청을 가로채며 title 변수를 GET으로 받고 있는것을 확인할 수 있다. 2-1.php 페이지에 스크립트 코드를 넣으면 2-2.php 페이지에서 스크립트가 실행되기 때문에 2-2.php 페이지를 URL에 입력하여 스크립트 실행 여부를 확인할 수 있다. xss_ajax_2-2.php?title= 를 주소창에 넣어줌으로써 세션값을 확인할 수 있었다. 이처럼 AJAX/JSON 환경의 웹페이지에서는 버프슈트를 확인해보아야 할수도 있다. 그리고 확인을 눌러주니 에러에 대한 메시지가 출력되었.. 2023. 12. 13. [비박스를 활용한 웹 취약점 진단] 7-5.크로스 사이트 스크립팅 [Reflected XSS-JSON] JSON이란? - 클라이언트와 서버가 통신할 때 자료를 표현하는 방법으로 특정 언어에 제한 없이 그대로 사용할 수 있다는 장점이 있으며, 여러 자료 구조를 JSON으로 표현 가능하다. 이번 페이지는 JSON으로 객체를 선언하는 자바 스크립트 코드를 사용하여 검색한 영화 정보를 출력해주는 페이지이다. [난이도 하] 텍스트 입력창에 이름을 넣고 검색하니 GET 방식으로 받아서 화면에 출력되었다. 소스코드를 확인해 보니 스크립트로 검색에 대한 응답을 받는 형태이다. 이미 스크립트를 사용중인 구문에 입력값이 들어가기 때문에 로 우선 기존 스크립트 문을 닫아준 뒤 XSS 구문을 넣어 주어야 할 것이다. 구문을 넣어주었더니 세션값이 노출되었다. 알림창에 확인을 눌러주고 나니 XSS 공격으로 인해서 실행되지 않은 기.. 2023. 12. 13. [비박스를 활용한 웹 취약점 진단] 7-4.크로스 사이트 스크립팅 [Reflected XSS-POST] 이 페이지는 POST 메소드를 사용하여 HTTP 연결 요청을 하는 페이지이다. [난이도 하] 이제 익숙하니 바로 구문을 넣어보자. 쿠키값이 노출되었다. [난이도 중] 이번에도 같은 구문이다. 아마 addslashes 함수로 필터링을 하고 있어 스크립트는 먹힐 것 같다. 세션값이 노출되었다. 한번 alert 구문에 문자열을 출력해보자. alert로 hello world를 출력해보도록 해보자. 보다시피 문자열 출력은 ' 나 " 가 들어가기 때문에 addslashes 필터링에 걸려 막힌다. 그렇다면 문자열은 출력할 수 없는 것일까? String.fromCharCode 자바 스크립트 내장 함수를 이용하면 인자로 받는 아스키코드나 유니코드를 문자열로 반환해 주기 때문에 ' 나 " 를 쓰지 않고도 문자열 출력이 가.. 2023. 12. 13. 이전 1 ··· 51 52 53 54 55 56 57 ··· 65 다음