$ whoami
Home
  • 분류 전체보기 (123)
    • Exploit (11)
      • Tools (2)
      • Exploit (6)
      • Bug Bounty (3)
    • Wargame (86)
      • HackCTF (15)
      • XSS game (6)
      • Dreamhack (3)
      • Webhacking.kr (10)
      • XSS Challenges (8)
      • H4CKING GAME (3)
      • 정보보호영재교육원 (1)
      • Lord of SQL Injection (40)
    • CTF (26)
      • YISF 2022 (2)
      • CBHC 2022 (1)
      • HeroCTF v4 (2)
      • corCTF 2022 (2)
      • Aero CTF 2022 (0)
      • BDSec CTF 2022 (4)
      • San Diego CTF 2022 (5)
      • WACon 2022 Qualifier (1)
      • Cyber Conflict Exercise 202.. (4)
      • DiceCTF 2023 (1)
      • Incognito 4.0 (3)
      • BYUCTF 2023 (1)
Home
  • 분류 전체보기 (123)
    • Exploit (11)
      • Tools (2)
      • Exploit (6)
      • Bug Bounty (3)
    • Wargame (86)
      • HackCTF (15)
      • XSS game (6)
      • Dreamhack (3)
      • Webhacking.kr (10)
      • XSS Challenges (8)
      • H4CKING GAME (3)
      • 정보보호영재교육원 (1)
      • Lord of SQL Injection (40)
    • CTF (26)
      • YISF 2022 (2)
      • CBHC 2022 (1)
      • HeroCTF v4 (2)
      • corCTF 2022 (2)
      • Aero CTF 2022 (0)
      • BDSec CTF 2022 (4)
      • San Diego CTF 2022 (5)
      • WACon 2022 Qualifier (1)
      • Cyber Conflict Exercise 202.. (4)
      • DiceCTF 2023 (1)
      • Incognito 4.0 (3)
      • BYUCTF 2023 (1)
블로그 내 검색
CONTACT

HACKINTOANETWORK

OFFENSIVE SECURITY RESEARCHER, PENETRATION TESTER

  • Wargame/HackCTF

    [Web] HackCTF 마법봉

    2022. 2. 10.

    by. hackintoanetwork

    HackCTF Web 여덟번째 문제 마법봉 100p

    문제를 클릭하여 해당 url로 접속해보자.


    해당 url로 이동하면 "해쉬에 마법을 부여하면 그 어떤 것도 뚫릴지어니..."라는 문구와 입력폼, 제출 버튼, View Source 버튼, 이상한 사진 하나를 확인할 수 있다.


    View Source 버튼 버튼을 눌러 소스를 확인해보자.

    <?php
    show_source(__FILE__);
    $flag = "if_you_solved";
    $input = $_GET['flag'];
    if(md5("240610708") == sha1($input)){
        echo $flag;
    }
    else{
        echo "Nah...";
    }
    ?>
    Nah...

    소스를 보면 md5로 암호화한 해시와 입력한 값이 SHA1으로 암호화 됐을때 같으면 플래그가 출력된다고 한다.


    다시 돌아가서 첫 화면에서의 "해쉬에 마법을 부여하면 그 어떤 것도 뚫릴지어니..." 라는 문구에 주목해보자.

    이 문구를 통해 이 문제가 PHP에 존재하는 Magic Hash 취약점에 대한 문제임을 유추할 수 있다.


    PHP Magic Hash 취약점은 PHP에서 == 을 통해 비교 시 생기는 타입 형 변환에 의한 취약점이다.

    0e로 시작되고 뒤에 있는 값들이 모두 숫자라면, string 형태이지만 비교 연산시에 float로 형 변환이 되기 때문에 문제가 발생한다.

    비교하는 대상도 0e로 시작되는 값이라면 두 값이 모두 exponent (멱지수)로 바뀌어 0이라는 값을 갖게 되므로 연산이 참이 된다.


    따라서 SHA1 으로 되는 값이 0e로 시작되면 되기 때문에 아래의 사이트에 있는 10932435112 라는 숫자를 이용하면 된다.

     

    Magic Hashes

    For more than the last decade, PHP programmers have been wrestling with the equals-equals (==) operator.

    www.whitehatsec.com


    입력 칸에 10932435112를 입력하여 제출하면 아래와 같이 Flag를 획득할 수 있다.

    Flag : HackCTF{magic_makes_everything_possible}

     

     

     

    HackCTF

    Do you wanna be a God? If so, Challenge!

    ctf.j0n9hyun.xyz

    • 카카오스토리
    • 트위터
    • 페이스북

    'Wargame > HackCTF' 카테고리의 다른 글

    [Web] HackCTF Input Check  (0) 2022.03.24
    [Web] HackCTF Time  (0) 2022.03.23
    [Web] HackCTF Login  (0) 2022.02.10
    [Web] HackCTF Read File  (0) 2022.02.09
    [Web] HackCTF Guess me  (0) 2022.02.09
    100p, HackCTF, PHP Magic Hash, web hacking, 마법봉

    댓글 0

    관련글

    • [Web] HackCTF Input Check 2022.03.24
    • [Web] HackCTF Time 2022.03.23
    • [Web] HackCTF Login 2022.02.10
    • [Web] HackCTF Read File 2022.02.09
    맨 위로
전체 글 보기
Tistory 로그인
Tistory 로그아웃
로그아웃 글쓰기 관리

Today 38

Total 16,619

Powered by hackintoanetwork

Designed by Nana
블로그 이미지
hackintoanetwork

티스토리툴바