본문 바로가기

반응형

old

(225)
사이버 보안: 운영체제 명령 실행이란? 정의 운영체제 명령 실행 취약점은 악의적인 사용자가 운영체제의 명령어를 이용하여 시스템에 악성 코드를 실행시키거나 비정상적인 동작을 유도하는 취약점입니다. 취약점 발생 지점 리스트 모든 페이지 http request를 받았을때, 피라미터값에 따라 운영체제가 명령을 실행하는 경우 취약점 검증 방법 웹 애플리케이션에 전달되는 파라미터 값에 공개적으로 알려진 운영체제 명령 실행 코드 삽입 후 명령어가 실행되는지 확인 Apache Struts 2 RCE(Remote Code Execution) 취약점(공개적으로 알려진 운영체제 명령 실행 코드) 참고사이트: https://cwiki.apache.org/confluence/display/WW/Security+Bulletins 아래코드는 Struts 2 프레임워크의..
사이버 보안: 인증과 인가 취약점이란? 정의 인증 사용자의 신분을 확인하는 절차, 그 사람이 맞는지 확인 하는 작업 인증(Authentication)은 사용자나 시스템이 신원을 확인하는 프로세스를 말합니다. 이는 사용자가 자신이 주장하는 신원을 증명하거나, 시스템이 자원에 접근하려는 주체의 신원을 확인하는 것을 포함합니다. 인증은 사용자가 올바른 자격 증명(예: 사용자 이름과 암호)을 제공하여 자신의 신원을 확인함으로써 이루어집니다. 인증은 로그인 프로세스에서 자주 사용되며, 사용자가 시스템에 액세스할 수 있는 권한을 얻기 위해 필요한 첫 번째 단계입니다. 인가 허락된 사람에게 어떤 권한을 부여하는 작업 인가(Authorization)는 인증된 주체가 특정 자원이나 기능에 대한 액세스 권한을 가지고 있는지 확인하는 프로세스를 말합니다. 인가는..
사이버 보안: 동적분석과 정적분석이란? 정의 프로그램을 분석하는 방법 동적 분석 (Dynamic Analysis) 여러번 실행해가며 확인 동적 분석은 소프트웨어가 실행되는 동안 소프트웨어의 동작을 분석하는 방법입니다. 소프트웨어가 실행되면 동적 분석 도구를 사용하여 프로그램의 동작, 상태, 데이터 흐름 등을 모니터링하고 분석합니다. 장점 실행 중인 소프트웨어의 실제 동작을 분석하므로 실제 환경에서 발생하는 문제를 파악할 수 있습니다. 단점 실행 중인 소프트웨어의 동작을 분석하기 때문에 성능에 영향을 줄 수 있습니다. 실행 환경에 제한됩니다. 정적 분석보다 시간과 리소스가 많이 소요될 수 있습니다. 정적 분석 (Static Analysis) 눈으로 코드 계속 읽기 정적 분석은 소프트웨어가 실행되지 않은 상태에서 소스 코드를 분석하는 방법입니다...
LeetCode 75. Sort Colors 자바 문제 풀이 문제 Sort Colors - LeetCode 문제 해결 방법 정렬을 하는데 함수(메서드)를 쓰지 말라는 조건이 붙었으므로, 정렬알고리즘을 구현할수 있는지 물어보는 문제입니다. input이 0,1,2뿐이므로, 이를 이용한 로직 알고리즘으로 푸는 것이 가능합니다. 알고리즘 모든 엘레멘트를 순회하며, 0,1,2의 개수를 확인합니다 각 개수만큼 0,1,2순서대로 어레이에 넣습니다. Follow up에서 원하는 one-pass algorithm은 네덜란드 국기 알고리즘을 알고 있느냐고 묻는것이며, 이 알고리즘은 0,1를 정렬하는데 특화된 알고리즘 입니다. 또는 퀵정렬을 구현할수도 있습니다. 참고 네덜란드 국기(Dutch National Flag) 알고리즘이란 퀵정렬이란 Github Link https://git..
파일 업로드 공격 치트시트 파일 업로드 우회 방법 NULL Byte Bypass webshell.php%00.jpg webshell.php%00.jpg 와 같이 중간에 NULL Byte를 넣어주게 되면, NULL Byte는 문자열의 끝을 의미하므로 처리되는 파일명은 webshell.php가 되게된다. HTML Encoding 잘 안되는 경우가 많은데 간단한 방법으로 webshell.ph%70 와 같이 HTML Encoding을 이용하는 방법이 있다. PHP의 숨겨진 확장자명 PHP5는 안되고 PHP7에만 해당되는 내용이다. PHP7에는 .php 이외에 추가로 인식하는 확장자가 여러개있다. .php .php3 .php4 .php5 .php7 .pht .phtml .htm .html JSP의 숨겨진 확장자명 .war 확장자 뒤에 .를..
사이버 보안: File Upload 파일 업로드란 정의 파일 업로드 공격은 악의적인 사용자가 웹 응용 프로그램 또는 웹 사이트에 파일을 업로드하여 보안 취약점을 악용하는 공격입니다. 보통 웹쉘파일을 업로드 합니다. 사이버 보안: 웹셀(Web Shell) 이란 취약점 발생 지점 리스트 업로드 가능한 파일의 종류 파일이 업로드된 경로가 확인 가능하고 또 실행이 되는 경우 취약점 검증 방법 파일 업로드 기능이 있는 게시판 로그아웃한 상태에서 마이페이지 접근 파일 업로드 공격 치트시트 공격법 공격순서 공격자는 웹 응용 프로그램의 파일 업로드 기능을 이용하여 파일을 업로드합니다. 어떤 유형의 파일이 허용되는지 확인한다 (php, png, jpg…etc). 업로드된 파일이 서버의 어느 경로에 저장되는지 파일경로가 노출되는지 확인한다. 노출된 경로로 get 방식으로..
사이버 보안: 웹셀(Web Shell) 이란 정의 웹쉘(Web Shell)은 웹 기반 인터페이스를 통해 원격으로 웹 서버를 제어하기 위해 사용되는 애플리케이션 또는 스크립트입니다. 웹쉘은 다양한 형태와 기능을 갖춘 다양한 버전이 존재하며, 일반적으로 PHP, ASP, JSP 등 다양한 웹 언어로 작성될 수 있습니다. 웹쉘을 이용하면 사용자는 웹 서버의 파일 시스템 탐색, 명령 실행, 데이터베이스 액세스 등 다양한 시스템 작업을 수행할 수 있습니다. 해킹에서의 웹쉘 웹쉘은 공격자가 웹 서버에 액세스하기 위해 사용되는 도구로서 악의적인 목적으로 사용될 수 있습니다. 웹 서버에 악성 스크립트를 업로드하고 실행하여 공격자가 원격으로 시스템 명령을 실행하고 제어할 수 있게 합니다. 즉, 웹사이트를 통해 쉘(shell)을 열게하여, 웹에서 받은 요청을 운영체..
네덜란드 국기(Dutch National Flag) 알고리즘이란 정의 네덜란드 국기(Dutch National Flag) 알고리즘은 0과 1로 구성된 배열을 정렬하는 알고리즘입니다. 사용을 고려해야 하는 경우 배열에 0과 1이 포함되어 있으며, 이를 정렬하여 0과 1을 구분하고자 할 때. 추가적인 메모리 공간 없이 배열의 요소를 제자리에서 정렬하고자 할 때. 사용하면 안되는 경우 네덜란드 국기 알고리즘은 0과 1로 구성된 배열을 정렬하는 데에만 사용할 수 있습니다. 다른 종류의 요소를 정렬하기 위해서는 다른 알고리즘을 사용해야 합니다. 장점 추가적인 메모리 공간을 사용하지 않고 제자리에서 배열을 정렬할 수 있습니다. 시간 복잡도: O(n) 공간 복잡도: O(1) 단점 0과 1로 구성된 배열에 대해서만 적용 가능하며, 다른 요소를 정렬하는 데에는 적합하지 않습니다. 2..

반응형