Web
-
[Lord of SQL_injection] #11 golem$ 웹 해킹 $/los.rubiya.kr 2019. 4. 5. 19:15
이번 문제는 blind sql injection문제 인것 같은데 필터링이 좀더 추가 됬다.. or 와 and는 저번 문제에서 ||(%7c%7c) 와 &&(%26%26)으로 우회해서 입력을 했었지만 이번에는 substr함수와 = 이 추가로 필터링 되는것 같다. ?pw=' || id like 'admin = 을 우회 할수 있는 like를 이용해서 일단 id의 값을 admin으로 설정했다. 그이후에 blind sql injection을 하면 될것 같다. = 는 like로 substr은 mid함수로 우회했습니다. mid(변수명, 인덱스위치, 위치로부터문자갯수) 형식으로 쓰이기 때문에 mid(pw, {}, 1)로 고정해두면 1자리씩 비교하는데 인덱스 위치만 for 문을 이용해서 바꿔주면 편하게 쓸수 있습니다.! ..
-
[Lord of SQL_injection] #10 skeleton$ 웹 해킹 $/los.rubiya.kr 2019. 4. 5. 19:12
이문제를 보면서.. 이 CTF를 소개해준 친한 형의 말이 떠올랐다. los를 전부 다 풀면 sql injection을 잘하게 될거야! 그럴수 밖에 없는거 같다 ㅋㅋㅋ 그냥 모든 경우의 필터링이 하나씩 추가되는 모습이다.. 과연 맨 마지막 문제엔 얼마나 무시무시한 문제가 기다리고 있을까 떨리고 변태스럽게 설레기도 한다 ㅋㅋ 이번 문제는 id의 값을 admin을 만들어야 하는데 and 뒤에 있는 1=0의 False 값을 우회 해야한다. ?pw=' or id='admin' or '1=1 일단 and 1=0를 우회하기 위해서는 앞에 or 1=1를 이용해서 그냥 or 뒤를 거짓으로 만들 생각을 했다. 그렇게 나온 결과가 or '1=1 이것이였다. 그리고 id의 값이 admin이여야 하기 때문에 ?pw=' or i..
-
[Lord of SQL_injection] #9 vampire$ 웹 해킹 $/los.rubiya.kr 2019. 4. 5. 19:10
8번문제와 비교를 해봤을때 8번에서 언급한 대소문자 차이로 인한 우회법은 통하지 않을 것 같다.. strtolower로 인해서 모두 소문자가 되기 때문이다. 하지만 어디에나 취약점이 있는법 이번에 필터링 하는 함수명은 str_replace이다. 그렇다는 것은 admin 만 공백으로 치환한다는 것이기 때문에 다음과 같이 우회할수 있다. ?id=adadminmin 이다. 그 이유는 한 문자열당 필터링이 1번만 된다는것을 이용하는 것이다. adadminmin에서 필터링이 완료된 문자열은 가운데 admin을 제외한 겉부분의 admin 이다. 그래서 우회가 가능한 것이다.
-
[Lord of SQL_injection] #7 orge$ 웹 해킹 $/los.rubiya.kr 2019. 4. 5. 19:07
이문제는 전에 나왔던 blind sql injection보다 좀더 난이도가 높아 보인다... 저번에는 pw만 구하면 됬었지만 해당문제에서는 여러가지의 조건을 던진다. or 와 and가 필터링 되어있다. id의 값이 admin이 아닌 guest로 고정되어있다. 그렇가면... 일단 pw를 구하는 것은 소스코드 아래에서 2번째 문장을 보면 저번 문제와 같이 실제 디비의 pw값을 구해야 하므로 잠시 뒤로 미루고 id의 값을 admin으로 변경 시켜 보겠습니다. ?pw=' || id='admin id의 값이 admin이 되면 Hello admin을 출력합니다. 뒤에 &&를 이용해서 참의값을 넣어주면 어떻게 되는지 확인해 보겠습니다. ?pw=' || id='admin' %26%26 '1 다행히도 Hello admi..
-
[Lord of SQL_injection] #5 wolfman$ 웹 해킹 $/los.rubiya.kr 2019. 4. 5. 19:06
wolfman 문제의 소스코드입니다. 띄어쓰기를 하지 않아야하고 필터링을 우회해야하면서도 id가 admin이여야 해결되는 문제입니다. 띄어쓰기를 우회하는 방법은 많습니다. Tab : %09 Line Feed (\n) : %0a Carrage Return (\r) : %0d 주석 : /**/ 괄호 : () 저는 \n 인 %0a를 이용해서 문제를 해결해 보겠습니다. ?pw='or%0aid='admin ?pw='or%09id='admin ?pw='or%0aid='admin ?pw='or%0did='admin ?pw='or/**/id='admin ?pw='or(id='admin')%23
-
[Lord of SQL_injection] #4 orc$ 웹 해킹 $/los.rubiya.kr 2019. 4. 5. 18:58
드디어 4번째 문제인 orc문제에 들어왔습니다. 해당 코드를 좀 보면 ... 가장중요한 부분은 아래에서 2번째 부분!! 내가 입력한 pw와 실제 db의 pw가 일치해야 하는 것을 볼수 있습니다. 그렇다면 일단 참일때 어떻게 나오는지 확인해 보겠습니다. Hallo admin이 나옵니다. 그러면 바로 blind sql injection 하는 코드를 작성해 보겠습니다. ↑ blind sql injection python코드 위 코드의 결과값을 확인해 보면 다음과 같습니다. 입력하러 가봅시다!