klaus

[Lord of SQL Injection] troll 8번 문제(feat. black list, white list) 본문

모의해킹/Wargame

[Lord of SQL Injection] troll 8번 문제(feat. black list, white list)

klus! 2022. 12. 6. 08:58

0. 트롤

1. 문제 및 전체 코드

2. 주요 코드 및 해석

if(preg_match('/\'/i', $_GET[id])) exit("No Hack ~_~");
if(preg_match("/admin/", $_GET[id])) exit("HeHe");
$query = "select id from prob_troll where id='{$_GET[id]}'";
$result = @mysqli_fetch_array(mysqli_query($db,$query));
if($result['id'] == 'admin') solve("troll");

해당 문제를 보면 생각보다 간단하게 보입니다. 필터링되는 것들만 피해서, id=admin으로 넣으면 클리어가 되는 것 같아 보입니다.

문제는 두 번째 줄의 admin이 필터링되는데 이것을 어떻게 처리할래?라고 묻는 문제인 것 같습니다.

필터링이 블랙리스트 기반으로 되어 있어 대소문자를 섞어 id에 입력해보겠습니다.

 

 

3. 블랙리스트와 화이트리스트!

문제는 간단하지만 중요한 개념입니다. 아래 내용은 IT위키의 자료를 참고하여 작성하였습니다.

구분 화이트리스트 블랙리스트
정책 모두 차단인 상태에서 허용할 것을 지정 모두 허용인 상태에서 차단할 것을 지정
보안성 높음 낮음
가용성 및 편의성 낮음 높은

 

Comments