본문 바로가기

4-1. 2020-2 심화 스터디/웹 퍼저

(6)
[2020.11.28] 세미나 준비 웹퍼저 팀은 이번주 활동시간에 세미나 준비를 위한 회의를 진행하였습니다. 목차는 이번 하반기에 활동한 내용을 위주로 다음과 같이 구성하여 발표를 준비할 예정입니다. ------------------------------------------------------------------------ 1. 활동계기&소개 2. '취약점 분석을 위한 퍼징' 문서 리뷰 - Web Fuzzing - File Fuzzing - Network Fuzzing - Memory Fuzzing 3. 논문 리뷰 - 제목 - 주제 - 구성 - 중요 포인트 - 결론(활용방안/한계점) 4. 코드 분석 - 오류(시도의 흔적) - 오픈소스 : Fuzzer_bof_check.py ----------------------------------..
[2020.11.21] Fuzzer review (open source) 11월 3주 Web Fuzzer팀은 open source 퍼저에 대해 리뷰해보는 시간을 가지기로 했다. 1. Fuzzer_bof_check.py 지정된 버퍼보다 큰 랜덤값을 대입하여 버퍼오버플로우를 발생시키는 코드이다. 오류 예상 시 fuzzer 함수에서는 앞서 본 코드와 같이 문자열 변수로 선택되는 임의의 문자를 반복해서 더해 무작위 값을 생성하고 결과값 out을 crash_if_too_long 함수의 인자로 넘겨 buffer 크기와 비교하는 역할을 수행한다. 퍼저 함수만 따로 실행하면, 다음과 같이 랜덤한 문자열을 생성하는 것을 확인할 수 있다. 2. BlazeDVD handler_av 라는 함수를 생성하여 크래시가 발생했을 때의 메모리 상태와 레지스터 값을 확인하고 저장하여 화면에 출력한다. Bla..
[2020.11.14] pydbg를 이용한 퍼저 구현 11월 2주 Web Fuzzer팀은 간단한 퍼저 구현을 목표로 하여 활동시간에 각자 구현한 퍼저에 대해 리뷰해보는 시간을 가지기로 했다. 간단하게 짜여진 퍼저 코드를 구현해보는 것을 목표로 하였다. 해당 코드를 간단히 분석해보면, 접근위반 예외가 발생할 시 오버플로우 발생으로 인지하고 detect_overflow 함수로 이동한다. 이때, 첫번째 발생한 예외는 운영체제에서 발생한 예외이기 때문에 건너뛰고 EIP 값 출력하는 프로세스로 진행된다. 1. pydbg 설치 paimei 설치 후에 압축을 풀어 python 경로에 pydbg를 설치(자동으로 경로가 지정되기 때문에 그대로 설치 진행, 설치하려는 버전이 뜨지 않을 경우 exe 파일로 설치하고 파일을 직접 해당 경로로 복사하는 방법) 2. pydasm.p..
[2020.11.07] File Format Fuzzing & Memory Fuzzing 11월 1주 Web Fuzzer 팀은 취약점 분석을 위한 퍼징 문서(KUCIS) 中 4. File Format Fuzzing과 5. Memory Fuzzing을 학습하고, Fuzzing 관련 논문 Fuzzing: a survey를 읽고 발제하였다. 취약점 분석을 위한 퍼징 4. File Format Fuzzing 1. File Format Fuzzing이란? - 취약점을 유발할 수 있는 쓰레기 코드가 존재할 수 있는지를 검사하는 작업. - 애플리케이션은 파일을 읽고 파싱하고 메모리에 읽어들여서 처리한다. 각 파일들은 자체의 포맷을 가지고 있고 애플리케이션은 그 포맷에 맞추어서 파싱을 한다. 따라서 애플리케이션은 취약점을 가질 수 있다. 포맷만 봐서는 정상적인 파일이지만, 그 내부에 에러를 발생시킬만한 쓰..
[2020.09.26] Network Protocol Fuzzing Web Fuzzer 팀은 이번주차에 취약점 분석을 위한 퍼징 및 Microsoft 문서를 학습하였다. 취약점 분석을 위한 퍼징 : 3. Network Protocol Fuzzing Automated Penetration Testing with White-Box Fuzzing : Fuzzing Process ~ Product-Testability Design for Fuzzing [요약] 1. Network Protocol Fuzzing? • 서버의 데몬을 대상으로 하여 조작된 패킷을 전송하는 것 • 서버의 데몬 : 소켓을 통하여 클라이언트와 통신하는 어플리케이션 • Client에서 Server로 보낸 메시지: 데몬 - 받아서 파싱 후 연산처리 • 필요에 따라 다시 Client에게 메시지를 보냄 ☞ 사용자..
[2020.09.19] Web Fuzzing Web Fuzzer 팀은 이번주차에 취약점 분석을 위한 퍼징 및 Microsoft 문서를 학습하였다. 취약점 분석을 위한 퍼징 : 2. Web Fuzzing Automated Penetration Testing with White-Box Fuzzing : Defect Types Found with Fuzzing ~ Fuzzing Process [질의응답] 1. Injection SQL, parameter 질문 : [예제1]에서 입력된 데이터가 ' or 1=1 'or 1=1 이라면 , 1=1 은 무조건 참인데, 이렇게 될 경우 이 코드가 공격에 성공하는 이유는? [예제1 : SQL Injection에 취약한 로그인 인증 코드] String param1 = request.getParameter ("user_..