no의 특정 값을 넣고 id의 'admin'의 값이 나오도록 만들어야 합니다.
하지만 id에 이미 'guest'가 하드코딩 되어있고 우리는 no의 값만 조작할 수 있습니다.
우선 숫자로 임의의 숫자를 입력합니다.
1을 입력해보니 guest가 나오는 것을 보면 guest의 no는 1인 것을 알 수 있습니다.
다른 숫자들로 해보면 아무 값도 나오지 않으니 어떤 구문을 넣어서 해결해야 할 것으로 보입니다.
cobolt 문제에서 union select를 사용해봤으니 이번 문제에서도 해봤습니다.
no 1번은 guest값일 테니 그 외 다른 값을 사용해야 합니다.
처음에 2 union select admin 으로 해보니 아무 값이 나오지 않았습니다. 당연히 admin이 문자열로 지정 안 해서 그랬던 겁니다.
두번째는 2 union select 'admin' 으로 해보면 Single Quote 가 필터링 되어있기 때문에 되지 않습니다.
preg_match에서 Single Quote를 우회하는 가장 간단한 방법은 hex값으로 보내면 됩니다.
'admin'을 hex값으로 변경하면 0x61646d696e가 되며 다음과 같이 성공하게 됩니다.
'WarGame > LOS(Lord of SQL)' 카테고리의 다른 글
[LOS] darkelf (0) | 2018.10.05 |
---|---|
[LOS] wolfman (0) | 2018.10.05 |
[LOS] orc (0) | 2018.10.05 |
[LOS] cobolt (0) | 2018.10.05 |
[LOS] gremlin (0) | 2018.10.05 |