Let $A$ be a finite set and $f:A\to A$ be injective.
We define the (common) notation $f^m(a)=\underbrace{f\circ\dotso\circ f}_{m-times}(a)$ for $m\in\mathbb{N}$.
Since for an injective function $f: X\to Y$ and a function $g: Y\to X$ the function $f\circ g$ is injective, we have that $f^m$ is injective.
Since $A$ is a finite set it exists a $k\in\mathbb{N}$, $k>1$ (the equality $f^1=f$ is trivial) with $f^k=f$ (which means that $f^k(a)=f(a)$ for every $a\in A$). Without loss of generality we can assume that $k\neq 2$. If $k=2$ then $f$ is the identity map, since $f^2(a)=f(f(a))=f(a)$ for every $a\in A$. In that case there is nothing to show.
Why does such $k$ exist? Well, $A$ is finite. That means there is only a finite number of possible functions that can be constructed by concatenating $f$ with itself, since every element can possibly be only mapped at $|A|$ different elements, which means we can at most have $|A|^{|A|}$ possible functions. So if we just concatenate $f$ as often as necessary, we will end up with $f$ again.
As I said it holds that $f^k(a)=f(a)$ for every $a\in A$.
So $f(f^{k-1}(a))=f(a)$. But $f$ is injective, which means that $f^{k-1}(a)=a$.
But then we found for every $a\in A$ a preimage of $a$, which is $f^{k-2}(a)$, since $f(f^{k-2}(a))=f^{k-1}(a)=a$. Here we need our assumption without loss of generality, that $k>2$. Else it is not clear that $k-2$ is an element of $\mathbb{N}$ which would make the expression $f^{k-2}$ pointless.
This proof might not be the easiest to find (or even to understand). I tried to make every step clear, which makes the proof look long and complicated.