오늘은 혼자하는 CTF를 해보았다.


이미 해결한 상태에서 포스팅을 작성해서 문제 부분이 다음과 같다.

파일 구조와 문제 파일을 보면 다음과 같다.
FLAG를 얻기 위한 방법을 살펴본다.
login_check에서 참값이 반환되어 15번째 Logic을 넘어야 한다.
이제 login_check를 살펴본다. 33번째의 쿼리를 보면 취약점이 보인다. 바로 Uname과 password를 동시에 조건문으로 보는 것이 아니라, password만 이용하여 사용자에 대한 쿼리를 한다는 것이다.
즉 password만 일치한다면, uname값에 상관없이 쿼리를 불러올 것 이다.
또한 29번째 줄에서 어떤 하나의 값이 None(NULL) 값이 된다면
if (not null) and not ture
=> if true and false 가 되어 최종적으로 거짓이 될 것이다.

실제 사이트에서는 username을 비워놓는것이 안된다.
그래서 burpsuite를 이용하였다.

이렇게 보내보았다.

Logic을 우회하여 히든 디렉토리에 접근하는 것에 성공한 것을 볼 수 있다.
FLAG : dreamhack{85f9d023b5c7f7a8a47422aebd3cf00c}