NOT4DOG
방명록 RSS 태그 글쓰기 관리자
 
[Tools] HDD 배드섹터 검사 프로그램 GM HDD SCAN
Tools 2022-01-02 12:20:12

반응형

요즘에는 보통 빠른 접근속도, 빠른 읽기/쓰기 속도, 내구성 등을 이유로

SSD를 사용하지만 용량대비 HDD보다 가격이 비싸 C 드라이브를 제외한

기타 자료들의 저장에는 HDD가 널리 쓰이고 있다.

 

하지만 HDD는 내구성에 매우 취약한데 HDD의 구조상 어쩔 수 없는 부분이다.

간단히 설명하자면 HDD는 플래터라는 원형 판에 데이터를 쓰고 

그 플래터가 스핀하면서 원하는 데이터가 있는 플래터 부분을 헤드가 Access 하는 방식이다.

 

하지만 플래터와 헤드의 간격은 머리카락의 1/2000 간격이며,

이런 이유가 HDD의 약한 내구성의 원인이 된다.

 

다양한 이유로 플래터에 손상이 가게되면, 배드섹터가 생긴다.

배드섹터란, 하드 디스크가 물리적 또는 논리적으로 어떤 섹터가 손상을 입어

제대로 판독할 수 없는 현상 또는 해당 섹터를 말한다.

 

배드섹터가 발생하게 되면 파일 복사 불가, HDD 안에 있는 파일 실행 불가, HDD 인식불가 등

다양한 문제가 발생하는데, 배드섹터를 검사할 수 있는 프로그램을 소개하고자 한다.

 

GMHDDSCANv20p2.exe
0.77MB

 

사용방법)

1. 위 파일을 실행하면, 이러한 화면이 나오는데 '다음'을 클릭해 넘어간다.

2. 검사항목을 선택할수있는 창이 나온다. 전체/부분 디스크 배드섹터 검사를 선택하고 '다음'을 클릭

 

3. 배드섹터를 검사할 HDD를 선택하고 '다음'을 클릭

 

4. 배드섹터 검사영역을 설정할 수 있다. 보통 '전체영역 검사하기'를 선택하고 '다음' 클릭

 

5. 배드섹터 검사 창이 나오고, '검사' 를 클릭하면 검사가 진행된다.

 

6. 검사가 진행되고 진행율과 남은시간으로 진행상황을 확인할 수 있다.

 

6번에서 만약 남은시간이 1000시간, 10000시간과 같이 뜨거나

검사블럭의 색상이 빨간색으로 나온다면 배드섹터가 있는 HDD며

Low Level Format으로 논리적 배드섹터의 문제는 해결할 수도 있지만

물리적 배드섹터의 경우에는 자가 수리가 불가능에 가깝다.

중요한 자료의 경우에는 백업을 생활화하고, 중요한 HDD에 배드섹터가 발생했을 때에는

자가수리보다는 하루빨리 복구업체를 방문하는것이 좋다.

반응형


[CTF] Dreamhack image-storage 문제 Write-up
CTF Write-up 2021-12-31 20:45:05

반응형

문제) php로 작성된 파일 저장 서비스입니다.

파일 업로드 취약점을 이용해 플래그를 획득하세요. 플래그는 /flag.txt에 있습니다.

 

문제와 같이 upload.php 등 Source php Code를 제공한다.

<?php
  if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    if (isset($_FILES)) {
      $directory = './uploads/';
      $file = $_FILES["file"];
      $error = $file["error"];
      $name = $file["name"];
      $tmp_name = $file["tmp_name"];
     
      if ( $error > 0 ) {
        echo "Error: " . $error . "<br>";
      }else {
        if (file_exists($directory . $name)) {
          echo $name . " already exists. ";
        }else {
          if(move_uploaded_file($tmp_name, $directory . $name)){
            echo "Stored in: " . $directory . $name;
          }
        }
      }
    }else {
        echo "Error !";
    }
    die();
  }
