LOS : https://los.rubiya.kr/ ✔️ 문제 문제는 다음과 같다. 이번에는 싱글쿼터, substr, ascii, =에 대한 필터링이 걸려있다. ✔️ 풀이 풀이를 위한 코드는 다음과 같다. if(($result['pw']) && ($result['pw'] == $_GET['pw'])) solve("darkknight"); 이전 문제와 동일한 것 같지만, 싱글쿼터가 필터링 되어있고 전에 사용하던 ascii를 사용하지 못하는 상태이다. 1) ascii 필터링을 우회하기 위해서 같은 기능을 하는 ord 함수를 사용한다. 2) 싱글쿼터 필터링을 우회하기 위해서 더블쿼터를 사용한다. 3) = 필터링을 우회하기 위해서 like를 사용한다. 4) substr 필터링을 우회하기 위해서 mid 함수 사용..
LOS : https://los.rubiya.kr/ ✔️ 문제 문제는 다음과 같다. 이번에는 or, and, substr, =에 대한 문자열을 막고 있다. ✔️ 풀이 풀이를 위한 코드는 다음과 같다. if(($result['pw']) && ($result['pw'] == $_GET['pw'])) solve("golem"); orc, orge 문제와 동일하게 블라인드 인젝션을 진행하는 문제로 보이는데, 문제는 or, and, substr, =에 대해서 검사를 진행하고 있다는 것이다. 그렇다면 위에 나온 문자열 필터링을 우회하면서 페이로드를 작성하고, 작성한 페이로드를 스크립트로 작성해서 pw를 알아내야 할 것이다. 여기서도 주의해야할 것은 우리는 admin에 대한 pw를 알아내야 한다. ' || id = ..
LOS : https://los.rubiya.kr/ ✔️ 문제 문제는 다음과 같다. 이번에는 우회를 해야하는 기법은 없지만, 쿼리 구문을 제대로 해석해야하는 문제로 보인다. ✔️ 풀이 풀이를 위한 코드는 다음과 같다. if($result['id'] == 'admin') solve("skeleton"); 동일하게 id 값이 admin이여야하는데, 특이한 것은 이미 뒤에 새롭게 추가된 구문까지 고려해서 페이로드를 작성해야한다는 것이다. 그런데 뒤에 나오는 구문을 생각할 필요가 없는 것이 어차피 pw 안에 $_GET[pw]를 받고 있기 때문에 우리가 원하는 구문을 삽입하고 뒤에는 주석 처리를 하면 된다. 지금까지 해왔던 것처럼 코드를 작성해보자. ' or id='admin' and 1
LOS : https://los.rubiya.kr/ ✔️ 문제 문제는 다음과 같다. 이번에는 strtolower 라는 함수와 str_replace 함수가 존재하고 이를 우회해야하는 문제로 보인다. ✔️ 풀이 풀이를 위한 코드는 다음과 같다. if($result['id'] == 'admin') solve("vampire"); 이전 문제와 동일하게 id 값이 admin이면 되는데, 문제는 새로운 함수들이 추가된 것이다. 해당 함수들을 php 공식 문서에서 확인해보자. https://www.php.net/manual/en/function.strtolower.php
LOS : https://los.rubiya.kr/ ✔️ 문제 문제는 다음과 같다. 이번에는 admin이 막혀있는 것을 볼 수 있다. ✔️ 풀이 풀이를 위한 코드는 다음과 같다. if($result['id'] == 'admin') solve("troll"); id 값이 admin 이여야하는데, admin이 막혀있다.. 우선 id=admin 이라는 구문을 삽입하게 되면, 약올리는 것을 확인할 수 있다. 그런데 이런 생각이 들었다. id값이 admin이여야 하는데, php는 대소문자를 구분하지 않는다고 알고 있다. 그렇다면 preg_match는 정확하게 admin 만을 필터링하기 때문에 Admin, adMiN 이런식으로 작성해서 우회하면 되지 않을까라는 생각이 들었다. 예상대로 쉽게 풀 수 있었다.. 이에 ..
LOS : https://los.rubiya.kr/ ✔️ 문제 문제는 다음과 같다. 이번에도 동일하게 or 연산자와 and 연산자는 막혀있다. 추가족으로 addsalshes 함수도 들어가있다. ✔️ 풀이 풀이를 위한 코드는 다음과 같다. if(($result['pw']) && ($result['pw'] == $_GET['pw'])) solve("orge"); 어디서 많이 본 형태가 아닌가하면 이전 orc 문제와 동일하다. pw를 요구하기 때문에 아마도 블라인드 인젝션 문제일 것 같다고 추측만 일단 해놓기로 하자. 또한, 코드 상단부는 guest에 대한 내용이 나오지만 여기서 헷갈리지 말고 우리는 밑에 나오는 admin의 pw에 대해서 알아내야 한다. 바로 이전에 풀었던 문제를 응용해서 삽입하게 되면, 다..