I prefer to work in linear maps than matrices, though they are more or less the same in finite dimensions.
Suppose $T$ is a rank $k$ transformation from $\mathbb{R}^m$ to $\mathbb{R}^n$. We can obtain this transformation from an $n \times m$ matrix $M$ by defining $Tv = Mv$. In this way, we define $T$ by its standard matrix, $M$.
Then $T$ has a range that is a dimension $k$ subspace of $\mathbb{R}^n$ (call it $R$). Then $T$ with codomain restricted to $R$ is then a transformation from $m$ dimensions to $k$ dimensions. Once you choose a $k$-element basis $B$ for $R$, we can form an $k \times m$ matrix $A$ representing this transformation. That is, if $S_m$ is the standard basis on $\mathbb{R}^m$, then $A[v]_{S_m} = [Tv]_B$.
We can then consider the inclusion map from $R$ to $\mathbb{R}^n$ (i.e. the identity on $R$, but with a larger codomain of $\mathbb{R}^n$). We can form the matrix from $C$ to $S_n$, which is an $n \times k$ matrix $C$, satisfying $C[v]_B = [v]_{S_n}$.
Therefore, in total, we have,
$$CA[v]_{S_m} = C[Tv]_B = [Tv]_{S_n}.$$
Therefore, $CA$ is the standard matrix of $T$, that is $M = CA$, where $C$ is $n \times k$ and $A$ is $k \times m$. This gives you one direction of the result.
To get the other direction, simply recall that the rank of a matrix is bounded above by the minimum of its dimensions, and $\operatorname{rank}(AB) \le \min\lbrace\operatorname{rank}(A), \operatorname{rank}(B) \rbrace$.