7번 문제는 data의 값이 2가 되면 풀리는 문제인 것 같다. 하지만 preg_match함수로 2,-,+,from,_,=,공백,*,/,대소문자를 구분하고 있다. 2의 값을 넣어야 하는데 2가 필터링되고 있으니 char(50)이란 함수를 사용해서 2를 넣어주도록 하겠다.
하지만 char(50)함수만 넣어주면 rand부분을 rand부분에 () 부분을 우회를 해야 한다. 5) union(select(char(50)) 과 같이 우회를 해줘야 한다.
전체적인 쿼리는 select lv from chall7 where lv=(5)union(select(char(50))) 랜덤 1,2,3,4,5 마다 괄호의 수가 달라진다. 우리는 rand=1을 타깃으로 만든 쿼리이기 때문에 1/5 확률이다.
몇 번 실행하다 보면 풀린다. 5라는 값을 줘서 앞선 select부분을 무효화시키고 union으로 뒤에 select구문에 2의 값을 주어서 푸는 방식이다.
RFI/LFI (0) | 2020.03.08 |
---|---|
webhacking.kr 8번 (0) | 2020.03.05 |
Sensitive Data(Clear text) (0) | 2020.03.05 |
Sensitive Data Exposure(Base64,HTML5 Storage) (0) | 2020.03.04 |
Robots.txt , WebDav (0) | 2020.03.04 |
댓글 영역