본문 바로가기

HackCTF 풀이/Web

HackCTF - Web - Login 풀이

문제를 들어가면 다음과 같은 로그인 폼이 기다리고 있다.

 

친절하게 코드를 볼 수 있는 버튼을 마련해둔 것을 확인할 수 있다.

저 코드는 다음과 같다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?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");
}
?>
 
cs

혹시 보이시나요? $sql에 존재하는 SQL Injection 취약점이?

'로 SQL문을 닫고 #으로 뒷부분을 주석처리하여 비밀번호 체크 부분을 건너뛸 수 있어보입니다.

 

따라서 우리는 ID에 admin'#을 넣어주면 비밀번호에 값을 넣지 않아도 로그인이 가능하다는 사실을 알 수 있다.

 

위와같이 입력한 후 로그인 버튼을 누르면 로그인에 성공하며 플래그가 출력되게 된다.

'HackCTF 풀이 > Web' 카테고리의 다른 글

HackCTF - Web - Input Check 풀이  (0) 2019.06.09
HackCTF - Web - 마법봉 풀이  (0) 2019.06.09
HackCTF - Web - Login 풀이  (0) 2019.06.09
HackCTF - Web - Read File 풀이  (0) 2019.06.09
HackCTF - Web - 보물 풀이  (0) 2019.06.09
HackCTF - Web - Hash 풀이  (0) 2019.06.09