본문 바로가기

Hack/Web44

[go-and-dont-return] Github Security Lab CodeQL CTF 문제 요약 CTF Link : https://securitylab.github.com/ctf/go-and-dont-return/ MinIO는 Amazon S3 호환 객체 저장소로, 2023년 4월 MinIO Admin API에서 Authentication Bypass 취약점이 발견되었습니다. 해당 취약점은 Admin Access Key를 알고 있다면, Secret Key을 모르는 상태에서도 Admin API 작업을 수행할 수 있는 취약점으로 CVE-2020-11012를 할당받았습니다. 취약점이 조치된 Commit을 보면, 에러가 발생했을 때 Return이 누락된 것을 볼 수 있습니다. func validateAdminSignature(ctx context.Context, r *http.Request, r.. 2023. 8. 21.
CodeQL 설치 및 사용 방법 CodeQL 설치 방법 ※ 아래의 설치 방법은 Linux 및 Windows의 설치 방법이며, Mac은 이 링크를 참고 1. CodeQL CLI 설치를 위해 CodeQL Bundle을 다운로드합니다. 해당 Bundle에는 아래의 프로그램이 포함됩니다. - CodeQL CLI - CodeQL Queries 및 Libraries 호환 버전 - Bundle에 포함된 모든 Queries의 사전 컴파일 버전 2. 다운로드 받은 Bundle을 압축 해제한 뒤, 환경 변수 PATH에 등록해줍니다. 파일 이름에 Platform 정보가 있는 파일은 모든 Platform의 CLI가 포함되어 있습니다. Releases · github/codeql-action Actions for running CodeQL analysis. .. 2023. 8. 21.
[2020 Hitcon] Discover Vulnerabilities with CodeQL 번역 아래 내용은 2020년 Hitcon Conference 발표 자료를 번역하여 작성한 내용임을 밝힙니다. https://hitcon.org/2020/slides/Discover vulnerabilities with CodeQL.pdf https://hitcon.org/2020/agenda/46b26ca1-b4fc-461f-8ee3-b72a3aea7339/ CoeQL은 Variant Analysis를 지원하는 광범위한 라이브러리와 함께 제공되며, 여러 Langauge(C/C++, C#, Java, Javascript, Python ..)을 지원합니다. Static Analysis Data Flow Analysis Taint Anaylsis CFG Analysis Static Analysis Snapshot .. 2023. 7. 25.
[CVE-2023-0842] xml2js Prototype Pollution Node JS Prototype Pollution은 Prototype의 특성을 이용하여 다른 객체들의 값을 오염시키는 공격 기법입니다. 객체의 프로토타입은 객체.__proto__를 통하여 참조할 수 있으며, 객체의 프로타입이 변경되면 해당 객체와 같은 프로토타입을 가진 모든 객체들에 변경사항이 적용되게 됩니다. 또한, 객체의 프로토타입은 Object.prototype과 동일하기 때문에 프로토타입의 변조를 통하여 일반적인 객체들의 속성을 제어할 수 있게됩니다. 아래의 예제를 통해 obj 객체의 프로토타입에 polluted 속성을 1로 지정한 결과, obj와 같은 프로토타입을 갖고 있는 obj2에도 polluted 속성이 1로 설정된 것을 확인할 수 있습니다. const obj = {}; console.lo.. 2023. 5. 13.
BitB (Browser in the Browser) 공격 배경 최근 아래와 같은 기사를 접하게 되었는데, 내용을 요약하자면 북한 해커조직이 Phishing 공격에 BitB(Browser in the Browser) 기술을 사용하고 있다는 내용이었습니다. 북한 해커조직, 실제 주소와 똑같은 피싱 사이트 사용한다? BitB 기술 악용 최근 북한 해커조직이 피싱 공격에 BitB(Browser in the Browser) 기술을 사용하는 등 피싱 관련 기술이 고도화되고 있어 주의가 요구된다. 과거의 피싱 공격은 피싱 사이트의 주소가 실제 사이트와 달 www.boannews.com 그럼 이제 여기서 말하는 BitB (Browser in the Browser) 공격이 무엇인지 한 번 알아보도록 하겠습니다. BitB (Browser in the Browser) 공격 Bit.. 2023. 4. 23.
[CVE-2023-20860] Spring Framework Improper Access Control Spring Framework WebMVC는 Web Application을 개발하는데 사용되는 MVC(Model-View-Controller) 제공하는 Package 입니다. 해당 Package에서 경로 기반 인증 로직을 우회할 수 있는 취약점이 발견되었으며,해당 취약점은 CVE-2023-20860이라는 번호를 부여받았습니다. 취약점 상세 내용 Spring Security 설정에서 mvcRequestMatcher를 사용하여 경로 기반의 접근 제어를 수행할 수 있습니다. 아래의 예제 코드를 보면, mvcMatchers 메서드를 이용하여 admin/** 경로에 대한 접근 제어를 추가하고 있습니다.그런데 Spring Security와 Spring MVC에서 **를 해석하는 과정이 달라 경로를 기반으로한 접근 .. 2023. 3. 26.
[Kotlin] Use-Site Target이 존재하지 않을 경우 검증 우회 가능 Data Class의 경우 NotBlank와 같은 검증 Annotation을 Use-Site Target과 같이 사용하지 않을 경우, 생성자 구문에 검증 코드가 작성되는 문제가 있음 // 생성자에 NotEmpty와 NotBlank가 적용되는 잘못된 코드 data class UserInfoDto ( @NotEmpty(message="값이 비어있으면 안됩니다.") @NotBlank @Email(message="이메일 주소를 입력해주세요.") var email : String?, var password : String?, ) 반드시 Use-Site Target을 명시하여 필드 변수에 대한 검증을 수행하도록 해야 함 // 변수에 NotEmpty와 NotBlank가 적용되는 올바른 코드 data class Use.. 2023. 2. 21.
Click Jacking이란? Click Jacking이란 무엇인가? Click Jacking은 사용자가 의도하지 않은 클릭 행위를 유도하는 공격 기법입니다. Click Jacking 공격은 웹사이트 상의 버튼, 링크 등을 통해 사용자를 다른 웹 페이지로 유도하여, 사용자가 악성 페이지에서 의도하지 않은 동작을 수행하게 만듭니다. Click Jacking은 "UI Redress Attack" 또는 "User Interface Redress Attack"으로도 알려져 있습니다. Click Jacking 공격 원리 Click Jacking 공격은 웹 페이지 내에 들어 있는 iframe 요소를 이용하여 수행됩니다. iframe 요소는 다른 웹 페이지를 포함하고 있는 HTML 태그로, 다른 웹 페이지를 포함하면서도 현재 웹 페이지의 내용을 .. 2023. 2. 12.
npm 취약점 점검 도구 - npm audit 먼저 npm이란 javascript 또는 typescript 언어를 위한 Package 관리 도구입니다. npm에는 개발자 편의를 위한 여러가지 Command가 존재하는데, 그 중 취약점 점검 기능인 audit에 대하여 설명하도록 하겠습니다. 사용 방법은 매우 간단합니다. # Default Usage $ npm audit # output json format $ npm audit --json 발견된 취약점에 대한 조치도 단순한 명령어를 통하여 손쉽게 진행할 수 있습니다. $ npm audit fix 다만, deprecated 되었거나 변경된 기능으로 인하여 프로그램이 정상적으로 작동하지 않을 수 있어 사전 백업 후 반드시 작업을 진행해야 할 것 같습니다. Reference About audit repor.. 2022. 11. 16.