write up
-
[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코드 위 코드의 결과값을 확인해 보면 다음과 같습니다. 입력하러 가봅시다!
-
[Web] EasyPhpCTF write_up/b00t2root CTF 2019. 4. 2. 20:10
문제가 총 3가지 이므로 나눠서 이야기 하겠습니다. 이 문제는 ?1=입력할값의 형태로 url에 값을 넣어야 하는데 입력한 값과 md5(입력한값) 같아야 합니다. 이럴때 php magic hash를 사용해야 하는데 원리는 이렇습니다. if($str1 == md5($str))은 == 으로 값을 비교하기 때문에 느슨한 비교 연산자 입니다. '3' == '3.0' 의 반환값은 True인 참 입니다. 하지만 '3' === '3.0'의 반환 값은 False인 거짓입니다. 이를 이용해서 값을 정하면 됩니다. 우리가 1.2e3이라는 부동소수점을 입력할때 1.2 * 10^3 이라는 값을 의미하는데 우리가 입력을 할때 0e + 어떤 값 이라고 입력을 하면 뭐든지 0 * 어떤값 의 형태가 되기 때문에 ==(느슨한 비교 연산..