SQL

보안/LOS

[LOS] evil_wizard

LOS : https://los.rubiya.kr/ ✔️ 문제 문제는 다음과 같다. 겉보기에는 비슷한데, hell_fire 문제랑 같겠냐고 약올리고 있다. ✔️ 풀이 풀이를 위한 코드는 다음과 같다. if(($result['email']) && ($result['email'] === $_GET['email'])) solve("evil_wizard"); 이전 문제와 비슷한 것 같지만, 필터링에 추가된 것들이 있고 진짜로 같겠냐라면서 문제에서 약올리고 있다. 하지만 필터링에 걸릴만한 것은 이전 코드에서도 사용하지 않았기 때문에 한번 그대로 시도해보자. 잘 삽입이 되는 것으로 보이고, 이번에는 admin의 score가 200에서 50으로 줄은것으로 보인다. 한번 이메일의 길이를 찾아보도록 하자. import ..

보안/LOS

[LOS] hell_fire

LOS : https://los.rubiya.kr/ ✔️ 문제 문제는 다음과 같다. 이번 문제는 조금 색다른게 테이블이 존재한다. ✔️ 풀이 풀이를 위한 코드는 다음과 같다. if(($result['email']) && ($result['email'] === $_GET['email'])) solve("hell_fire"); 색다르게 email이 맞아야하는데, id가 admin이면 이메일이 노출되지 않는 것으로 보인다. 또한, order by 구문을 사용하여 order을 GET으로 받고 있는 것을 확인할 수 있다. order by 구문은 지정된 컬럼을 기준으로 정렬이 가능한데 다음처럼 score를 작성하면 점수별 정렬이 가능하다. 여기서 이제 rubiya의 이메일이 아니라, 코드 하단부에 admin의 이메..

보안/LOS

[LOS] dark_eyes

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

[LOS] iron_golem

LOS : https://los.rubiya.kr/ ✔️ 문제 문제는 다음과 같다. 코드가 상단과 하단으로 나뉘어진 것을 보니 이번에도 블라인드 인젝션 문제가 아닐까 싶다. ✔️ 풀이 풀이를 위한 코드는 다음과 같다. if(($result['pw']) && ($result['pw'] == $_GET['pw'])) solve("iron_golem"); 비밀번호를 맞춰야하는 것을 보니 스크립트 문제로 보인다. 우선 sleep, benchmark와 같은 아이들이 필터링에 걸려있다. 이전에 쭉 해오던 페이로드를 삽입해보자. 아무것도 나오지 않는 것을 확인할 수 있는데, 그 이유는 전에 Hello 라면서 출력하던 구문이 해당 코드에는 없기 때문이다. 그렇다면 스크립트도 일부 수정을 해야한다. 대신 우리에게 주어진..

보안/LOS

[LOS] dragon

LOS : https://los.rubiya.kr/ ✔️ 문제 문제는 다음과 같다. 자기 스스로 주석처리를 하고 있는데..? ✔️ 풀이 풀이를 위한 코드는 다음과 같다. if($result['id'] == 'admin') solve("dragon"); admin을 출력해야하는데, guest를 출력하고 자기 스스로 주석처리를 하고 있다. 그럼 주석을 무마하면서 id를 출력할 수 있게 해야한다. # 이라는 주석은 한 줄 주석을 의미하기 때문에, %0a 같은 개행 문자, Line Feed를 통해서 다음줄로 구문을 바꾸면 될 것 같다는 생각이 들었다. 개행 문자를 입력하면 정상적으로 구문이 먹히지 않는 것을 확인할 수 있고, 뒤에 풀이를 위한 페이로드를 작성해보도록 하자. 1234 or id='admin' # ..

보안/LOS

[LOS] xavis

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..

dDong2
'SQL' 태그의 글 목록 (5 Page)