Dreamhack

php로 작성된 파일 저장 서비스에서 파일 업로드 취약점을 이용해서 플래그를 획득하는 문제이다. Upload 탭에 들어가면 아래와 같은 화면이 뜬다. flag가 존재하는 /flag.txt 경로로 이동하는 command를 실행하는 php 코드를 작성해서 업로드할 것이다. cat: 파일 내용 출력 파일을 업로드 해주었다. 파일 업로드 후 리스트에 들어가면 업로드한 파일을 확인할 수 있다. 위 파일을 누르면 플래그 확인 가능!!
보호되어 있는 글입니다.
dreamhack 웹 해킹 Stage7 - Command Injection-1 혼자 실습 *Brute Suite 특정 사이트인 네이버, 구글에서 새로 고침(F5)를 누르거나 어떤 버튼을 클릭하여 이동할 때에 우리(사용자, Client)가 브라우저에 보낸 요청(Request)가 브라우저에 보낸 요청(Request)가 발생하며, 그 요청에 의해 네이버 또는 구글의 서버에서(Server) 응답(Responses)를 보내준다. 값을 변경하여 서버로 보낼 경우, 응답이 어떻게 오는지에 따라 값을 변경하여 시도할 수 있다. 버프를 사용하지 않을 경우, 브라우저에서의 사용자 요청 -> 서버 응답으로 바로 이루어진다. 버프를 사용할 경우, 브라우저에서 사용자 요청 -> 버프 -> 서버 응답으로 이루어진다 버프에서 사용..
해시 해시 함수(Hash Function)는 임의 크기의 데이터를 입력으로 받아서, 고정된 크기의 데이터를 반환하는 함수이며, 해시 함수의 반환값은 해시 값(Hash Value)이라고 부릅니다. 암호학적 해시 함수(Cryptographic Hash Function)는 해시 함수 중에서 특정 성질을 만족하는 함수를 의미합니다. 암호학적 해시 함수(Cryptographic Hash Function)는 다음 성질을 만족하는 해시 함수를 말합니다. +추가로, 현대에는 눈사태 효과(Avalanche Effect)를 이상적인 해시 함수의 조건 중 하나로 보기도 합니다. 일방향함수(One-way Function) 임의의 인자에 대한 함수 값은 쉽게 계산할 수 있지만, 함수 값으로 부터 함수의 인자를 알아내기 어려운 ..
ServerSide: SQL Injection simple_sqli -로그인 우회 풀이 로그인 코드를 보면 56번째 줄에 userid가 admin일 경우 flag를 출력하도록 되어있다. guest : guest로 로그인을 하면 'hello guest'라는 문구가 뜬다. ID: admin, PW: SWING30 userid 검색 조건만을 처리하도록, 뒤의 내용은 주석처리하는 방식을 사용해서 SQL 공격을 실행했다. SELECT * FROM users WHERE userid="admin"-- " AND userpassword="SWING30" userid에 admin"--, pw에 SWING30을 입력해준다. 플래그가 나온다. NoSQL Injection Mango 아래 나와있는 문구를 url 뒤에 입력해주..
공개키 암호와 키 교환 알고리즘 수학적 원리 1. 모듈로 연산에서의 거듭제곱 임의의 합동 항등식에 대해, 양변에 동일한 값을 곱해도 식은 성립한다. 이를 이용하여 큰 지수에 대한 합동식을 빠르게 연산하는 알고리즘을 square and multiply라고 한다. 2. 페르마의 소정리(Fermat's Little Theorem) 소수 p와 정수 a에 대해 a^p-1≡1(mod p)가 성립한다. 3. 이산 로그 문제(Discrete Logarithm Problem) Diffie-Hellman 알고리즘의 안전성은 이산 로그 문제의 어려움에 바탕을 두고 있다. Diffie-Hellman키 교환 알고리즘에서 키를 모르는 공격자가 키를 구하려면 m이 2^2048정도 되는 이산 로그의 문제를 풀어야 하는데 이것은 현재..
AES(Advanced Encryption Standard) AES는 SPN(Substitution Permutation Network)이라는 암호 구조를 사용한다. SPN은 곱 암호의 일종으로, S-Box를 사용하는 치환(Substitution)과 P-Box를 사용하는 순열(Permutation)을 여러 라운드에 걸쳐 반복한다. 치환, 순열(배열), 치환, 순열을 반복하는 구조이다. AES는 라운드마다 128비트 크기의 블록을 암호화하는 블록 암호이다. 키의 길이는 128, 192, 256비트 중 하나를 선택할 수 있고, 라운드 수는 키의 길이에 따라 10, 12, 14로 결정된다. 키의 길이가 128비트이면 AES-128, 192비트이면 AES-192, 256비트이면 AES-256이라고 부른다. AE..
CSRF CSRF(Cross Site Request Foregery) 공격은 웹 어플리케이션 취약점 중 하나로 인터넷 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위(수정, 삭제, 등록 등)를 특정 웹사이트에 요청하게 만드는 공격이다. CSRF-1 함께 실습 문제 아무런 입력도 하지 않고 메모창에 들어가면 'hello'라는 문구만 뜬다. flag창에 해당 명령어를 입력해준다. 로컬호스트에 위치하는 이용자가 /admin/notice_flag 페이지를 방문하도록 해야하기 때문에 아래와 같은 공격코드를 작성해준다. userid 파라미터가 admin인지 검사하는 부분이 존재하기 때문에 userid=admin이라는 부분을 포함시켜주어야 한다. 그리고 난 후 메모에 들어가보면 플래그를 확인할 수가 있다. 플..