이번 문제는 대놓고 SQL INJECTION이라고 주어진다! 코드를 보자.
쿼리 결과로 admin이 나오면 문제는 해결된다. 코드에 no가 2인 값이 admin이라고 나와 있기 때문에 우린 이것을 이용할 수 있다.
그러나 쿼리문의 where 문 바로 뒤에 id='guest'라고 명시되어 있기 때문에 아무리 no를 건드려도 해결이 불가능하기때문에 or을 이용해서 앞 조건을 false로 만들고 뒤를 true로 만들면 해결이 가능하다.
위처럼 입력하니 no hack이 뜬다. 자세히 보니 공백도 필터링을 하고 있다. 이건 개행이나 탭 문자로 간단히 우회가 가능하다.
2%09or%0ano=2
페이로드는 url창에서 url인코딩하여 전달(그냥 문자 그대로 전달도 가능) 하거나 폼창에 문자 그대로 전달해야한다. 만 폼에 url인코딩하여 전달한다면 폼 창에 있는 값이 get으로 전달될때 url 인코딩이 되기 때문에 더블 인코딩이 된다.
'Web Hacking > Webhacking.kr' 카테고리의 다른 글
[Webhacking.kr] old-24 write up (0) | 2024.02.26 |
---|---|
[Webhacking.kr] old-54 write up (2) | 2024.02.26 |
[Webhacking.kr] old-39 write up (0) | 2024.02.26 |
[Webhacking.kr] old-06 write up (0) | 2024.02.23 |
[Webhacking.kr] old-15 write up (0) | 2024.02.23 |