분류 전체보기

    [대회 문제 풀이로 이해하는 디스크 포렌식 분석 2강] - Linkfile analyis

    [대회 문제 풀이로 이해하는 디스크 포렌식 분석 2강] - Linkfile analyis

    이번에는 linkfile forensic이다.(중간중간 windows랑 mac이랑 섞여 나오는데, windows는 가상 머신이다) linkfile은 우리가 아는 바로가기(.lnk) 파일이고, 이 파일을 분석하여 유출 정황 등을 파악할 수 있다. 1. Basic linkfile information -lnk의 기본 생성 위치 -C:/Users/YAMI/AppData/Roaming/Microsoft/Windows/Start Menu -C:/Users/YAMI/AppData/Roaming/Microsoft/Windows/Recent -C:/Users/YAMI/AppData/Roaming/Microsoft/Office/Recent -링크파일 offset 내용 2. Linkfile challenge 이제 link..

    [대회 문제 풀이로 이해하는 디스크 포렌식 분석 1강] - ZipBomb 분석 문제유형

    [대회 문제 풀이로 이해하는 디스크 포렌식 분석 1강] - ZipBomb 분석 문제유형

    오늘부터 인프런 강의인 "대회 문제 풀이로 이해하는 디스크 포렌식 분석"을 요약해 볼 것이다. 첫 번째는 zipbomb유형이다. 1. What is ZipBomb? zipbomb은 프로그램이나 컴퓨터가 파일을 읽을 때 충돌하거나 뻗어버리게 하는 악의적인 압축파일이다. 대표적으로 바이러스 진입이 편하게 바이러스 검사 소프트웨어의 검사를 막는 역할을 한다. 이 zipbomb을 압축하려면 엄청난 메모리와 하드디스크 용량이 필요. EXAMPLE. 대표적인 예로 42.zip 이 있다. https://ko.wikipedia.org/wiki/Zip_%ED%8F%AD%ED%83%84 2. The way to solve 이 문제 유형은 그냥 파일에서 flag를 찾으면 된다. Tip : CRC (파일이 손상되었거나 틀렸는..

    [Webhacking.kr] - old 58 (writeup)

    [Webhacking.kr] - old 58 (writeup)

    이번에는 webhacking.kr에서 있는 old58번 문제를 풀어볼 것이다. 사이트에 접속을 하면 그냥 밑에 send라고 적힌 것이 있다. 그냥 아무거나 막 보내면 대부분 command not found라고 뜨는데 나 같은 경우는 막 대입을 해서 아래와 같이 무슨 명령어를 사용할 수 있는지 알아냈다. help명령어가 있는걸 우연히 알게됐고 그걸로 무슨 명령어를 사용할 수 있는지 다음과 같이 알아냈다. ls id flag help 그 중 flag를 해보면 다음과 같이 permission denied라고 뜬다. 그래서 어떤식으로 전송되는지 알아보기 위해서 burp sutie로 flag 커맨드를 전송했는데 다음과 같이 전송되는걸 알 수 있다. 그래서 guest를 admin으로 고치니 다음과 같이 플래그를 얻..

    [Dreamhack] - PATCH-1 (writeup)

    [Dreamhack] - PATCH-1 (writeup)

    이번에는 dreamhack의 PATCH-1 문제를 풀어볼 것이다. (난이도 : 3) 이 문제는 진짜 화이트 해킹의 대표적인 예라고 할 수 있는 문제이다. 여러 가지 취약점이 있는 코드를 분석하고 패치하여 취약점 공격을 막으면 된다.\ 뭐 딱히 지금은 중요한 게 없다. 먼저 이 기본적으로 어떤 제한이 있는지, 무엇을 패치해야 하는지 등의 배경 정보를 확인해보자. 기본 코드를 submit하거나 /usage에서 정보를 얻었다. - VULN(5) - Hard-coded Key - SQL Injection - Server-Side Template Injection - Cross Site Scripting - Memo Update IDOR - 주어진 코드에 존재하는 취약점을 패치해보세요. - 코드의 기능이 정상 동..

    [Dreamhack](writeup) - simple_sqli

    [Dreamhack](writeup) - simple_sqli

    오늘은 드림핵의 simple_sqli를 풀어볼 것이다. 이 문제는 드림핵 강의를 보고 충분히 풀 수 있는 매우 쉬운 문제이다. 강의에는 없는 python flask 소스코드를 해석해야 하는 것이 어려운 부분일 수 있겠지만, 그중 절반 정도가 쓸데없는 코드이기 때문에 중요한 부분만 잘 캐치해서 확인하면 된다. 먼저 소스코드를 확인해보자. #!/usr/bin/python3 from flask import Flask, request, render_template, g import sqlite3 import os import binascii app = Flask(__name__) app.secret_key = os.urandom(32) try: FLAG = open('./flag.txt', 'r').read()..

    SQL injection이란? (with Dreamhack)

    SQL injection이란? (with Dreamhack)

    오늘은 드림핵에 있는 강의 내용을 요약하면서, sql injection에 대해서 알아볼 것이다. 1. DATABASE (DBMS) 먼저 sql injection을 배우기 전에 먼저 database지식이 있어야 한다. Database는 일상생활에서 여러 가지 정보를 컴퓨터에 기록하는 데 사용한다. 그리고 이를 관리하는 것이 DBMS라고 하는 것이다. Database에 저장된 내용을 이용하여 수정, 삭제, 기록을 하는 것이 DBMS이다. DBMS는 관계형(Relational), 비관계형(Non-Relational) 으로 크게 나누어진다. Relational Database : Table 형식, EX. MySQL, MariaDB, PostgreSQL, SQLite Non-Relational Database :..

    [Go] for(반복)문 사용하는법(Use loop for in Go)

    [Go] for(반복)문 사용하는법(Use loop for in Go)

    오늘은 오랜만에 Go언어에 대한 설명을 해볼 것이다. Go는 무조건 loop문을 사용하는 방법은 for 명령어 밖에 없다. for문은 아래처럼 매우 간단하게 정의할 수 있다. for [for문 코드] {반복할 코드} 예를 들어, 숫자들을 받아서 모두 더하는 코드를 만들어보면 아래와 같다. package main import ( "fmt" ) func AllAdd(num ...int) int { var total int for _, nums := range num { fmt.Println(nums) total += nums } return total } func main() { total_result := AllAdd(1, 2, 3, 4, 5, 6, 7) fmt.Println(total_result) } ..

    Dreamhack - Flask-Dev (write-up)

    Dreamhack - Flask-Dev (write-up)

    오늘은 flask-dev 풀이를 해볼 것이다. 이 문제는 일단 flask의 디버그 모드에서 대해 알아야 한다. app.run(~~,debug=True)이면 flask debug모드로 실행할 수 있다. 아래는 debug=True라서 디버그모드 웹이다. #!/usr/bin/python3 from flask import Flask import os app = Flask(__name__) app.secret_key = os.urandom(32) @app.route('/') def index(): return 'Hello !' @app.route('/') def file(file): return open(file).read() app.run(host='0.0.0.0', port=8000, threaded=True..