(Lord of SQLInjection) darkknight 문제입니다.
이번에도 블라인드 SQL로 해결하는 문제입니다.
필터링을 보면 먼저 싱글쿼터( ' )를 막고 있으며 substr ascii = 를 막고 있으니
싱글쿼터(') substr ascii = 은 각각 더블쿼터(") mid ord like 로 우회하겠습니다.
일단 admin을 출력하는 구문을 작성하는 것이 먼저이니
더블쿼터를 사용해야 하는데 pw는 이미 싱글쿼터가 열려있으니
no부분에 삽입하는 방식으로 해결해야 할것 같습니다.
no=-1||id like "admin"#
필터링에 안걸리게 더블쿼터로 admin을 감싸는 방식으로 값을 전달해보면
admin이 출력되었으니 pw길이와 값을 찾는 코드를 작성해보면
no=-1||id like "admin" && length(pw) like {l}#
no=-1||id like "admin" && ord(mid(pw,{i},1)) like {l}#
위와 같이 작성이 가능합니다.
위 코드를 URL 인코딩 하여 이전에 사용한 코드에 몇가지를 수정을 해주면
다음과 같이 작성이 가능합니다. 위 코드를 실행해보면
패스워드의 길이는 8이며 값은 0b70ea1f 라고합니다.
패스워드값을 문제사이트에 전달해주면
문제가 해결되었습니다.
'Wargame(Web) > Lord of SQLInjection' 카테고리의 다른 글
(Lord of SQLInjection) giant 문제 (0) | 2022.08.24 |
---|---|
(Lord of SQLInjection) bugbear 문제 (0) | 2022.08.24 |
(Lord of SQLInjection) golem 문제 (0) | 2022.08.24 |
(Lord of SQLInjection) skeleton 문제 (0) | 2022.08.17 |
(Lord of SQLInjection) vampire 문제 (0) | 2022.08.17 |