분류 전체보기 147

위∙변조 사전 차단

위변조 검증 기술 = 미디어가 변조된 이후 위변조 여부를 탐지하는 방법. 미디어 위변조 사전 차단(Proactive Forgery Prevention)기술 사전 차단 원리 이미지 위변조 검증은 Active와 Passive 검증 영역으로 나뉜다. Passive 영역에 Deepfake, Cheapfake detection이 해당된다. 그러나 위변조 생성 기술이 훨씬 빠른 속도로 발전하기 때문에 완벽 탐지가 어렵다. 반면에 Active 영역은 사전차단 관점에서 100% 위변조 검증이 가능하다. JPEG Privacy & Security 디지털 촬영 장치를 통해 생성된 이미지가 여러 플랫폼을 통해 유통되는 과정에서 이미지가 위변조되면서 사실 왜곡 문제가 발생하고 있다. JPEG 국제 표준기구 - Privacy ..

기술스터디 2022.10.01

SSRF 함께 실습

FLASK로 작성된 image viewer 서비스 SSRF 취약점을 이용해 플래그를 획득하기 /app/flag.txt에 플래그가 존재함. @app.route("/img_viewer", methods=["GET", "POST"]) def img_viewer(): if request.method == "GET": return render_template("img_viewer.html") elif request.method == "POST": url = request.form.get("url", "") urlp = urlparse(url) if url[0] == "/": url = "http://localhost:8000" + url elif ("localhost" in urlp.netloc) or ("127..

Dreamhack 2022.08.24

파일 취약점 함께 실습

index.php는 list.php와 upload.php로 이동하는 메뉴를 출력한다. list.php는 $directory의 파일들 중 ., .., index.html을 제외하고 나열한다. upload.php는 이용자가 업로드한 파일을 uploads 폴더에 복사하며, 이용자는 http://host1.dreamhack.games:[PORT]/uploads/[FILENAME] URL을 통해 접근할 수 있다. 만약 같은 이름의 파일이 있다면 "already exits'' 라는 메시지를 반환한다. 업로드할 파일에 대해 어떠한 검사도 하지 않으므로, 웹 쉘 업로드 공격에 취약하다.

Dreamhack 2022.08.24

File Vulnarability

File Upload Vulnerability 공격자의 파일을 웹 서비스의 파일 시스템에 업로드하는 과정에서 발생하는 보안 취약점. 파일 시스템 상 임의 경로에 원하는 파일을 업로드하거나 악성 확장자를 갖는 파일을 업로드할 수 있을 때 발생한다. 원하는 시스템 커맨드를 실행하는 원격 코드 실행 취약점을 유발할 수 있다. 이용자가 업로드될 파일의 이름을 임의로 정할 수 있을 때 발생. 파일 이름에 이용자가 입력한 문자열을 그대로 사용하거나, 이용자의 이메일, 닉네임 등을 포함시키는 등의 소스 코드 패턴이 이러한 취약점을 발생시킨다. 1. Path Traversal 일반적인 서비스 -> 보안을 위해 특정 디렉토리에만 업로드 허용. 제한 x = 악의적 이용자가 웹 서버의 소스 코드나 서버에 있는 중요 시스템 ..

Dreamhack 2022.08.24

SSTF Hacker's Playground

1. BOF101 bof101.c 코드 확인. printflag 함수를 실행시켜야 플래그를 알아낼 수 있다. 이름이 뭐냐고 물어보고 여기에 140바이트만큼의 이름을 입력해야 한다. bof 공격을 이용해서 140바이트보다 큰 값을 주고 check 값을 0xdeadbeef 그대로 유지해줘야 할 것 같다. 0x90(144) 바이트만큼의 공간을 할당해준다. DWORD PTR [rbp-0x4] = 0xdeadbeef 인걸로 보아 전자가 check 변수인 것 같다. 아래에서 check가 0xdeadbeef인지 검사해서 다르면 경고 문구를 출력한다. 2. BOF102

시스템 해킹 2022.08.23

Command Injection

시스템 함수 이용 = 이미 설치된 소프트웨어들을 쉽게 이용할 수 있다. 함수의 인자를 쉘의 명령어로 전달 - 치명적인 취약점 Command Injection 취약점 = 명령어를 실행해주는 함수를 잘못 사용해서 발생 명령어를 실행하는 함수에 이용자가 임의의 인자를 전달할 수 있을 때 발생. 시스템 함수를 사용하면 이용자의 입력을 소프트웨어의 인자로 전달할 수 있다. 파이썬 웹 애플리케이션에서 입력한 임의 IP에 ping을 전송하고 싶다면 os.system("ping[user-input]") #임의 IP ping 전송 os.system("cat [user-input]") #임의 파일을 읽고자 할 때 이용자의 입력을 제대로 검사하지 않으면 임의 명령어가 실행될 수도 있다. -> 리눅스 쉘 프로그램이 지원하는 ..

Dreamhack 2022.08.19

gdb 개념 및 사용법

gdb(GNU Debugger) 다른 프로그램을 수행 중에 그 프로그램 내부에서 무슨 일이 일어나고 있는지 보여주거나 프로그램이 잘못 실행되었을 때 무슨 일이 일어나고 있는지 보여주는 것. C, C++, Modula-2로 짠 프로그램을 디버그 할 수 있다. 코어파일 분석 또는 디버깅에 사용된다. quit으로 종료 명령을 주기 전까지는 터미널로부터 명령 라인을 읽어들인다. 디버깅 방법 '-g' 옵션을 주고 컴파일/링크 gdb 시작하기 gdb - gdb를 실행 후 file이라는 명령으로 program을 부른다. gdb gdb , - 코어 파일을 사용할 때 동시에 인자로 준다. gdb , - 실행 중인 프로세스를 디버그 하려면. gdb -g test.c -o test gdb test 명령어 정리..

시스템 해킹 2022.08.19

basic exploitaion 001 문제 풀이

Stack Canary : 스택 버퍼 오버플로우로부터 반환 주소를 보호한다. 함수의 프롤로그에서 스택 버퍼와 반환 주소 사이에 임의의 값을 삽입하고, 함수의 에필로그에서 해당 값의 변조를 확인하는 보호 기법. 카나리 값의 변조가 확인되면 프로세스 강제 종료. 스택 버퍼 오버플로우로 반환 주소를 덮으려면 반드시 카나리를 먼저 덮어야 한다. gcc -o no_canary canary.c -fno-stack-protector -fno-stack-protector 옵션을 추가해야 카나리 없이 컴파일 할 수 있다. 근데 이 문제에는 카나리는 없다. 대신 NX가 있다. NX(DEP) NX와 DEP는 같은 개념의 보호기법이다. Non executable, Data Execution Protection의 약자. 'he..

시스템 해킹 2022.08.19

pwnable.kr bof 문제 풀이

버퍼 오버플로우와 관련있는 문제인 것 같다. 코드를 다운받아서 확인해봤다. func 함수에 0xdeadbeef라는 값이 입력된다. 이 입력된 key가 0xcafebabe와 같아야 쉘 코드를 얻을 수 있는 것으로 보인다. overflow me라고 출력하는 걸 봐서는 gets 함수로 overflowme 배열에 입력을 받는 것 같은데 이 배열의 크기 32보다 크게 입력받아 int key의 값을 0xcafebabe로 변조해야 한다. gets 함수를 통해서 입력받을 때 입력 길이에 대한 제한이 없으므로 버퍼 오버플로우 공격이 가능하다. overflowme에서 key까지의 거리를 구하여 gets() 함수로 32바이트 길이를 초과하도록 입력하여 key 값을 덮어쓰는 방법을 생각해본다. 일단 pwndbg를 사용해서 g..

시스템 해킹 2022.08.19