?>
<html>
<head>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css">
<title>Image Storage</title>
</head>
<body>
    <!-- Fixed navbar -->
    <nav class="navbar navbar-default navbar-fixed-top">
      <div class="container">
        <div class="navbar-header">
          <a class="navbar-brand" href="/">Image Storage</a>
        </div>
        <div id="navbar">
          <ul class="nav navbar-nav">
            <li><a href="/">Home</a></li>
            <li><a href="/list.php">List</a></li>
            <li><a href="/upload.php">Upload</a></li>
          </ul>
        </div><!--/.nav-collapse -->
      </div>
    </nav><br/><br/><br/>
    <div class="container">
      <form enctype='multipart/form-data' method="POST">
        <div class="form-group">
          <label for="InputFile">파일 업로드</label>
          <input type="file" id="InputFile" name="file">
        </div>
        <input type="submit" class="btn btn-default" value="Upload">
      </form>
    </div> 
</body>
</html>

upload.php를 살펴보았을 때 별 다른 필터링 Code는 보이지 않았다.

 

Main Page

그래서 FLAG를 보기 위한 php Code를 upload하면 확인이 가능해보인다.

 

FLAG 파일을 보기위한 php Code를 간단하게 만들어서 upload 했다.

 

test.php가 upload된 화면

해당 test.php를 사용하여 FLAG를 획득할 수 있었다.

반응형


[CTF] Dreamhack strcmp 문제 Write-up
CTF Write-up 2021-12-30 13:25:26

반응형

문제)

if you can bypass the strcmp function, you get the flag.

 

strcmp (문자열 비교 함수)우회하라는 문제이다.

먼저 메인 페이지에 접속해보았다.

Main Page 화면

password를 입력하는 창Source Code를 제공하고 있다. Source Code를 보면,

password는 md5로 random한 값을 생성하고 그 값에 sha1 암호화방식까지 사용되어

brute force로는 불가능하다. 문제에서 strcmp 함수를 우회하라고 했으니,

brup suite을 사용하기로 하였다.

PW 123을 입력한 화면

테스트로 '123' 을 넣어 보았는데 당연하게도 (Wrong password..) 실패했다.

하지만 페이지에서 제공한 Source Code에서 이 페이지가 php 언어로 만들어졌음을 알았다.

php에는 널리 알려진 strcmp 취약점 중 하나가 있는데

 

php strcmp함수에는 $a값에 문자열이나 숫자열이 아닌 배열을 인자로 넣으면

반환 값을 비교 값이 같은 0으로 출력하는 취약점이 있다.

 

결국 반환값은 0이 되어, 언제나 True가 된다. 이 점을 이용하였다.

 

PW 값에 배열을 적용한 화면 (취약점 이용)

 

FLAG 획득

 

반응형


[CTF] Dreamhack command-injection-1 문제 Write-up
CTF Write-up 2021-12-29 23:53:46

반응형

문제) 특정 Host에 ping 패킷을 보내는 서비스입니다.
          Command Injection을 통해 플래그를 획득하세요. 플래그는 flag.py에 있습니다.

 

메인페이지에 들어가보면 Ping을 점검할 수 있는 페이지가 나온다.

Ping이란 IP주소를 통해 정상적인 연결여부를 확인할 수 있는 네트워크 점검 명령어이다.

Main Page

구글 (8.8.8.8)로 ping을 해본 화면이다.

ping 명령어는 정상작동하며, 문제에서 Command Injection 이라 했으므로,

Host IP를 입력하는곳에 명령어를 Injection 하는것으로 보인다.

구글(8.8.8.8) ping test

이번에도 역시 Brute Suite를 이용하여 진행하였다.

Web Injection 관련 문제에는 이만한 도구가 없다.

먼저 Brute Suite로 리눅스 기본 명령어 중 하나인 ls를 정규표현화해서 넣어보았다.

ls 명령어가 수행된 모습

ls로 현재 디렉토리에 있는 파일들을 출력하였는데 

문제에서 말한 flag.py를 바로 찾을 수 있었다.

cat 명령어로 flag.py의 내용 확인

이번엔 ls가 아닌 cat 명령어로 flag.py 파일의 내용을 확인하고자 했다.

정규표현식을 지키기 위해 "의 위치에 유의해야 한다.

FLAG 획득

FLAG를 획득할 수 있었다.

반응형