티스토리

[WARNING] 또야주의
검색하기

블로그 홈

[WARNING] 또야주의

likethefirst.tistory.com/m

'또야의 코딩일기' 블로그명 변경

구독자
9
방명록 방문하기
공지 [공지사항] 2024년 기념 블로그명⋯ 모두보기

주요 글 목록

  • [WAF] Spring Boot Actuator 모니터링 엔드포인트의 접근 탐지 (/actuator/health) 개요오늘도 어김없이 출근해서 한 주 동안 쌓인 보안장비 로그들을 확인했다.평소보다 WAF 장비에 이벤트가 2천 건 정도 증가해있었는데,공격자 IP 대역이 사내 서버로 확인되었고, URL도 모두 동일했다.특이점이 있는 것 같아 해당 URL과 이벤트 특성을 공부해보기로 했다.차단된 이벤트사내 서버 출발지의 이벤트였고, 목적지 또한 사내 서버였다.공격자 IP로 확인되는 출발지 IP는 Zabbix 서버로,Zabbix는 대강 자산의 모니터링을 편리하게 수행할 수 있는 오픈소스 플랫폼이구나~정도 알고 있었다.(예전에 자빅스라는 발음을 듣고 철자를 Jabbix로 여러 번 작성했는데 그걸 틀린 게 왜 부끄러웠는지 모르겠다.)🔥 특징 1보통 1분 간격으로 차단 이벤트가 발생했다.🔥 특징 2/actuator/healt.. 공감수 3 댓글수 2 2025. 2. 17.
  • [Wazuh] 사용자 계정에 AD(LDAP) 계정을 연동해보자 개요 사용자 계정을 Wazuh Internal User 기능으로 생성할 수 있지만, 패스워드를 잊었다는 문의가 많아서 AD 연동을 하게 되었다. 수행한 내용을 순차적으로 기록해둔다. 가이드는 https://documentation.wazuh.com/current/user-manual/user-administration/ldap.html 를 참고했다. 관련 내용은 외쿡 말로는 AD(LDAP) integration이라고 검색하면 된다. 수행내용 1. AD 서버 서비스 계정 생성 일반 AD 사용자가 아닌 서비스 계정을 만들어서 AD 서버에 인증하는 것이 적절한 방식일 것이다. CN이 wazuh인 계정을 생성받았다. 2. 방화벽 오픈 AD 로그인은 Wazuh indexer에서 수행하므로 인덱서의 IP AD 서버.. 공감수 0 댓글수 1 2024. 4. 21.
  • [Wazuh] 골든 이미지에 에이전트 설치 후 VM 배포 시 문제 개요 Wazuh를 통해 다른 에이전트처럼 GCP 골든 이미지의 OS 취약점 진단을 진행해야 했는데 의문스러운 문제가 발생했다. syslog를 불러오고자 하는 에이전트가 아닌 여러 다른 에이전트의 syslog가 섞여서 보이고 있었다. full log를 확인하니 hostname에 골든 이미지뿐만 아니라 엄청 많은 서버가 보였다. 이 문제를 해결하기 위해서 여러가지 추론을 했고 잘 해결되어 기록해본다. 확인 내용 (1) 한 host의 syslog에 여러 개 agent.ip agent.name을 vm-golden-image-ubuntu-22-04로 필터링했으면 에이전트는 하나여야 한다. 하지만 agent.ip 밸류가 4개 이상인 것을 확인할 수 있다. 처음엔 '와! 이 골든 이미지는 IP가 엄청 많은가?!'라고.. 공감수 0 댓글수 1 2024. 4. 21.
  • 인증(세션) 쿠키와 HttpOnly/Secure 옵션의 조치 영향 개요쿠키를 통해 어떻게 인증을 처리하는지, 쿠키 보호(세션하이재킹 방지)를 위해 HttpOnly와 Secure 옵션 적용 시 실운영중인 서비스에는 어떤 영향도가 있는지 정리해둔다.  쿠키, 왜 사용할까?HTTP 프로토콜은 무상태성(stateless) 및 무연결성(Connectionless)을 가지는데,클라이언트의 접속에 대해 연결이나 상태를 저장하지 않는다고 볼 수 있다.이는 서버가 매우 많은 연결을 유지하면서 자원을 소모하지 않아도 되며 프로토콜을 단순하게 하기 위한 설계이다.사용자 데이터를 서버에서 매번 저장하고 관리하는 것은 서버 리소스가 과소모된다는 이야기이다.  인증 쿠키는 어떻게 사용될까?인증을 위한 세션 쿠키는 쿠키일까?당연히 쿠키는 맞다. 그렇지만 쿠키 자체에 사용자를 식별하기 위한 데이터.. 공감수 2 댓글수 1 2024. 3. 22.
  • [Wazuh] Windows 에이전트 설치 스크립트를 배포해보자 배경 및 사전조사 필요 내용 먼저 배경과 배포 전 사전조사가 이루어져야 할 내용은, 아래 Linux 에이전트 설치 스크립트 배포 포스팅에서 설치 지원 OS 확인 외에는 동일하다. [Wazuh] Linux 에이전트 설치 스크립트를 배포해보자 배경 GCP에 대형(?) Wazuh를 구축 및 기존에 사용하던 구 Wazuh 클러스터에서 이전해야 함에 따라서, 모든 사내 인스턴스들에 새로이 Wazuh agent가 설치되어야 했다. 그러려면 일일이 몇 천대의 서버에 likethefirst.tistory.com 📛 이 글에는 Windows 에이전트만 대상으로 고려되어 있다. Wazuh 패키지 파일이 현재 최신 버전으로 작성되어 있으므로, 매니저 서버와의 호환성으로 버전 변경 필요 시 "4.7"을 해당 페이지 코드 내에.. 공감수 1 댓글수 0 2024. 3. 16.
  • 3-6. 데이터 조회 공격 기법 - 순차적 레코드 출력 보호되어 있는 글입니다. 공감수 0 댓글수 0 2024. 3. 12.
  • [Wazuh] Linux 에이전트 설치 스크립트를 배포해보자 배경 GCP에 대형(?) Wazuh를 구축 및 기존에 사용하던 구 Wazuh 클러스터에서 이전해야 함에 따라서, 모든 사내 인스턴스들에 새로이 Wazuh agent가 설치되어야 했다. 그러려면 일일이 몇 천대의 서버에 접속해서 에이전트를 설치할 수도 없는 노릇이었고, 하나의 배포 파일에서 OS와 기존 설치여부에 따른 경우의 수를 조건문에서 분기하여 설치가 가능해야 했다. 다시! 여기서는 단순히 지원하는 에이전트 설치 파일을 배포하는 것이 아닌, 전 사의 서버 환경에 맞게 하나의 파일로 에이전트를 설치할 수 있는 스크립트를 제작하는 것이 주제이며, 📛 이 글에는 CentOS, Ubuntu 에이전트만 대상으로 고려되어 있다. 사전 조사 설치 지원 OS 사내 서버들이 Wazuh 에이전트 설치를 지원하는 OS에.. 공감수 0 댓글수 0 2024. 3. 12.
  • 3-5. 데이터 조회 공격 기법 - 환경 분석 실습 보호되어 있는 글입니다. 공감수 0 댓글수 0 2024. 3. 10.
  • 3-4. 데이터 조회 공격 기법 - 공격 프로세스와 환경 분석 상세 보호되어 있는 글입니다. 공감수 0 댓글수 0 2024. 3. 10.
  • [MSSQL] sqlsrv_free_stmt(): supplied resource is not a valid ss_sqlsrv_stmt resource in 오류 현상 php에 MSSQL(SQL Server) 쿼리 구문을 실행 시 해당 오류 발생 에러 소스코드 mssql connection 객체를 만들어서, var 변수가 충족되는 레코드를 select 후 delete하는 코드이다. 구문을 실행 후 C++의 malloc 후 free처럼, 메모리 누수를 방지하기 위해 sqlsrv_free_stmt로 메모리 해제를 해주었다. 원인 line 18: sqlsrv_free_stmt($result)에 문제가 있다. $result 변수는 전역 변수가 아닌 if문 블록 내에 있는 블록 내 변수이다. 그러므로 sqlsrv_free_stmt 함수는 변수의 라이프사이클 상 $result 변수를 알 수 없다. 소스코드 수정 result 변수가 있는 if 문 내에 sqlsrv_fre.. 공감수 0 댓글수 0 2024. 3. 9.
  • 3-3. 인증 우회 공격 기법 - 타 사용자의 게시글 수정과 삭제 보호되어 있는 글입니다. 공감수 0 댓글수 0 2024. 3. 9.
  • 3-2. 인증 우회 공격 기법 - 타 사용자의 비밀글 열람 보호되어 있는 글입니다. 공감수 0 댓글수 0 2024. 3. 9.
  • 3-1. 인증 우회 공격 기법 - 로그인 보호되어 있는 글입니다. 공감수 0 댓글수 0 2024. 3. 7.
  • 3-4. 취약한 CORS 유형 실습 (4) - ACAO http subdomain 허용 이번에 도전해 볼 LAB은 실무자(PRACTITIONER) 레벨이다! 실습 요구사항 Lab: CORS vulnerability with trusted insecure protocols https://portswigger.net/web-security/cors/lab-breaking-https-attack 환경 정보 🌐 요청 Cross-origin인 XHR 요청 서버 🌍 응답 프로토콜을 고려하지 않고 모든 subdomain의 CORS 요청을 허용하는 웹 서버 사전정보 없음 추론과정 및 결과 과정 1 이전 실습들과 같이 로그인 이후 /accountDetails에 GET 요청 시 리턴되는 응답 값에 apikey가 있다. 이번 취약 유형은 '프로토콜을 고려하지 않은 모든 subdomain의 ACAO 허용'이라고.. 공감수 0 댓글수 0 2024. 3. 4.
  • 3-3. 취약한 CORS 유형 실습 (3) - ACAO null 허용 이전 글 2-3. 취약한 CORS 유형 (3) - NULL 출처 허용 유형 (3) 설명 로컬에서 서버 대상으로 테스트 개발을 진행하고자 할 때, 아래와 같은 에러가 발생한다. Access to script at 'file:///C:/경로/접근하고자 하는 파일' from origin 'null' has been blocked by CORS polic likethefirst.tistory.com 실습 요구사항 Lab: CORS vulnerability with trusted null origin https://portswigger.net/web-security/cors/lab-null-origin-whitelisted-attack 환경 정보 🌐 요청 sandboxing된 iframe을 이용해 Origin이 .. 공감수 0 댓글수 0 2024. 2. 29.
  • 3-2. 취약한 CORS 유형 실습 (2) - ACAO Reflection 이전 글 2-1. 취약한 CORS 유형 (1) - 반사된 ACAO 및 True ACAC 개요 챕터 2에서는 CORS를 어떻게 설정하면 보안에 취약해지는가를 알아보기 위해서, 1) 취약한 설정 확인 방법 2) 대응방안을 알아보도록 한다. 확인 과정 일단 Burp Suite나 ZAP를 통해 패킷을 잡아 likethefirst.tistory.com 실습 요구사항 Lab: CORS vulnerability with basic origin reflection https://portswigger.net/web-security/cors/lab-basic-origin-reflection-attack 환경 정보 🌐 요청 Cross-origin인 XHR 요청 서버 🌍 응답 Access-Control-Allow-Origin.. 공감수 0 댓글수 0 2024. 2. 28.
  • 3-1. 취약한 CORS 유형 실습 (1) - ACAO 와일드카드 설정 실습 요구사항 환경 정보 🌐 요청 Cross-origin인 XHR 요청 서버 🌍 응답 Access-Control-Allow-Origin이 와일드카드 (*)로 설정된 웹 서버 소스코드 및 웹 서버 설정 🌐 요청 단 ACAO를 와일드카드로 설정하여 ACAC는 true로 설정할 수 없다. 그러므로 withCredentials를 true로 설정할 경우 응답을 받을 수 없으므로 일단 생략한다. 또한 ACAC가 true가 아니므로 쿠키정보는 받을 수 없기에, Response의 form에 SESSIONID가 숨어있다고 (백 번 양보해서..) 가정한다. (생각보다 Response에 개인정보가 평문으로 존재하는 경우가 많으니까) '당신의 CORS는 안전합니까요 !?' 버튼을 클릭하면 result div에 응답 텍스트가 .. 공감수 0 댓글수 1 2024. 2. 28.
  • 2-3. 취약한 CORS 유형 (3) - NULL 출처 허용 유형 (3) 설명 로컬에서 서버 대상으로 테스트 개발을 진행하고자 할 때, 아래와 같은 에러가 발생한다. Access to script at 'file:///C:/경로/접근하고자 하는 파일' from origin 'null' has been blocked by CORS policy: Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https. 즉 이 경우는 서버 프로젝트를 직접 로컬에 다운받아 개발을 테스트하는 경우에서 많이 발생하며, file:// 프로토콜을 통해 로컬 파일 시스템으로 html 등을 열게 된다. 👉 그래서 '내 환경에서 내 파일을 여는데 왜 SOP가 아니라.. 공감수 0 댓글수 0 2024. 2. 20.
  • [Wazuh] API error - 3099 - ERROR3099 Wazuh net ready yet 에러 배경 이미 구축된 Wazuh 서버에 worker 서버 한 대를 더 추가하기 위해, filebeat / SSL 인증서 배포 / wazuh-manager 패키지 설치를 수행했다. 이후 대시보드에서 추가한 worker의 API를 보려고 하면 이 오류가 발생했다. 저는 한을 풀터이니 결론부터 보고 싶으시다면 조금 더 아래로 가주십시오... 확인 과정 🧚‍♀️ 다른 API들은? 정상적으로 대시보드에서 접근할 수 있었다. 🧚‍♀️ 인증서 배포나 패키지 설치 5번 정도 다시 수행하고, 서비스를 재기동했다. 아무 문제 없다. 🧚‍♀️ filebeat test output 수행 결과 모든 분산 indexer와 정상 TLS 통신한다. 🧚‍♀️ /var/ossec/etc/ossec.conf worker 서버의 설정 재.. 공감수 1 댓글수 0 2024. 2. 20.
  • 2-2. 취약한 CORS 유형 (2) - 잘못 설정된 정규표현식(regex misconfiguration) 유형 (2) 설명 2-1. 취약한 CORS 유형 (1) - 반사된 ACAO 및 True ACAC 개요 챕터 2에서는 CORS를 어떻게 설정하면 보안에 취약해지는가를 알아보기 위해서, 1) 취약한 설정 확인 방법 2) 대응방안을 알아보도록 한다. 확인 과정 일단 Burp Suite나 ZAP를 통해 패킷을 잡아 likethefirst.tistory.com 이전 글에서는 응답 Access-Control-Allow-Origin 헤더에 허용할 Origin만 화이트리스트로 관리해야 한다고 했다. 그렇다면 이 ACAO 헤더는 정규표현식을 활용해 example.com의 서브 도메인만 허용할 수 있을 것이다. 취약점 확인 Java에서 다음과 같은 정규표현식으로 화이트리스트를 관리한다고 해보자. private static.. 공감수 0 댓글수 0 2024. 2. 18.
  • 2-1. 취약한 CORS 유형 (1) - 반사된 ACAO 및 True ACAC 개요 챕터 2에서는 CORS를 어떻게 설정하면 보안에 취약해지는가를 알아보기 위해서, 1) 취약한 설정 확인 방법 2) 대응방안을 알아보도록 한다. 확인 과정 일단 Burp Suite나 ZAP를 통해 패킷을 잡아서 요청 헤더에 Origin이 있으면 조작해보고, 응답 헤더가 어떻게 반환되는지 확인하는 것이 기본적인 확인 방법이다. (앞으로 작성할 취약한 CORS를 확인하는 모든 유형에 대해) 유형 (1) 설명 CORS 관련 골치아픈 오류를 회피하기 위해, 1) 응답 Access-Control-Allow-Origin 헤더(이하 ACAO 헤더)를 요청 Origin 그대로 응답하도록 설정하고, 2) Access-Control-Allow-Credentials 헤더(이하 ACAC 헤더)를 True로 응답하도록 개발.. 공감수 0 댓글수 0 2024. 2. 18.
  • 1-5. CORS - Credentialed Request 개발자가 CORS 정책을 잘못 설정하는 경우 XSS, CSRF 등의 보안 위협이 존재할 가능성이 있다고 하였다. 취약한 CORS 구성을 알아보기 전, 자격증명(Credential)이 전달되는 경우의 CORS 요청에 대해 어떻게 처리해야 하는지 간략히 짚고 넘어간다. Credentialed Request Credential 정보로 취급되는 것 정확히 Credentialed Request로 취급되는 것은 아래 두 가지 경우다. 🤍 쿠키를 포함한 요청 🤍 헤더에 Authorization 항목이 포함된 요청 이전 글인 1-2에서 XHR 객체를 통해 Cross-origin 요청을 하는 코드를 살펴보았다. var httpRequest = new XMLHttpRequest(); var url = "https://ap.. 공감수 0 댓글수 0 2024. 2. 17.
  • 1-4. CORS - Simple Request vs Preflighted Request 단순 요청인 Simple Request와 프리플라이트 요청이라 불리는 Preflighted Request는 무슨 차이가 있을까? Pre- 접두사가 붙은 것을 보아 미리 뭔가를 더 하겠다는 느낌을 받는다. 단순 요청과 프리플라이트 요청에 차이를 둔 이유와 보안적으로는 어떤 부분이 다른지의 관점 위주로, 이번에는 간단하게 비교해서 정리한다. 가정 http://www.example.com에서 http://api.example.com으로 Ajax GET 요청을 통해 데이터를 받아온다. 🔊 Simple Request Request Response GET /data HTTP/1.1 Host: api.example.com Origin: http://www.example.com HTTP/1.1 200 OK Access.. 공감수 1 댓글수 1 2024. 2. 15.
  • 1-3. 환경별 CORS Response 헤더 설정(Node / .NET / Java) 동작 원리 - 응답 헤더 설정 상세 Cross-site Origin 요청에서는 헤더에 'Origin: protocol://domain:port'이 서버로 전송된다. Same Origin이라도 GET, HEAD 요청을 제외한 메서드는 Origin 헤더가 추가되며, mode 설정에 따라 요청에 사용 가능한 헤더가 제한될 수 있다. 즉 Same Origin이어도 CORS 요청으로 취급될 수 있어 유의해야 한다. So, what the spec means there is: The Origin header is sent in all cross-origin requests, but it’s also always sent for all POST, PUT, PATCH, and DELETE requests — even .. 공감수 0 댓글수 0 2024. 2. 14.
  • 1-2. Request 소스코드를 통한 CORS 동작 원리 (XHR) 동작 원리 (1) - 기본 동작하게 만드는 것은 간단히 다음과 같이 헤더를 추가하는 방식으로 하는데, 요청 헤더를 통해 Origin에 대한 정보를 데이터를 받을 서버로 보내면, 데이터를 줄 서버에서 Origin을 검증하여 브라우저가 권한을 확인하게 한다. 동작 원리 (2)에 조금 더 자세한 내용이 있다. 단, MDN에 의하면 요청 헤더인 Origin은 프로그래밍 방식으로 변경할 수 없다. (즉 소스코드에 의해 Origin 요청 헤더를 추가하거나 제외할 수 없다.) A forbidden header name is the name of any HTTP header that cannot be modified programmatically; 그러므로 아래에 나올 코드(요청 단)가 아닌 서버에서 CORS를 활성화.. 공감수 1 댓글수 1 2024. 2. 14.
  • 1-1. CORS 개념과 Origin에 대해 작성배경 CORS는 그냥 다른 사이트에서 접근하는 것을 막아주는 거라고 했다..! 정도의 지식을 갖고 있어 스스로 부끄러움이 느껴져 해당 글을 작성하면서 공부해본다. 예전에 신입 면접보려고... 접근 허용된 url~? 오브CORS~ 하고 외우기만 했던 기억이..ㅎ 오늘 Request 헤더에 Origin이 있고 CORS 관련 응답 헤더가 있는 패킷을 본 적이 있어서, 잘만 하면 뭔가뭔가의 취약점이 있을 것 같은데 잘 되지 않기도 했다. 이번에는 bugbounty club이라는 곳을 통해서 CORS 개념, 동작원리, 취약한 환경에서 실습도 하며 공부해보려고 한다. 아래 그림을 보면 모니터 속의 외부 공격자는 CONFIDENTIAL이라고 적힌 기밀 문서를 읽는 그림인데 인상 깊다. CORS? CORS는 Cro.. 공감수 0 댓글수 0 2024. 2. 13.
  • [Wazuh] 에이전트가 서버에 등록되는 과정을 알아보자 배경 설치만 하면 뚝딱 등록되는 Wazuh manager에 !인 줄 알았으나 꼭 그렇지만은 않은 것 같았다. 😅 Wazuh agent 배포 '담당자'쓰......로서 install만 되게 하는 게 아니라 내부적으로 어떻게 진행되는지 정도는 이해가 필요하다고 느껴졌다. 뭐 이런 사소한 것까지 중요하지 않을 수는 있다. 대신 다양한 문의가 인입됐을 때 당황하고 싶지 않아서 오늘 저녁은 이 녀석과 함께한다. (할 거 많은뎅...) 개요 Wazuh document대로 진짜 설치만 하면 등록이 되긴 한다. 그렇게 보면 위의 '설치만 하면 뚝딱 등록되는' 이라는 설명이 어느정도는 맞는다. 문서들을 참고하면 아래와 같이 WAZUH_MANAGER 환경 변수를 통해 자동으로 에이전트를 등록할 수 있다고 한다. Pleas.. 공감수 0 댓글수 1 2024. 1. 30.
  • 2-5. SQL Injection 진단은 프록시 도구로 (feat. 껍데기뿐인 클라이언트 코드) 보호되어 있는 글입니다. 공감수 0 댓글수 0 2024. 1. 22.
  • 2-4. Search Function에서의 올바른 취약점 점검 방법 보호되어 있는 글입니다. 공감수 0 댓글수 0 2024. 1. 20.
  • 2-3. SQL Injection 취약점 분석 단계 training 보호되어 있는 글입니다. 공감수 0 댓글수 0 2024. 1. 20.
    문의안내
    • 티스토리
    • 로그인
    • 고객센터

    티스토리는 카카오에서 사랑을 담아 만듭니다.

    © Kakao Corp.