HackCTF Web의 14번째 문제는 LOL이다.
문제 링크: http://ctf.j0n9hyun.xyz:2035
문제 링크로 들어가면 바로 flag.php로 접근을 할 수 있지만, 플래그는 보이지 않고 "you are not local"이라는 문구와 함께 하이퍼링크 하나가 있다. local로 flag.php에 접근하면 되겠지만 일단 해당 하이퍼링크로 들어갔다.
해당 페이지의 소스코드를 먼저 살펴보면 문제 이름이 LOL인 것처럼 검색창에 입력을 하면 롤 전적 사이트인 op.gg로 이동한다. 우리는 이 사이트가 아닌 flag.php로 접근해야 플래그를 얻을 수 있으므로 서버로 하여금 공격자가 강제한 제어 동작을 수행하도록 하는 SSRF 공격을 사용해야겠다고 생각했다.
SSRF 공격은 서버에서 사용하는 URL 처리기에 따라 @나 #과 같은 기호를 사용해서 시도할 수 있다고 한다. @의 경우에는 앞부분은 무시하고 뒤의 주소로 접속하고, #의 경우에는 뒤쪽을 무시하고 앞쪽의 주소로 접속하여 whitelist 방식의 필터링을 우회할 수 있다고 한다. (참고한 블로그: https://cosyp.tistory.com/246)
쿼리에는 /flag.php 값을 넣고, url에는 http://www.op.gg@127.0.0.1 형태로 입력을 해서 접근을 시도했다. 하지만 이러한 방식으로 접근하면 "Nop"이라는 문구가 뜬다. 이것으로 봤을 때 127.0.0.1도 우회하는 것 같았다. 따라서 이번에는 127.0.0.1을 우회하기 위한 방안을 찾아봤다. (참고한 블로그: https://posix.tistory.com/100)
127.0.0.1까지 우회하여 flag.php로 접근한 결과 flag를 획득할 수 있었고 이를 인증하면 문제가 풀린다.
웹도 올클까지 두 문제 남았다. 스터디 전까지 다 풀어버리자.
[HackCTF-Web#16] Wise Saying - 350 points (0) | 2022.01.13 |
---|---|
[HackCTF-Web#15] Authenticate - 350 points (0) | 2022.01.12 |
[HackCTF-Web#13] Cookie - 300 points (0) | 2022.01.10 |
[HackCTF-Web#12] 가위바위보 - 200 points (0) | 2022.01.10 |
[HackCTF-Web#11] Home - 200 points (0) | 2022.01.10 |
댓글 영역