쿼리문을 보자마자 느꼈다. pw에 어떠한 값을 넣든 주석처리가 되겠구나.
그러면 주석처리가 되지 않는 게 하기 위해선 어떻게 해야 할까? # 주석에 관해서 생각하면 금방 유추해낼 수 있다.
#은 한줄짜리 주석이다. 그럼 다음 줄로 넘어가도록 하면 되겠구나 ㅎㅅㅎ
엔터를 어떻게 하면 적용시킬 수 있을까... \r\n, newline 등등 여러 차례 시도해보았지만,,
정답은 아스키코드표에 있는 url 인코딩 값(엔터)을 넣으면 됐었다. 아래 표를 보면 %0a임을 확인할 수 있다.
그리고 id='guest'로 고정되어 있으므로 id='admin'이 되도록 나머지 코드를 짜야했다.
and pw='(아무값)'를 통해 id='guest'가 되지 못하게 만들고, or id='admin'을 해주면 문제가 풀린다.
payload >> ?pw=%0aand%20pw=%270%27or%20id=%27admin%27;%00
초록색 부분이 주석처리가 되어 전체 쿼리문은 select id from prob_dragon where id='guest' and pw='0' or id='admin' 이 된다.
'워게임 > LoS' 카테고리의 다른 글
webhacking.kr old 58번 문제 풀이 (0) | 2021.11.03 |
---|---|
[los 문제풀이] nightmare (0) | 2021.03.24 |
[los 문제풀이] zombie_assassin (0) | 2021.03.08 |
[los 문제풀이] succubus (0) | 2021.03.07 |
[los 문제풀이] assassin (0) | 2021.02.15 |
댓글