바로 소스부터 보겠다.
sql injection문제의 냄새가 풀풀 풍긴다.
쿼리의 결과가 2가 나와야지 문제가 풀리는 듯 하다. 문자열 2는 필터링 되어있다.
일단 랜덤값에 따라서 괄호 감싸고 있는 갯수는 계속 바뀌는데, 어차피 20%확률이므로 하나 골라서 여러번 찍으면 한번은 통과할 듯 하다.
\\s가 필터링으로 있어서 white space도 필터링 된다. 따라서 공백 우회를 위해서 괄호를 활용하고, 2라는 문자열 우회를 위해서 char(50)라는 함수를 사용할 것이고, union을 사용해서 '2'값을 결과에 밀어넣을 것이다.
-가 필터링 되어있으므로 주석에 -- 대신 #을 사용하면 된다.
최종 페이로드는 99)union(select(char(50)))# 이 된다.
5번 정도 시도하니 간단히 풀렸다.
'해킹 & 보안 > webhacking.kr' 카테고리의 다른 글
[Rubiya] Webhacking.kr old-37번 문제 풀이 (0) | 2019.10.15 |
---|---|
[Rubiya] Webhacking.kr old-31번 문제 풀이 (2) | 2019.10.15 |
[Rubiya] webhacking.kr old-4번 문제 풀이 (0) | 2019.10.14 |
[Rubiya] webhacking.kr old-2번 문제 풀이 (0) | 2019.10.14 |
[Rubiya] webhacking.kr old-18번 문제 풀이 (4) | 2019.10.11 |