본문 바로가기

Technical Docs

(35)
Source Map 이 뭘까요~ 요즘에 많이 사용하는 React 등등의 프레임워크를 사용해서 서비스를 하면 실제 브라우저를 통해 js를 보면 Webpack에 의해서 많이 압축되어있다. 요런 압축되어 있는 소스와 원본 소스를 매핑시켜주는 맵이라고 생각하면된다. 압축한걸 왜 다시 매핑해주냐면 실제 서비스에서 에러가 발생하면 압축되고 난독화 되어있기 때문에 디버깅 하기가 되게 난해하다. 그런걸 방지하기 위해서 Source Map이 있다고 생각하면 편할듯하다...? React 메인 홈페이지로 들어가보자. 사진을 보면 React 자체에서 압축을 해서 내려보내기 때문에 사용자 입장에서는 해당 JS를 수정하거나 이해하거나... 등등 불가능하다. 그러면 이제 다음 사진을 보자. 아래에 web pack:// 이라는 곳을 보면 React 에서 제공하는 .. 뚜봄뚜봄  2022. 6. 1. 21:57
CVE-2022-22978 Authorization Bypass in RegexRequestMatcher 해당 취약점은 스프링에서 발생하는 취약점이다. 대충 어떤 취약점이냐면 Authorization Bypass in RegexRequestMatcher 인데, 대충 해석해보면 RegexRequestMatcher 에서 어떤 특별한 페이로드 삽입을 통해 Authorization를 우회한다는 내용인것같다. 좀 더 자세히 살펴보자. 머 CVSS 점수가 몇 점이고 뭐 그런거는 구글에 CVE 번호만 검색해도 수두룩하게 나온다. https://nvd.nist.gov/vuln/detail/CVE-2022-22978 NVD - CVE-2022-22978 References to Advisories, Solutions, and Tools By selecting these links, you will be leaving NIS.. 뚜봄뚜봄  2022. 5. 31. 22:22
Log4j JNDI Injection 부분 간단정리 ? Log4j Shell 에서 뭐 원격지의 코드는 받아오는데 그래서 뭐 어케 실행되는거임? 하는 궁금증이 생겨서 메모겸 블로그 글을 작성한다 ## JNDI ? JNDI는 Java Naming and Directory Interface로 디렉터리 서비스(LDAP, DNS, NIS, 파일 시스템)를 발견하고 Lookup을 통해 디렉터리 Object를 Naming 해주는 Java API이다. Naming을 사용할 때 ${protocol:value} 이런식으로 Binding 되기 때문에 이번 공격의 페이로드가 ${ldap:127.0.0.0/a} 이런모양이다. 라고 이전 Log4j 게시물에 작성을 했다. ## 핵심 log4j 의 로깅하는 부분에서 JNDI 구문이 실행 가능하다. ---> 요게 log4j의 핵심이고 J.. 뚜봄뚜봄  2022. 2. 12. 13:36
Manifest 구조를 알아보자 # Manifest ?? 안드로이드에서 매니페스트란 apk 파일을 보면 루트경로에 위치해 있는 application의 기본적인 정보를 담고있는 파일이라고 생각하면 된다. 디바이스에서 해당 파일을 읽고 어떤 권한을 주고 어떤 액티비티를 먼저 실행시키는지 등등을 알려준다고 생각하면 될듯? # 구조는 어떨까 ?? 기본적인 구조는 아래와 같다 manifest : 패키지명 , 버전정보, 구성하는 클래스 패키지명 정의 uses-permission : 앱에서 사용할 시스템 권한을 정의 permission : 앱에서 제공하는 권한이외에 컴포넌트에서 정의하는 권한(다른 앱에서 해당 앱 접근 등등) permission-tree : permission-group : instrumentation : 시스템 이벤트 발생 시 애.. 뚜봄뚜봄  2022. 1. 10. 21:41
[Container] 쿠버네티스는 왜 도커 사용을 중단하는가? 공식 문서를 보면서 지원을 중단하는 이유를 알아보고자 작성함. 요약 1. 쿠버네티스가 1.20 이후로 도커를 지원하지 않겠다고 발표함. 2. 도커는 CRI(Container Runtime Interface)를 지키지 않았다고 함. 3. 쿠버네티스가 1.23 부터 Dockershim 최초 릴리스하겠다고 함. (cri-o 사용 예정) 4. 쿠버네티스가 1.24 부터 Dockershim 제거하겠다고 함. 도커는 CRI(Container Runtime Interface)를 지키지 않았다고 하는 이유는? 2018년 도커와 컨테이너 구동 방식을 도식화한 자료임. kubelet -> CRI -> dockershim -> dockerd -> containerd -> Container kubelet -> CRI -> c.. chdwjfdl  2022. 1. 5. 16:54
Sublime text3 에서 python3 입력 편하게 하기 예전에 백준이나 릿코드에서 알고리즘 문제를 풀다보면 입력이 정말 복잡한 경우가 많다. 코딩을 하다보면 뭐 복붙으로 인해 클립보드가 예제 입력이 아닌 다른걸로 덮어씌워지는 경우가 많이 때문에... 나는 그냥 인풋 값을 텍스트 파일에 저장해서 코드만 수정하고 바로 실행해서 결과를 확인한다. 예전에 같이 연구실 사용하던 친구가 해당 방법을 알려준 이후로 지금까지도 유용하게 쓰고있다. 해당 설정 방법은 매우 쉽다. 1) 작성한 python 폴더가 있는 곳에 input.txt 파일을 하나 만든다. 2) Sublime text 3 > Tools > Build System > New Build System ... 을 클릭한다. 그리고 아래와 같이 작성한다. { "shell_cmd": "python3 -u $file .. 뚜봄뚜봄  2022. 1. 5. 00:44
네임 맹글링 (Name Mangling or Name Decoration) 기본적으로 자바에서 call 하는 함수의 경우에는 Java_com_xxx 이와 같은 형식으로 함수 네이밍이 되어있다. 그런데 C, C++ 내부에서 사용하려고 클래스를 만들거나 그 안의 함수를 후킹할 때 IDA에서 function List로 볼 때는 그냥 개발자가 선언한 함수 이름으로 보이지만 실제 frida 등을 통해서 후킹할 때는 맹글링된 이름을 가져와야한다. 뭐 사실 나도 frida에 대해서 많은 함수를 써본것도 아니니 다른 방법을 통해 후킹이 가능하다면 댓글 부탁드림미다.... ## Name Mangling ?? 우선 Name Mangling이 뭔지 알아보자. 위키에 따르면 컴파일러에서 프로그래밍 entity에 대한 고유한 이름을 해결해야 하는 필요성으로 인해 발생하는 다양한 기술 문제를 해결하기 .. 뚜봄뚜봄  2021. 12. 30. 13:47
Log4j 취약점 CVE-2021-44228 (Remote Code Injection) 2021년 12월9일 해당 취약점 나온듯? 현재 CVE 번호는 CVE-2021-44228 임 ## 핵심 Flow 는 아래와 같음 A : Log4j 취약한 버전을 사용하는 서버 B : 공격자 A의 서버에서 사용자의 입력을 로그로 저장하는 곳이 존재함 (ex. HTTP Header 중 X-Api-Version) 해당 장소에 B가 페이로드를 넘김 서버가 B의 입력을 로그 기록함 JNDI Lookup을 통해 해당 구문이 실행됨 (코드는 JNDI Injection 페이로드로 구성되며, 해당 코드를 실행시키는건 JNDI Lookup을 통해 이루어짐) JNDI Injection 관련 내용은 아래 링크에 있음 https://www.blackhat.com/docs/us-16/materials/us-16-Munoz-A-J.. 뚜봄뚜봄  2021. 12. 20. 22:14