본문 바로가기

[python] Fuzzer 만들기 Fuzzing 이란?Fuzzing은 일종의 소프트웨어 보안 테스트 기법이다. 기본적인 아이디어는 프로그램 실행 시 무작위 데이터를 attach하는 것이다. 만약 프로그램 실행이 제대로 되지 않는다면 프로그램에 수정할 결함이 있다는 것을 의미한다. 즉, 무작위 데이터를 어플리케이션에 입력하고, 그 결과 어플리케이션에 exception, crash, 또는 서버가 다운되는 등의 에러가 발생할 경우 보안 취약점이 존재할 가능성이 높다는 것이다. 간단한 Fuzzing을 수행하는 Fuzzer를 만들기아래 코드는 target 서버의 21번 포트인 ftp 서버에 접속하여 user 명령어에 'A'문자를 무작위 대입하여 충돌이 발생하는 지를 테스트하는 코드입니다.※ send() 에서 python 2.x 버전에서는 enco.. 더보기
[python] 포트스캐너 만들기 실습환경 : python 3.4.3 for문에 range 범위는 시작 포트번호와 마지막 포트번호 입니다. (아래 화면은 134번 포트부터 140번 포트까지)※ recv(buffer_size) : 해당 포트의 서버스로 부터 buffer_size 만큼의 response를 받아옵니다. [실행결과] 포트가 열려 있고, 서비스가 구동 중이라면 아래와 같은 recv() 결과가 나옵니다. 포트는 열려있지만 서비스가 구동 중이 아니라면 아래와 같은 recv() 결과가 나옵니다.그래서 저 같은 경우에는 b''가 나올경우 "No Service!"가 출력되게 하였습니다. 만약 포트가 닫혀 있게 되면 s.connect() 실행 후 아래와 같은 Connection Refused 에러 메시지를 보실 수 있습니다. 만약 포트가 열.. 더보기
Ascii Code Table 더보기