워게임 문제풀이/Lord of SQLInjection
vampire
mi,,
2022. 9. 5. 01:12

id가 admin이 맞다면 문제는 풀린다.
시도1> ?id=admin

실행 결과 공백이 출력된다.
$_GET[id] = strtolower($_GET[id]);
strtolower 함수는 입력값을 소문자로 바꿔주는 역할을 한다.
즉, $_GET[id]의 값을 소문자로 변환해 다시 $_GET[id]에 저장한다.
$_GET[id] = str_replace("admin","",$_GET[id]);
str_replace 함수는 문자열에 특정 단어가 포함되어 있는 부분을 원하는 값으로 치환하는 역할을 한다.
즉, 입력값에 admin이 있다면 admin을 그냥 공백(“”)으로 치환하여 다시 $_GET[id]에 저장한다.
여기서 admin을 공백으로 치환한다는 점을 이용하여 문제를 풀 수 있다.
?id=aadmindmin을 입력한다면 aadmindmin 밑줄 친 admin은 공백으로 처리되어 admin만 남게 될 것이다.
시도2> ?id=aadmindmin

정답: ?id=aadmindmin