전체 글
-
Dreamhack - file-download-1wargame/Dreamhack 2024. 3. 25. 22:38
[Beginner - file-download-1 - web] 문제 설명에 File Download 취약점이 존재하는 웹 서비스라고 되어 있다. 플래그값은 flag.py에 들어있다. 일단 문제파일 다운받고 app.py 코드 먼저 열어본다. 업로드 페이지에서 '..'을 넣으면 bad characters,, 라고 나오게 필터링을 해놓은 것을 볼 수 있다. 반면, /read 페이지에서는 filename을 특별히 검사하지 않고 있다. 문제 환경에 처음 접속하면 위와 같은 화면이다. 일단 업로드 하러 왔는데 어차피 Filename에 '..' 쓰면 필터링 걸려서 아무 내용이나 쓰고 업로드한다. 메인 페이지에 방금 업로드했던 게 올라와 있다. 들어가보면 썼던 거 그대로 나오는데, 아까 Filename을 test로 해..
-
-
-
Dreamhack - image-storagewargame/Dreamhack 2024. 3. 18. 23:37
[LEVEL 1- image-storage - web] 문제 설명에 php로 작성된 파일 저장 서비스이며, 파일 업로드 취약점을 이용하여 플래그를 획득하라고 되어있다. 그리고 플래그는 /flag.txt에 있다고 한다. 문제 파일을 다운로드 받으면 아래와 같이 3개의 php 파일들이 있다. index.php list.php upload.php 위 파일들을 열어본 결과, 따로 필터링 하는 것들은 없다. 일단 문제 환경에 접속하면 위와 같이 나온다. 상단 메뉴에서 upload 가보면 파일을 업로드할 수 있게 나온다. vscode에서 system 함수를 이용하여 /flag.txt의 내용을 읽을 수 있도록 위와 같은 php 파일을 작성한다. 저장 후, 업로드하는 페이지에서 해당 php 파일을 선택하여 업로드한다...
-
Dreamhack - broken-pngwargame/Dreamhack 2024. 3. 18. 13:24
[LEVEL 1 - broken-png - misc] 문제를 잘 읽어야 한다. 원래 정사각형 이미지인데 반밖에 오지 않아서 복구해야 하는 상황 문제 파일을 다운로드 받으면 png 이미지 파일 하나가 나온다. 해당 이미지 파일의 속성에 들어가 보면 width가 512픽셀, height가 256픽셀임을 볼 수 있다. 바이너리 분석을 해보기 위해 HxD로 해당 png 파일을 열어본다. 드래그 해놓은 곳이 png 파일 시그니처의 헤더 부분이다. 그리고 png 파일은 헤더 및 푸터 시그니처와 다양한 청크들로 구성되어 있는데, 여기서 청크(chunk)는 공통된 데이터를 갖고 있는 데이터들의 집합이라고 생각하면 된다. 중요 청크에는 IHDR, IDAT, PLTE, IEND가 있고, png 파일에 반드시 포함되어야 하..
-
[CIO Korea] 칼럼 | 하이브리드 클라우드가 비효율적이라는 고정 관념study/technical study 2024. 2. 27. 23:59
https://www.ciokorea.com/column/326311 칼럼 | 하이브리드 클라우드가 비효율적이라는 고정 관념 측정 가능한 목표, 맞춤형 아키텍처, 지속적인 테스트 및 모니터링을 구현해 하이브리드 클라우드는 비효율적이라는 고정 관념을 깨보자.클라우드 www.ciokorea.com 위 글을 기반으로 작성했습니다. 측정 가능한 목표, 맞춤형 아키텍처, 지속적인 테스트 및 모니터링을 구현해 하이브리드 클라우드는 비효율적이라는 고정 관념을 깨보기 클라우드 업계에서는 '하이브리드 클라우드'의 의미를 항상 명확히 할 필요가 있음 한때는 프라이빗 클라우드와 퍼블릭 클라우드의 결합으로 정의되었지만, 이제는 퍼블릭 클라우드가 아닌 모든 시스템이 퍼블릭 클라우드와 함께 작동하는 것을 포괄하는 개념 하이브리드..
-
Dreamhack - Mangowargame/Dreamhack 2024. 2. 27. 14:28
[LEVEL 2 - Mango - web] 일단 문제 파일을 다운로드 받고 문제 환경에 접속하면 위와 같다. Query&Type을 보면 이용자가 전달한 쿼리의 값과 타입을 반환하는 코드에서 요청 결과를 보면 string 외에 다양한 형태의 object도 쿼리로 전달될 수 있다. 로그인 페이지를 구성하는 코드에서는 MongoDB에 쿼리를 전달하는 부분을 살펴보면, 쿼리 변수의 타입을 검사하지 않는다. 따라서 이로 인해 NoSQL Injection 공격이 발생할 수 있다. /login 에서는 로그인에 성공했을 때의 이용자의 uid만 출력한다. Blind NoSQL Injection을 통해 admin의 upw를 획득해야 한다. 우선 MongoDB의 $regex 연산으로 정규표현식을 이용해 데이터를 검색할 수 ..
-
Dreamhack - simple_sqliwargame/Dreamhack 2024. 2. 21. 21:23
[LEVEL 1 - simple_sqli - web] SQL Injection 문제 중에서도 가장 간단한 문제로 보인다. 문제 환경에 접속한 첫 화면이다. 로그인 페이지로 가서 userid를 admin으로 하되 더블쿼트와 --를 써서 데이터베이스 상의 비밀번호 조건을 없애버린다. 따라서 userid 칸에는 admin"--를 입력하고 password 칸에는 아무거나 1234라고 써준다. 그러면 화면에 flag가 아래와 같이 출력된다. 플래그를 획득했다!