본문 바로가기

전체 글

(297)
Level 1 : File Vulnerability Advanced for linux @app.route('/file', methods=['GET']) def file(): path = request.args.get('path', None) if path: data = open('./files/' + path).read() return data return 'Error !' /file 경로에서는 path 파라미터에 따라, 파일을 읽어온다. 먼저, /etc/passwd 파일을 읽어올 수 있는지 확인해 보았다. API_KEY = os.environ.get('API_KEY', None) def key_required(view): @wraps(view) def wrapped_view(**kwargs): apikey = request.args.get('API_KEY', None) if API_KE..
소켓 통신 알아보기 웹 소켓이란 먼저, 웹 브라우저와 웹 사이트 간의 대부분의 통신은 HTTP를 사용한다. HTTP를 사용하면 클라이언트가 요청을 보내고 서버는 응답을 반환한다. 일반적으로 응답은 즉시 발생하고 트랜잭션이 완료된다. 네트워크 연결이 계속 열려 있어도 요청과 응답의 별도 트랜잭션에 사용된다. 일부 최신 웹 사이트는 WebSocket을 사용한다. WebSocket 연결은 HTTP를 통해 시작되며 일반적으로 오래 지속된다. 메시지는 언제든지 어느 방향으로나 전송될 수 있으며 본질적으로 트랜잭션이 아니다. 연결은 일반적으로 클라이언트나 서버가 메시지를 보낼 준비가 될 때까지 열려 있고 유휴 상태로 유지된다. WebSocket은 금융 데이터의 실시간 피드와 같이 대기 시간이 짧거나 서버에서 시작되는 메시지가 필요한 ..
HTML Entity HTML Entity란? HTML Entity(특수문자)는 HTML 문서에서 특수 기호를 표시하기 위해 사용하는 문자이다. 예를 들어, < 기호는 HTML의 시작 태그로 인식되기 때문에, < 라는 기호만을 그대로 기재하면 브라우저에서의 표시에 문제가 생기거나 표시되지 않거나 한다. HTML에서 특별한 의미로 사용되는 이러한 기호를 브라우저에서 그대로 표시하고 싶은 경우는 '특수 문자'라고 하는 것으로 변환해서 사용할 필요가 있다. 특수 문자에는 전용의 문자 코드가 있어, 그 코드를 기재하는 것으로 기호를 브라우저상에 그대로 표시시킬 수가 있다. 예를 들어, < 기호는 이 기호의 의미로 브라우저에서 표시하게 하는 특수문자인 < 로 변환하여 사용한다. XSS를 막는 HTML Entity PHP 환경에서, 유..
Lab: DOM XSS in innerHTML sink using source location.search https://portswigger.net/web-security/cross-site-scripting/dom-based/lab-innerhtml-sink Lab: DOM XSS in innerHTML sink using source location.search | Web Security Academy This lab contains a DOM-based cross-site scripting vulnerability in the search blog functionality. It uses an innerHTML assignment, which changes the HTML ... portswigger.net 위 코드는 해당 페이지의 구문이다. 해당 search for..
Lab: Manipulating the WebSocket handshake to exploit vulnerabilities https://portswigger.net/web-security/websockets/lab-manipulating-handshake-to-exploit-vulnerabilities Lab: Manipulating the WebSocket handshake to exploit vulnerabilities | Web Security Academy This online shop has a live chat feature implemented using WebSockets. It has an aggressive but flawed XSS filter. To solve the lab, use a WebSocket message ... portswigger.net 위 그림 1의..
Lab: SSRF with blacklist-based input filter https://portswigger.net/web-security/ssrf/lab-ssrf-with-blacklist-filter Lab: SSRF with blacklist-based input filter | Web Security Academy This lab has a stock check feature which fetches data from an internal system. To solve the lab, change the stock check URL to access the admin interface at ... portswigger.net http://localhost 요청과 http://127.0.0.1 요청 모두 차단되어 진다. 그래서 아래 그..
Lab: Basic SSRF against the local server https://portswigger.net/web-security/ssrf/lab-basic-ssrf-against-localhost Lab: Basic SSRF against the local server | Web Security Academy This lab has a stock check feature which fetches data from an internal system. To solve the lab, change the stock check URL to access the admin interface at ... portswigger.net 재고 확인을 위해 Check stock을 누르면 POST 요청이 발생하고, stockApi 매개변수로 URL이 전달되어진다..
Lab: CSRF where token validation depends on request method https://portswigger.net/web-security/csrf/bypassing-token-validation/lab-token-validation-depends-on-request-method Lab: CSRF where token validation depends on request method | Web Security Academy This lab's email change functionality is vulnerable to CSRF. It attempts to block CSRF attacks, but only applies defenses to certain types of requests. To ... portswigger.net 해당 문제..