본문 바로가기

반응형

전체 글

(237)
파일 업로드 공격 치트시트 파일 업로드 우회 방법 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..
재귀 함수 짜는 법 재귀 함수 짜는 법 모든 반복문을 재귀 함수로 변환하는 것은 가능하지만, 이는 일반적으로 어려운 작업입니다. 그 이유는 재귀 함수의 사고 방식이 일반적인 인간의 사고 방식과 다소 다르기 때문입니다. 따라서 이를 습득하려면 충분한 연습과 익숙함이 필요합니다. 저는 이를 극복하기 위한것은 잘 반복문자체를 잘 정리하는 것이라고 생각해서 아래와 같은 표를 만들었습니다. 그리고 이를 바탕으로 쉬운 반복문부터 조금씩 어려운 반복문을 재귀함수로 구현하여, 나중에 이런 표없이 바로 구현하는것을 목표로 잡았습니다. 재귀함수 구현 목표: 종료 조건 (Base Case): 이전단계의 결과가 필요한가?: 문제분할 (Divide the Problem): 결과의 조합: 재귀호출, 다음 단계로 가기전 변경 할점 (Recursive..
웹 해킹 예제: 세션 고정 공격 로그인 화면 로그인시도 Request 로그인 완료 혹시나 하는 위험을 감수하기 위해서 가려놓았지만, 위 웹싸이트는 로그인 전에 세션을 미리 발급하고, 로그인시도 Request에서 ID와 비밀번호를 받아서 검증하는것을 확인할수 있습니다. 즉, 세션ID발급(인증안됨) → 로그인 인증 → 세션ID(인증완료) 그대로 사용 하는 웹싸이트이므로, 로그인 우회가 가능합니다. 가짜 로그인 시도 Burp suite의 리피터를 사용해 ID만 admin으로 바꾸어서 요청을 보냅니다. 당연히 답은 fail로 오지만 이미 인증과정에서 서버상의 사용자 ID는 변경되었고, 세션ID는 이미 인증상태이기 떄문에, 위쪽의 로그인 완료상태의 요청을 다시보내면 로그인 상태로 나오며 ID는 변경됩니다.
LeetCode 1672. Richest Customer Wealth 자바 문제 풀이 문제 Richest Customer Wealth - LeetCode 문제 해결 방법 2D어레이를 다루어서 값을 모두 더하고, 그를 이용해서 최적화를 할수 있는가 물어보는 문제이다. 처음에는 간단하게 다 더한 값을 어레이에 저장하고, 그 어레이를 지나며 최대값을 찾는 방식으로 답을 구하였는데, 최적화를 잘하면 굳이 어레이에 값을 저장할 필요가 없이 바로 최대값을 찾으면 된다. 일단 다 짠다음에서야 최적화가 가능하다는것을 깨달았는데, 바로 좋은 알고리즘을 짤수있도록 많이 문제를 풀어봐야 한다. 알고리즘 첫번째 반복문에서 각 어레이를 가져온다 두번쨰 반복문에서 각 어레이의 값을 모두 더한다 두번째 반복문이 끝나면 모두 더한값을 비교하여, 높은 수일 경우 저장한다 저장한 값을 리턴한다. Github Link h..
파이썬의 연산자 정리 파이썬에서 사용되는 산술 연산 종류 기호 설명 반환값 + 덧셈 입력된 값의 자료형에 따라 다름 - 뺄셈 입력된 값의 자료형에 따라 다름 * 곱셈 입력된 값의 자료형에 따라 다름 / 나눗셈 실수값 반환 // 나눗셈(몫) 정수값 반환 % 나머지 실수값 반환 ** 거듭제곱 입력된 값의 자료형에 따라 다름 and 논리 곱 참(True) 또는 거짓(False) 반환 or 논리 합 참(True) 또는 거짓(False) 반환 크다 참(True) 또는 거짓(False) 반환 = 크거나 같다 참(True) 또는 거짓(False) 반환 == 같다 참(True) 또는 거짓(False) 반환 결과 +, -, *, /, //, %, **, , = 표 A B 결과 int int int A+B 결과 int float float A..

반응형