PHP 코드의 각 줄에 대한 간략한 설명
2. `login_chk();` : 로그인을 확인하는 함수
3. `$db = dbconnect();` : dbconnect()라는 함수를 호출하고 반환 값을 $db라는 변수에 저장
4. `if(preg_match('/prob|_|\.|\(\)/i', $_GET[no])) exit("No Hack ~_~");`
-> $_GET['no'] 변수에 'prob', '_', '.', '()' 중 어느 하나라도 포함되어 있다면 "No Hack ~_~"라는 메시지를 출력
5. `if(preg_match('/\'|\"|\`/i', $_GET[no])) exit("No Quotes ~_~");`
-> $_GET['no'] 변수에 따옴표('), 쌍따옴표("), 또는 백틱(`)이 포함되어 있다면 "No Quotes ~_~"라는 메시지를 출력
6. `$query = "select id from prob_goblin where id='guest' and no={$_GET[no]}";` : SQL 쿼리를 생성. id가 'guest'이고 no가 $_GET['no'] 값인 prob_goblin 테이블의 레코드를 조회
7. `echo "<hr>query : <strong>{$query}</strong><hr><br>";` : 생성된 SQL 쿼리를 출력
8. `$result = @mysqli_fetch_array(mysqli_query($db,$query));` : SQL 쿼리를 실행하고 그 결과를 배열로 가져옴
9. `if($result['id']) echo "<h2>Hello {$result[id]}</h2>";` : 결과 배열에 id가 있다면, "Hello {id}"를 출력
10. `if($result['id'] == 'admin') solve("goblin");` : 결과 배열에 id가 'admin'이라면, solve("goblin") 함수를 호출
11. `highlight_file(__FILE__);` : 현재 파일의 소스코드를 하이라이트하여 출력
'워게임 풀이 및 CTF (Capture The Flag)' 카테고리의 다른 글
Los cobolt 풀이 (0) | 2023.05.20 |
---|---|
LOS Gremlin 풀이 (0) | 2023.05.20 |
[dreamHack] carve party 풀이 (0) | 2022.12.26 |