필터링 찾기

1) pw 파라미터에 _ . # -  필터링

2) pw 파라미터 입력값 길이가 6 이하여야 한다.

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

+ Recent posts