I made a post earlier just focusing on the injective case but now I've extended this to bijectivity:
By injectivity (this isn't neccesary to write but I put it here for reference):
$(g\circ f)(x)=(g\circ f)(x')\implies f(x)=f(x')\implies x=x'$
Therefore $g\circ f$ is injective.
Here is where I get confused, I usually get lost when it comes to surjectivity.
Suppose $f: X \rightarrow Y, g:Y\rightarrow Z$
For $f(x)$: $\forall y\in Y, \exists x\in X:f(x)=y$
For $g(y)$: $\forall z\in Z, \exists y\in Y: g(y)=z$
For $g(f(x))$: $\forall z\in Z, \exists x:\exists y:g(y)=z$. In other words, for any $z$, there is a $y$ that satisfies $g(y)=z$ since for any $y$ there is an $x$ that satisfies $f(x)=y$, thusly, surjectivity has occured.
Therefore $g \circ f$ is surjective, and thus it is bijective.