9번 - sql injection

2020. 10. 11. 12:27

※ 문제될 시에 비공개 처리하도록 하겠습니다. ※

 

 

1, 2, 3의 선택지와 password 입력란이 보입니다.

 

 

1과 2에는 각각 Apple, Banana가 들어있고 url 파라미터로 no가 1, 2의 값을 가지는 것을 볼 수 있습니다.

 

 

그런데 3은 Secret이라는 문자가 나오면서 no 3의 id가 password 값이라고 나옵니다.

그렇다면 id 값을 알아내야겠네요.

 

 

true일 때는 no에 3의 값이 반환되어 Secret 문자열이 나타나지만, false 일 때는 no에 0의 값이 반환되어 일치하는 아이디가 없으므로 password 입력란만 나타나게 됩니다.

 

no의 값에서 문자열 검열도 하게 되는데 대충 적어보자면,

ascii | " | ' | %20 | = | > | < | select | union 등등...

입니다.

 

문자열 비교할 때는 substr을 사용해야겠죠?

그리고 부등호가 모두 검열되므로 저는 like를 사용했습니다.

또한, 싱글쿼터 더블쿼터 모두 검열되므로 16진수를 사용했습니다.

 

브루트포싱을 수행한 파이썬 코드를 보여드리겠습니다.

 

 

이렇게 작성했습니다.

실행한 결과를 보여드리면

 

 

어렵지 않게 password를 얻어낼 수 있었습니다.

'[▒] 보안 > webhacking.kr' 카테고리의 다른 글

11번 - RegExp  (0) 2020.10.11
10번 - JS 조작  (0) 2020.10.11
8번 - sql injection  (0) 2020.10.02
7번 - sql injection  (0) 2020.10.02
6번 - JS 조작  (0) 2020.09.30

BELATED ARTICLES

more