pw -> prob _ . () # - 필터링
pw 길이는 6보다 크면 안된다.
묵시적 형변환이란?
조건절에 있는 데이터 타입이 다르면 '우선 순위가 높은 쪽'으로 내부적으로 형변환이 발생한다.
- 문자는 0으로 취급된다.
- 우선순위 : 정수형 > 문자열 - 문자가 정수로 형변환된다.
[**] 정수 컬럼을 문자열로 검색
<1>
j : integer column
s : varchar column
select * from table where j = '1234' -> j=1234인 열이 검색된다.
<2>
idx : integer column
select * from table where idx='a'
- 'a'가 0으로 변환된다.
- idx 컬럼이 0으로 셋팅된 데이터들만 반환된다.
[**] 문자열 컬럼을 숫자로 검색
id : varchar column
id = id1 / id2 / 1id / 2id / 0 / 1 / 0id / id0 이 존재한다고 가정
<1>
select * from table where id = 0 -> id1, id2, 0, 0id, id0
- 컬럼의 첫 문자가 '문자'이면 숫자와 비교하기 위해 0으로 변환한다.
- 0과 0이 같으므로 id1, id2, id0가 결과로 출력되었다.
------------------------------------------------------------
- 컬럼의 첫 문자가 0(숫자)이므로 숫자로 변경한다.
- 0과 0은 같으므로 0, 0id가 결과로 출력되었다.
<2>
select * from table where id=1 -> 1id, 1
- 컬럼의 첫 문자가 문자 1이므로 숫자로 변경한다.
- 1과 1은 같으므로 1id, 1이 결과로 출력되었다.
풀이
?pw=')=0;%00
- ;%00은 MySQL에서 쿼리의 마지막으로 인식되어 뒤를 읽지 않는다.
- pw=('')는 묵시적 형변환으로 인해 0이 리턴된다.
'워게임 > LOS' 카테고리의 다른 글
dragon (0) | 2021.10.04 |
---|---|
[**] xavis (0) | 2021.10.04 |
zombie_assassin (0) | 2021.10.03 |
succubus (0) | 2021.10.03 |
assassin (0) | 2021.10.02 |
댓글