나의 답 : ?id=' or '1'=1 # (#는 url 인코딩이 안돼서 인코딩 표 보고 바꿔서 씀 23%로)
<?php
include "./config.php";
login_chk();
$db = dbconnect();
if(preg_match('/prob|_|\.|\(\)/i', $_GET[id])) exit("No Hack ~_~"); // do not try to attack another table, database!
if(preg_match('/prob|_|\.|\(\)/i', $_GET[pw])) exit("No Hack ~_~");
$query = "select id from prob_gremlin where id='{$_GET[id]}' and pw='{$_GET[pw]}'";
echo "<hr>query : <strong>{$query}</strong><hr><br>";
$result = @mysqli_fetch_array(mysqli_query($db,$query));
if($result['id']) solve("gremlin");
highlight_file(__FILE__);
?>
새로 알게된 점> preg_match : php에서 사용한느 정규표현식을 사용한 패턴매칭 함수! 맞으면 true 틀리면 false를 반
구조 : preg_match($pattern, $input, $matches, $flags, $offset)
- $pattern : 문자열을 검사할 정규표현식 패턴
- $input : 검사할 문자열
- $matches : (선택 사항) 패턴에 일치하는 결과를 배열로 반환. 첫 번째 요소는 전체 문자열 중 일치하는 부분을 반환하고, 이후의 요소는 패턴에서 캡처한 그룹을 반환.
- $flags : (선택 사항) 일치하는 방법을 제어하는 플래그. (대부분의 경우 기본값을 사용).
- $offset : (선택 사항) 문자열에서 검색을 시작할 위치.
'워게임 풀이 및 CTF (Capture The Flag)' 카테고리의 다른 글
LOS goblin풀이 (1) | 2023.05.21 |
---|---|
Los cobolt 풀이 (0) | 2023.05.20 |
[dreamHack] carve party 풀이 (0) | 2022.12.26 |