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

+ Recent posts