첫 화면에 1,2,3 디폴트로 값이 들어가 있는것을 확인하고 go를 눌러 결과 값을 확인해보았다.
각 id에 해당하는 값과 권한을 출력해주는 것 같다.
소스코드를 보니 가장 먼저 쿼리문이 보인다.
SELECT user_id, user_privileges, user_name FROM users WHERE (user_id in (".$selector."));
보니 tmp 값이 implode 되어 쿼리 문에 들어가서 출력되는것 같다.
여기서 보아야 할 포인트는 tmp값이 1미만일 경우 unset 함수를 호출 한다는 것이다.
그러면서 count값이 줄어들면서 반복하는데 그러다보면 배열 끝에 있는 일부 요소 체크하지 않게 되는점을 이용한다.
일단 user_password에 flag 값이 있을 것이라고 추측하여 쿼리를 만들면 앞선 구문을 맞추기 위해서 아래와 같이 된다.
)) union select user_password,user_name,3 from users--
또한 임의로 체크 값을 체크하지 못하도록 0을 계속해서 추가해 주다보면 우리는 flag 값을 얻을 수 있다.
페이로드 0,0,0,0)) union select user_password,user_name,3 from users--
'워게임 > Websec.fr' 카테고리의 다른 글
[websec.fr] easy - Level 15 (0) | 2021.09.12 |
---|---|
[websec.fr] easy - Level 11 (0) | 2021.08.22 |
[websec.fr] babysteps - Level 04 (0) | 2021.07.18 |
[websec.fr] easy - Level 08 (0) | 2021.07.14 |
[websec.fr] easy - Level 02 (0) | 2021.07.11 |