메인화면입니다.

소스보기입니다.

위의 소스코드를 토대로 해석해보면 조건은 아래와 같습니다.

[조건]

1. id '\\'는 제거

2. id '는 ''로 변환

3. id의 0번째 문자부터 15개를 추출

4. 쿼리의 조건 중 id의 길이가 14보다 작아야 한다.

$result = mysqli_fetch_array(mysqli_query($db,"select 1 from member where length(id)<14 and id='{$_POST['id']}"));

이 부분을 살펴보면 마지막에 싱글쿼터가 빠져있음을 확인할 수 있습니다.

조건중 2번을 보면 싱글쿼터 한개를 추가하면 replace로 인해 ''가 되므로 컬럼길이의 마지막에 싱글쿼터를 붙여주면 싱글쿼터 한개만 적용되는 원리를 이용하면 해결할 수 있습니다.

즉 , varchar(5)의 경우 1111' 이런식입니다.

저는 "test '" 이 방법으로 해결했습니다.

test + 공백10개 + 싱글쿼터

그러면!

챌린지 39 성공!

'WAR GAME > Webhacking.kr' 카테고리의 다른 글

[webhacking.kr] Level41 (old)  (311) 2020.04.28
[webhacking.kr] Level40 (old)  (295) 2020.04.28
[webhacking.kr] Level38 (old)  (298) 2020.04.28
[webhacking.kr] Level37 (old)  (328) 2020.04.28
[webhacking.kr] Level36 (old)  (320) 2020.04.28

+ Recent posts