분류 전체보기 177

[2장] Fuzzing: Art, Science, and Engineering 번역

The term “fuzz” was originally coined by Miller et al. in 1990 to refer to a program that “generates a stream of random characters to be consumed by a target program” [152,p. 4]. “fuzz”라는 용어는 본래 “타겟 프로그램이 소비(consumed) 할 랜덤 문자열 스트림을 생성하는” 프로그램을 나타내기위해 만들어졌다. 즉, 취약점 탐지와는 무관하게 프로그램에 넣을 인풋들을 랜덤으로 생성하는 프로그램을 나타내는 단어가 "fuzz"였다. Since then, the concept of fuzz as well as its action—“fuzzing”—has appear..

[요약 & 1장] Fuzzing: Art, Science, and Engineering 번역

https://arxiv.org/pdf/1812.00140.pdf Abstract Among the many software vulnerability discovery techniques available today, fuzzing has remained highly popular due to its conceptual simplicity, its low barrier to deployment, and its vast amount of empirical evidence in discovering real-world software vulnerabilities. 다양한 취약점 탐지 기술중에, 퍼징은 큰 인기를 끌고있다. 왜냐하면 개념적인 단순함, 개발의 낮은 진입장벽, 엄청난 양의 real-world 소프..

PLT와 GOT 그리고 동적 라이브러리

PLT와 GOT가 무엇이고 어떤 점이 다른지 동적 라이브러리를 이용한 함수 호출 방법은 어떻게 되는지 알아보자. 라이브러리 : 함수를 모아놓은 파일 정적 라이브러리 : 내가 만든 프로그램에 라이브러리 함수를 직접 삽입 동적 라이브러리 : 메모리에 별도로 라이브러리 파일을 적재한 뒤 함수 주소를 찾아 사용 PLT : 동적 라이브러리를 이용할때 함수 주소를 찾아 실행시켜주는 테이블 GOT : 함수의 실제 주소를 기록해둔 테이블 하나씩 살펴보면 라이브러리 라이브러리란 여러개의 함수가 담겨있는 파일이다. 어렵게 생각하지말자. 그냥 우리가 쓰는 printf, malloc과 같은 함수가 정의되어있는 파일이다. 링크 내가 만든 프로그램에서 사용하는 라이브러리 함수를 실제 연결해주는 행위. 이때 심볼과 함수정의의 차이..

공부/JUN STUDY 2022.05.18

[Dreamhack] Mitigation: Stack Canary

dreamhack.io의 시스템 해킹 로드맵 Mitigation: Stack Canary 를 공부하며 요약해봤다. 핵심 스택 카나리는 스택의 Return Address 변조 방지를 위한 보호기법이다. 카나리 값은 프로그램이 시작하는 시점에 랜덤으로 결정되기때문에, 공격자는 이를 미리 알고 공격을 수행하기 어렵다는 점을 이용한 보호기법이다. 프로그램이 시작하는 시점에 결정되는 값 (스택의 시작주소, 특정 지역 변수 위치, 스택 카나리 값 등등..)은 디버깅이 없으면 알아낼 수 없는 값이기 때문에, 정상적으로 작동되는 프로그램이라면 사용자에게 노출될 일이 없는 값이다. ⇒ 이런 값들이 노출되면 취약점이다. 서론🐤 Exploit Tech: Return Address Overwrite 코스에서는 스택의 반환 주..

내가 해킹을 좋아하는 이유 (2022)

고등학생때 강연으로 매주 뵙던 교수님이 해주신 말씀을 아직도 기억한다. “해킹이란 남들이 모르는 것들에 대해 깊은 호기심을 가지고 이를 알아내어, 세상을 이롭게하는 행위” 라고 말씀해주셨는데, 핵심은 남들이 ‘모르는’ 것들에 대해 탐구한다는 것이다. 여기서 남들이 모르는 것이란 공공연히 알려져있는 것들 말고 존재하고는 있으나 세상에 발견되어 드러나지 않은 정보(data)와 지식(knowledge)을 나타내는 것일테다. 예를들면 전쟁 중에 적국의 작전이나 원자력 발전소등 국가주요 연구시설에서 사용하는 설계도, 누군가의 개인정보, 아직 발견되지않은 과학적 사실 심지어는 미래의 비트코인 차트까지도 ‘남들이 모르는 것’이라고 표현할 수 있을 것이다. 해킹을 공부하다보면 관통하는 생각이 “이거 하려면 어떻게 해야..

일기 2022.04.12

우분투에서 파이썬 버전 변경하는 방법 (/usr/bin/python /usr/bin/python3)

들어가기전에 알아두면 좋을 것은python과 python3는 엄연히 다른 명령어다.둘을 구분해서 생각하는게 좋다.(일반적으로, python -> python2.X / python3 -> python3.X) 0. 파이썬 버전 및 설치위치확인python 버전 및 설치위치확인python -Vwhich pythonls -al /usr/bin/pythonpython3 버전 및 설치위치확인python3 -Vwhich python3ls -al /usr/bin/python3설치된 모든 파이썬 버전 확인ls /usr/bin/ | grep python 1. 필요한 파이썬 버전 설치sudo apt install python3.Xsudo apt install python3.9 2. 파이썬 버전 등록 (update-altern..

728x90