LOS : https://los.rubiya.kr/ ✔️ 문제 문제는 다음과 같다. 이번에도 패스워드를 알아내는 문제인 듯하다. ✔️ 풀이 풀이를 위한 코드는 다음과 같다. if(($result['pw']) && ($result['pw'] == $_GET['pw'])) solve("dark_eyes"); 이번에는 이전에 사용했던 페이로드는 사용하지 못하는 것이, if에 대한 필터링이 걸려있고 이외에도 col, case, whe, sleep, benchmark에 대한 문자열 필터링이 걸려있다. 그리고 친절하게 db 에러를 출력해주지 않고, 아무것도 출력해주지 않는 상태로 exit를 내보낸다. 위에는 사진인데, 싱글쿼터만 보내면 해당 응답받는 텍스트가 아무것도 없이 exit() 코드가 실행된 모습이다. if..
LOS : https://los.rubiya.kr/ ✔️ 문제 문제는 다음과 같다. 코드가 상단과 하단으로 나뉘어진 것을 보니 이번에도 블라인드 인젝션 문제가 아닐까 싶다. ✔️ 풀이 풀이를 위한 코드는 다음과 같다. if(($result['pw']) && ($result['pw'] == $_GET['pw'])) solve("iron_golem"); 비밀번호를 맞춰야하는 것을 보니 스크립트 문제로 보인다. 우선 sleep, benchmark와 같은 아이들이 필터링에 걸려있다. 이전에 쭉 해오던 페이로드를 삽입해보자. 아무것도 나오지 않는 것을 확인할 수 있는데, 그 이유는 전에 Hello 라면서 출력하던 구문이 해당 코드에는 없기 때문이다. 그렇다면 스크립트도 일부 수정을 해야한다. 대신 우리에게 주어진..
LOS : https://los.rubiya.kr/ ✔️ 문제 문제는 다음과 같다. 자기 스스로 주석처리를 하고 있는데..? ✔️ 풀이 풀이를 위한 코드는 다음과 같다. if($result['id'] == 'admin') solve("dragon"); admin을 출력해야하는데, guest를 출력하고 자기 스스로 주석처리를 하고 있다. 그럼 주석을 무마하면서 id를 출력할 수 있게 해야한다. # 이라는 주석은 한 줄 주석을 의미하기 때문에, %0a 같은 개행 문자, Line Feed를 통해서 다음줄로 구문을 바꾸면 될 것 같다는 생각이 들었다. 개행 문자를 입력하면 정상적으로 구문이 먹히지 않는 것을 확인할 수 있고, 뒤에 풀이를 위한 페이로드를 작성해보도록 하자. 1234 or id='admin' # ..
LOS : https://los.rubiya.kr/ ✔️ 문제 문제는 다음과 같다. 필터링에 regex, like 등이 추가된 것으로 보인다. ✔️ 풀이 풀이를 위한 코드는 다음과 같다. if(($result['pw']) && ($result['pw'] == $_GET['pw'])) solve("xavis"); 느낌이 앞선 블라인드 인젝션 문제처럼 풀어야 할 것 같은 느낌이다. 일단 필터링에 regex와 like가 걸려있는 것으로 보이는데, 한번 기존에 늘 삽입하던 구문을 삽입해보자. 정상적으로 페이로드가 먹히면서 admin을 반기는 것을 확인할 수 있다. 그렇다면 한번 패스워드 길이를 확인해보도록 하자. import requests url = "https://los.rubiya.kr/chall/xavi..
LOS : https://los.rubiya.kr/ ✔️ 문제 문제는 다음과 같다. 문자열 길이에 제한이 걸려 있는 것으로 보인다. ✔️ 풀이 풀이를 위한 코드는 다음과 같다. if($result['id']) solve("nightmare"); strlen 함수로 pw 길이가 6글자를 넘어가지 못하게 막혀있는 것을 확인할 수 있다. 그리고 특이한 것은 id != admin 이면서 pw를 검사하고 있고, 풀이를 위해서는 id 값이 들어가야하는 것이다. 당연히 아무런 반응이 없는 것을 확인할 수 있다. 또한, preg_match 함수로 #과 - 각 주석처리에 대해서 필터링 처리 되어 있는 것을 확인할 수 있다. 생각해볼 수 있는 것이 1) 6글자를 넘지 않는 페이로드이면서 2) #과 - 이외의 주석처리를 진..
LOS : https://los.rubiya.kr/ ✔️ 문제 문제는 다음과 같다. 함수가 추가된 것을 확인할 수 있다. ✔️ 풀이 풀이를 위한 코드는 다음과 같다. if($result['id']) solve("zombie_assassin"); 이번 문제에서는 strrev() 함수와 이전 문제들에서 자주 보였던 addslashes 함수가 등장하는데, addslashes 우회는 알고 있기 때문에 strrev에 대해서 찾아보도록 하자. https://www.php.net/manual/en/function.strrev.php PHP: strrev - Manual It's faster and flexible than tianyiw function (comment #122953) www.php.net 해당 공식문..