반응형

보안 공부 168

서버 정보 노출 차단2(Tomcat, Jetty 서버)

서버정보노출 차단 방법입니다. 기본적인 방법에 대해서는 기존 포스팅을 보시면 좋으실것 같습니다. (apache Coyote, Apache, x-powered-by(php)) https://itinformation.tistory.com/63 서버버전 노출 대응방안 모음 @@ apache Coyote ■ server : Apache-Coyote/1.1가 노출되는 상황 ■ 대응방법 - server.xml의 http Connector 설정에 다음과 같이 server=" "를 추가하고 그 사이에 노출을 원하는 문자열을 삽입 itinformation.tistory.com - Tomcat - ------------------------------------------------------------------ /et..

IIS HTTP 불필요 메서드 차단 방법

HTTP Method를 통한 공격 방지를 위하여 차단여부에 대해 알아보겠습니다. 기존 포스팅으로 Apache에 대한 설정여부에 대하여 포스팅 하였고, 그 때 포스팅한 IIS 방법으로 조치가 되지 않는다는 업무팀이 존재하여 다른 방법을 다시 포스팅합니다. https://itinformation.tistory.com/101 HTTP 불필요한 웹 메서드 차단 방법 HTTP 불필요(보안에 취약한) Web Method 차단 방법 입니다. 1. httpd.conf 파일에 설정 Order allow,deny deny from all -> 근데 이 방법은 설정한 디렉터리에.. itinformation.tistory.com 다른 취약점에 대한 설정들과 마찬가지로, 차단할 메서드를 적는 것이아닌, 허용할 메서드를 적어주는..

SQL Injection 취약점

SQL Injection 공격 ->코드 인젝션의 한 기법으로 클라이언트의 입력값을 조작하여 서버의 데이터 베이스를 공겨할 수 있는 공격방식이며 주로 사용자가 입력한 데이터를 제대로 필터링 하지 않았을 경우 발생합니다. 공격은 쉬운데 파괴력이 어마어마하며 자주 일어납니다. - Web Application에서 입력 받아 데이터베이스로 전달하는 정상적인 SQL 쿼리를 변조, 삽입하여 불법 로그인, DB 데이터 열람, 시스템 명령 실행 등을 수행하여 비정상적인 데이터베이스 접근을 시도하는 공격 기법 - 조작한 입력으로 데이터베이스를 인증 절차 없이 접근 및 자료를 무단 유출하거나 변조 할 수 있음 - 무료 SQL Injection 취약점 스캐너 - Nikto : GNU 기반 오픈 소스로 웹서버 및 SQL Inj..

취약한 웹 어플리케이션 DVWA를 통한 취약점 진단_SQL Injection

취약한 웹 어플리케이션 DVWA를 통한 취약점 진단 실습입니다. 실습 : SQL Injection 난의도 : LOW SQL Injectin 이란? 웹 개발자가 SQL 질의에 대한 공격 가능성을 배제하고, SQL 질의를 신뢰할 수 있는 명령으로 판단함을 가정합니다. SQL 질의에서 접근 제어를 우회, 일반적인 인증 및 인증 확인을 무시, SQL 질의가 OS 레벨 명령을 할 수있는 공격입니다. 꽤 오래된 취약점임에도 불구하고 최근에도 많은 사고사례가 발생하고 있습니다. 위와 같이 입력이 가능한 폼에서, SQL Injection 공격이 가능한지 확인하기 위해 싱글쿼터 '를 입력 시도 입력 시 위와 같은 에러 발생, 여기서 알수있는 것은 싱글쿼터에 대한 검증이 이뤄지지 않고 있음과 MySQL를 사용하고 있다는 ..

취약한 웹 어플리케이션 DVWA를 통한 취약점 진단_XSS공격

취약한 웹 어플리케이션 DVWA를 통한 취약점 진단 실습입니다. 크로스사이트스크립크(XSS) 공격 입니다. 일단 XSS에 대한 자세한 설명은 전 포스팅인 아래 URL을 참고 부탁드립니다.! https://itinformation.tistory.com/60 XSS(Reflexted) 취약점 중 LOW, MIDDLE, HIGH에 대한 공격 구문 및 반응들을 살펴 보겠습니다. 처음으로 동작원리를 한번 살펴보겠습니다. 제가 "test"를 입력했을때 Hello test라는 문자열이 출력되는 것을보면, 입력한 값을 그대로 출력해주는 동작을 하는 것임을 예상할 수 있습니다. 해당 입력 폼에 XSS구문을 입력해가며, 테스트 해보겠습니다. ---------LOW LEVEL --입력구문 -> test"> 별다른 검증없이 ..

