반응형

1. 문제 분석


일단 문제에 접근하여 소스코드를 확인해보았다.


val 파라미터로 입력받은 값을 go 변수에 대입한 뒤 해당 값에 사칙연상, from, 공백이 있으면 Access Denied!를 출력하고 종료시킨다.

preg_match에서 \\s는 whitespace를 의미하는 값이다.


해당 값들이 존재하지 않으면 랜덤 값에 따라 괄호의 수가 달라지고 go 변수를 삽입한 쿼리의 결과 2가 출력되면 문제가 solve 된다.


2. 풀이

우선 go 변수에 대입되는 값이 2여야 한다.

이 때 사칙연산이 막혀있어서 나는 나머지를 생각하였다.

9%7를 입력해보았는데 nice try!가 뜰 뿐 문제가 풀리지 않아 혹시 %가 제대로 입력되지 않는 것인가 하여 mod(9,7)를 해보았지만 여전히 풀리지 않았다.


로컬에서 하였을 때는 제대로 되는 것을 통해 해당 테이블에 lv가 2인 데이터가 존재하지 않다는 것을 알았다.

이후 나는 union을 이용하여 2를 직접 출력하는 방향으로 잡았다.


랜덤이 1이라 가정하고 다음과 같이 입력하여 문제를 풀었다.

0)union(select(mod(9,7))

또는

0)union(select(ceiling(1.9))


반응형

'Solve Problem > Webhacking.kr' 카테고리의 다른 글

webhacking.kr old-13 writeup  (0) 2020.04.22
webhacking.kr old-08 writeup  (0) 2020.04.21
webhacking.kr old-06 writeup  (0) 2020.04.21
webhacking.kr old-02 writeup  (0) 2020.04.21
webhacking.kr old-28 writeup  (0) 2020.04.17
블로그 이미지

rootable

,