반응형
HackHiJack
HHJ
HackHiJack
전체 방문자
오늘
어제
  • 분류 전체보기 (99)
    • chatGPT (2)
    • pwn (2)
    • 워게임 (32)
    • Reversing (0)
    • Cryptography (12)
    • Web (6)
    • CTFs (16)
    • TryHackMe (6)
    • Go (5)
    • Forensics (18)

블로그 메뉴

  • 홈

공지사항

  • Welcome To HHJ's Blog

인기 글

태그

  • func
  • Import
  • pwnable.kr
  • startup
  • webhacking.kr
  • package
  • 해킹 #TryHackMe #WriteUp #ignite
  • 포렌식
  • forensic
  • main
  • hacking
  • go
  • analyis
  • function
  • linkfile
  • main.go
  • ㅣ
  • rootme
  • 암호 #AES #드림핵
  • shellctf

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
HackHiJack

HHJ

Dreamhack(Wargame.kr) - Login filtering
Web

Dreamhack(Wargame.kr) - Login filtering

2022. 1. 1. 00:05
728x90
반응형

오늘은 드림핵의 login filtering문제를 풀어볼 것이다.

 

$ 사전 조사

먼저 웹사이트를 확인 해보자.

그냥 id pw를 입력하는 칸이 나온다.

get source로 php를 확인해보자.

<?php

if (isset($_GET['view-source'])) {
    show_source(__FILE__);
    exit();
}

/*
create table user(
 idx int auto_increment primary key,
 id char(32),
 ps char(32)
);
*/

 if(isset($_POST['id']) && isset($_POST['ps'])){
  include("./lib.php"); # include for $FLAG, $DB_username, $DB_password.

  $conn = mysqli_connect("localhost", $DB_username, $DB_password, "login_filtering");
  mysqli_query($conn, "set names utf8");

  $id = mysqli_real_escape_string($conn, trim($_POST['id']));
  $ps = mysqli_real_escape_string($conn, trim($_POST['ps']));

  $row=mysqli_fetch_array(mysqli_query($conn, "select * from user where id='$id' and ps=md5('$ps')"));
  if(isset($row['id'])){
   if($id=='guest' || $id=='blueh4g'){
    echo "your account is blocked";
   }else{
    echo "login ok"."<br />";
    echo "FLAG : ".$FLAG;
   }
  }else{
   echo "wrong..";
  }
 }
?>

위의 php는 로그인을 성공하면 flag를 준다.

 

밑에 주석에서 아래처럼 사용자 정보를 준다.

<!--

you have blocked accounts.

guest / guest
blueh4g / blueh4g1234ps

-->
반응형

$ 취약점 분석

이제 취약점을 찾아보자.

 

일단 로그인을 위 정보로 하면 flag를 주는데, id가 guest, blueh4g 이면 계정이 막혔다고 echo한다.

 

그런데 그 필터링을 하는 if에서 취약점이 발생한다.

만약 id를 guest가 아닌 GUEST처럼 대문자를 넣으면, if문을 통과하여 db에 guest로 들어간다.(여기서 php에 어떻게 들어가는지 몰라서 쓸데없이 삽질을.....ㅠㅠ)

 

그러면 아래처럼 넣으면 로그인에 성공하게되어 flag를 획득할 수 있다.

id : GUEST
ps : guest

728x90
반응형

'Web' 카테고리의 다른 글

SQL injection이란? (with Dreamhack)  (0) 2022.02.28
Dreamhack - Flask-Dev (write-up)  (0) 2022.01.01
Dreamhack - file-csp-1 (write-up)  (0) 2022.01.01
Dreamhack - simple-ssti(Write-up)  (0) 2021.12.29
JavaScript - HTML과 JS  (0) 2021.10.17
    'Web' 카테고리의 다른 글
    • Dreamhack - Flask-Dev (write-up)
    • Dreamhack - file-csp-1 (write-up)
    • Dreamhack - simple-ssti(Write-up)
    • JavaScript - HTML과 JS
    HackHiJack
    HackHiJack
    $ whoami HHJ

    티스토리툴바