Write up (Wargame)/Web Hacking

[Web Hacking] HackCTF Write up - Login

2020. 4. 25. 10:52
목차
  1. 풀이
  2. P.S.
반응형

 

안녕하세요

이번 글에서 풀이할 문제는 HackCTF의 Login입니다.

 

[Web Hacking]

 

제목 : Login

문제 : http://ctf.j0n9hyun.xyz:2024/

 

Login

 

ctf.j0n9hyun.xyz:2024

최근에 정보보안 기법에 대한 책을 읽는 것이 있어서

빠르게 눈치챌 수 있었네요

 

풀이 시작합니다.

 

풀이


저는 처음부터 보자마자 Username과 Password에 abcd를 입력해보았습니다.

 

그랬을 때 URL 부분에는 http://ctf.j0n9hyun.xyz:2024/?id=abcd&pw=abcd 

 

처럼 id와 pw가 그대로 노출되는 것을 볼 수 있었습니다. 여기서 최근에 배운 GET 방식이 떠올랐네요.

 

어찌 되었든,

페이지 소스를 보겠습니다.

 

<!DOCTYPE html>
<html>
<head>
	<title> Login </title>
	<meta charset="utf-8">
</head>
<body>
<center>
<h5> Login </h5>
<form action="./" method="get">
<input type="text" name="id" placeholder="Username">
<br>
<input type="password" name="pw" placeholder="Password">
<br>
<br>
<button type="submit">Login</button>
<a href="view.php" target="_blank"><button type="button">View Source</button></a>
</form>
</center>
</body>
</html>

여기에서 <a href .. 부분에 view.php가 눈에 띄어서 들어가게 되었는데요

 

<?php
highlight_FILE(__FILE__);
require_once("dbcon.php");

$id = $_GET['id'];
$pw = $_GET['pw'];
$pw = hash('sha256',$pw);

$sql = "select * from jhyeonuser where binary id='$id' and pw='$pw'";
$result = mysqli_fetch_array(mysqli_query($db,$sql));

if($result['id']){
        $_SESSION['id'] = $result['id'];
        mysqli_close($db);
        header("Location:welcome.php");
}
?>

 

다음과 같은 php 코드를 볼 수 있습니다.

여기에서 select * from jhyeonuser where binary id = '$id' ... 부분이 SQL Injection 공격에 취약한 것 같네요

 

id에 '로 작은따옴표를 끝을내고 or '1==1'을 사용하여 내용을 참으로 만들고 #을 붙여서 뒤 패스워드 검사 부분을 주석처리해서 통과하게 만듭니다.

 

따라서 id 부분에 'or'1==1'#을 적으면 SQL Injection 공격을 하게 되고요, 다른 분들은 1=1 이라고 적는데.. 다른 언어 하던 버릇때문에.. 그런데 1==1이나 1=1 이나 같은 것 같네요.

 

 

이렇게 문제를 풀 수 있습니다.

감사합니다.

 

P.S.


<?php
highlight_FILE(__FILE__);
require_once("dbcon.php");

$id = $_GET['id'];
$pw = $_GET['pw'];
$pw = hash('sha256',$pw);

$sql = "select * from jhyeonuser where binary id='$id' and pw='$pw'";
$result = mysqli_fetch_array(mysqli_query($db,$sql));

if($result['id']){
        $_SESSION['id'] = $result['id'];
        mysqli_close($db);
        header("Location:welcome.php");
}
?>

 

아까 보셨듯이 php 코드를 보고 꼼수를 사용할 수 있습니다.

마지막 코드에서 header("Location:welcome.php"); 라고 적혀있는데 이 부분을 통해 혹시 id와 비밀번호가 맞으면 

welcome.php로 이동하나? 해서 합리적인 의심을 할 수 있습니다.

 

그래서.. 원래 URL에 /welcome.php라고 적어도 문제가 풀리긴 합니다.

반응형
  1. 풀이
  2. P.S.
'Write up (Wargame)/Web Hacking' 카테고리의 다른 글
  • [Dreamhack Wargame] xss-2 풀이
  • [Dreamhack Wargame] Guest book v0.2 풀이
  • [Web Hacking] HackCTF Write up - 보물
  • [Web Hacking] HackCTF Write up - Button
그믐​
그믐​
그믐​
neutrinox4b1
그믐​
전체
오늘
어제
  • 분류 전체보기 (288)
    • Write up (Wargame) (121)
      • Pwnable (60)
      • Reversing (0)
      • Web Hacking (8)
      • Forensic (1)
      • Cryptography (6)
      • LOB (10)
      • misc (0)
      • SF pwnable 기초 (10)
      • SF pwnable 심화 (1)
      • LOS (25)
    • Security (73)
      • 시스템 해킹(PWN, System) (21)
      • 리버싱(Reverse Engineering) (1)
      • 포렌식(Forensic) (3)
      • 암호학(Cryptography) (44)
      • 네트워크(Network) (1)
      • 임베디드(Emebedded) (0)
    • Develop & CS (38)
      • Algorithm & Data Structure (6)
      • Baekjoon (11)
      • C, C++ (8)
      • Python (2)
      • R (1)
      • etc (8)
    • 프로젝트(Project) (7)
      • 시간표&급식 파싱 (1)
      • 남방진동지수 (1)
      • 네트워크 해킹 (5)
    • Daily life (44)
      • My Book (10)
      • Book Review (1)
      • IT Review (1)
      • 일상 팁 (19)
      • 네트워크관리사 (2)
      • 근황 (11)
    • 수학&과학(Mathematics & Science.. (4)

인기 글

공지사항

  • Wargame, CTF별 검색 키워드 정리
hELLO · Designed By 정상우.
그믐​
[Web Hacking] HackCTF Write up - Login
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.