필터링 찾기
1) pw 파라미터에 _ . # - 필터링
2) pw 파라미터 입력값 길이가 6 이하여야 한다.
이 문제를 풀려면 위 필터링 조건도 맞추면서 id != 'admin' 을 무력화하고 pw가 true가 되어야 쿼리문이 넘어가서 풀린다. 즉 pw 입력값으로 인해 전체 구문이 true 가 되어야 한다.
일단은 pw를 모르니 pw 뒤에 오는 id ! = 'admin' 무력화를 위해 주석처리가 필요하다.
주석처리 방법은 다음과 같다.
# (%23) |
/* */ |
- - |
;%00 |
일단 #과 - 필터링되기 때문에 불가능함.
/* */ 방법도 안되는 듯 싶다. */로 닫을 수 없음.
그럼 ;%00를 통해 필터링을 우회해야 한다. pw=(' ')도 true로 만들어야 하기 때문에 방법을 찾다보니 자동형변환을 이용해야 하는 것 같다.
자동형변환 예시 ) '1' = 1 (true) : 왼쪽은 문자열, 오른쪽은 숫자이지만 1=1 로 인식할 수 있음.
이 점을 이용하여
pw = (' ') = 0
pw = (' ') 은 false 이고 0도 false 이므로 false = false 가 되서 결론적으로는 true 가 된다!!!
payload : pw = ')=0;%00
solve!!!!!
'WEB > Lord of SQLinjection' 카테고리의 다른 글
[LOS] step20. dragon 풀이 (1) | 2023.06.15 |
---|---|
[LOS] step19. xvais 풀이 (1) | 2023.06.15 |
[LOS] step17. zombie_assassin 풀이 (0) | 2023.06.14 |
[LOS] step16. SUCCUBUS 풀이 (0) | 2023.06.14 |
[LOS] step15. assassin 풀이 (0) | 2023.06.14 |