관리 메뉴

FU11M00N

Lord of Injection vampire(9)단계 본문

Web Hacking/Lord of injection

Lord of Injection vampire(9)단계

호IT 2019. 10. 29. 02:52

자 이번에는 9단계인 뱀파이어입니다!! 바로 코드 보겠습니다.

이번에 금지시키는 것은 '입니다.

그리고 str_replace 함수가 나왔는데요! 일단 뭔진 모르겠지만 admin이 나왔습니다

그 후 밑에 들은 전 단계의 문제와 비슷하게 간단한 코드입니다

 

자 그럼 먼저 str_replace가 뭔지 알아야겠는데요!!

 

str_replace는 문자열을 바꿔주는 함수입니다!

간단히 예를 들자면

<?php

    $abc = "고양이 강아지 소";   //대상 문자열

    $result = str_replace('고양이' , '돼지'$abc);

    // str_replace('바뀌어서 없어질 문자' , '변경 완료될 문자', '대상 문자열');

    echo " 바꾸기 전 ".$abc.;

    echo " 바꾼 후".$result;

?>

그럼.$abc의 결괏값은 고양이 강아지 소가 되겠고 .$result의 결과 값은 돼지 강아지 소 가 됩니다!

 

그럼   {$_GET[id]} = str_replace("admin","", $_GET[id]); 코드에서 

 

('변경될 문자' , '변경 완료될 문자', '해당하는 문자열') 순서 이니깐,

admin은 없어질 문자 ""은 변경될 문자 $_GET [id] 은 해당하는 문자열입니다.

결국 admin공백("")이 된다는 것인데요.

그럼 아까도 저번 단계에서도 말했듯이 MYSQL은 대소문자를 구분하지 않아 ADMIN을 써도 답이 됩니다..!

한번 답을 적어보도록 하겠습니다 ?id=ADMIN

 

자 이렇게 정답이 되었는데요 하지만 이 문제에서 요구하는 답은 이게 아닌 것 같습니다.

str_replace는 아까도 말했듯 형식이

('바껴서 없어질 문자' , '변경 완료 될 문자', '대상 문자열') 입니다.

그럼 제가 여기서 ?id=adadminmin 이렇게 적어준다면 중간에 있는 admin은 필터링이 되고,

결국 남은 admin이 인식이 될 것입니다!

 

자 이렇게 제가 분명 파라미터 창에는? id=adadminmin을 쳤지만

결국 admin만 정상 인식되어 정답이 됐습니다! 

하지만 ADMIN도 틀린 답은 아니니 둘 다 정답입니다!

Comments