CTF/LINE CTF 2023
-
[Study] LINE CTF 2023 Adult Simple GoCurlCTF/LINE CTF 2023 2023. 3. 27. 23:13
Simple 문제(https://vardy.tistory.com/262)의 업그레이드 버전이다. 취약점이 존재했던 필터링 로직이 수정되어, X-Forwarded-For 혹은 X-Real-IP 헤더를 사용하여 c.ClientIP()의 값을 제어하는 기존 방법으로는 플래그를 획득 할 수 없다. if strings.Contains(reqUrl, "flag") || strings.Contains(reqUrl, "curl") || strings.Contains(reqUrl, "%") { c.JSON(http.StatusBadRequest, gin.H{"message": "Something wrong"}) return } 어쨌든 헤더 삽입 관련 내용이기 때문에 관련해서 수많은 삽질을 하다가 문제를 풀지 못했는데 풀..
-
[Clear] LINE CTF 2023 Baby Simple GoCurlCTF/LINE CTF 2023 2023. 3. 26. 09:00
주어진 URL에 접근해보자 URL, Header Key, Header Value를 입력받아서 요청을 날리고, 응답 값을 json형식으로 출력해준다. 응답이 단순히 json 데이터로 반환되기때문에 클라이언트 영역에서 리다이렉트시키거나 스크립트를 실행하는것은 불가능했다. 대략적인 기능을 파악했으니, 주어진 Go언어의 소스코드를 분석해보자. (디버깅을 위해 출력부분 관련하여 추가/수정된 부분이 있다.) package main import ( "errors" "io/ioutil" "log" "net/http" "os" "strings" "github.com/gin-gonic/gin" ) func redirectChecker(req *http.Request, via []*http.Request) error { l..