파이썬으로 파일 크기 구하기

파이썬으로 파일 크기 구하기입니다. 단순한 코드형태로 쉽게 구할 수 있으나, 해당 방법을 다양한 프로그램에 녹여 낼수 있기에 간단하지만 중요할 것으로 예상 됩니다.! ex) 일정크기 이상의 파일을 업로드 하지 못하게 하기 등 파일의 크기를 확인하려면 os.path 모듈의 getsize()를 이용합니다. getsize는 인자로 입력된 파일의 크기를 바이트 크기로 리턴합니다. 예제는 구동되는 디렉터리에 있는 test.txt 파일의 크기를 출력하는 코드입니다. - 사용코드 from os.path import getsize file1 = 'test.txt' #file2 = 'D:\test.zip' file_size1 = getsize(file1) #file_size2 = getsize(file2) print('..

파이썬으로 로또 번호 추출기 만들기

파이썬으로 로또 번호 추출기 만들기입니다. 랜덤으로 번호를 추출하는 방법은 많이 있지만, 파이썬으로 짜는방법입니다! 이번주는 이번호로 사봐야겠어요 ㅎㅎ 예제는 사용자가 입력한 게임 회수만큼 로또 번호를 추출하는 코드입니다. ramdom 모듈의 shuffle()과 time 모듈의 sleep()을 임포트합니다. sleep()은 1게임의 로또번호를 추출하고 잠시 지연 시간을 두고 다음 게임의 로또번호를 추출하기 위해서 사용할 것입니다. 사용자로부터 로또 게임수를 입력받고 지정합니다. ret.sort()로 ret을 오름차순으로 정렬해서 화면에 출력해줍니다. - 사용코드 from random import shuffle from time import sleep num = input('로또 게임 회수를 입력하세요: ..

파이썬으로 텍스트 파일을 한줄씩 읽고 출력하기

파이썬으로 텍스트 파일을 한줄씩 읽고 출력하기입니다. 텍스트 파일을 읽는 방법은 read() 함수를 사용하여 한번에 파일 내용을 읽어 들이는방법도 있습니다. https://itinformation.tistory.com/112?category=835493 파이썬으로 텍스트파일 읽고 출력하기 파이썬으로 텍스트파일 읽고 출력하기입니다. 파이썬으로 파일을 오픈하기 위해서는 open() 함수를 이용하는데, open() 함수의 사용은 아래와 같습니다. open(파일이름, 모드) 함수의 첫번째 인자는 파일의 이름,.. itinformation.tistory.com 하지만 해당 방법은 메모리 문제가 발생할 수 있어, 텍스트 파일을 한줄 단위로 읽고 작업을 수행하는 방법이 있습니다. 파일 객체의 readline()은 텍..

파이썬으로 텍스트파일 읽고 출력하기

파이썬으로 텍스트파일 읽고 출력하기입니다. 파이썬으로 파일을 오픈하기 위해서는 open() 함수를 이용하는데, open() 함수의 사용은 아래와 같습니다. open(파일이름, 모드) 함수의 첫번째 인자는 파일의 이름, 경로가 미입력 시 프로그램이 구동되는 디렉터리내에서 찾습니다. 파일을 오픈하는 모드는 아래와 같습니다. r 또는 rt : 텍스트 모드로 읽기 w 또는 wt : 텍스트 모드로 쓰기 a 또는 at : 텍스트 모드로 파일 마지막에 추가하기 rb : 바이너리모드로 읽기 wb : 바이너리모드로 쓰기 ab : 바이너리 모드로 파일 마지막에 추가하기 -사용코드 f = open('test.txt', 'r') data = f.read() print(data) f.close()

파이썬으로 문자열로된 식을 계산하기(eval 함수)

파이썬으로 eval 함수를 사용하여 문자열로된 식을 계산하는 방법입니다. 코드작성 시 파일에서 읽은 수식이나 문자열을 그래도 실행을 해야하는 경우가 있습니다. ex) 5+4와 같이 텍스트 파일에서 읽어 이를 실행하여 계산을 해야하는 경우 파이썬 내장함수 eval()는 파이썬 코드로 실행 가능한 문자열을 인자로 받아 실행하는 함수입니다. - 실행 코드 ex1 = '5+4' ex2 = 'round(4.9)' result1 = eval(ex1) result2 = eval(ex2) print(result1) print(result2) * 만약 파이썬으로 실행이 불가능한 문자열을 사용 시 SyntaxError 가 발생합니다. -> SyntaxError: unexpected EOF while parsing