Here is a pretty messy proof that is not categorical. I recently solved this problem and decided to share my solution. I apologize if this is not what you are looking for.

Some notation:

- $X,Y$ will be topological spaces, and $f:X\to Y$ a continous map. We will denote $F$ (resp. $G$) to be a sheaf on $X$ (resp. $Y$).
- $U$ (resp. $V$) will denote an open set in $X$ (resp. $Y$).
- We will denote $\overline{f}G$ to be the presheaf on $X$ given by $\overline{f}G(U) = \lim ~ G(V)$, where $V\supseteq f(U)$.

If $P$ is a presheaf on $X$, we use the notation $(U,s)$, where $U\ni x$ and $s\in P(U)$, to denote the image of $s\in P(U)$ in the stalk $P_x$ at the point $x$. Thus, $(U,s) = (U',s')$ (where $U'\ni x$) if and only if there is an $U''\ni x$ and $s''\in P(U'')$ such that $U''\subseteq (U\cap U')$ and $s|_{U''} = s'|_{U''} = s''$. \

Let $P^+$ be the sheafification of $P$, so it comes equipped with a morphism $P\to P^+$. For $s\in P(U)$, we define $\tilde{s}$ to be the image of $s\in P(U)\mapsto \tilde{s}\in P^+(U)$. The important fact for us is that if $a\in P^+(U)$, then for any $x\in U$, there is an $U_x\ni x$, and $s\in P(U_x)$, such that $a|_{U_x} = \tilde{s}$. \

Therefore, if have a sheaf $H$ on space $X$, and two morphisms $\varphi,\varphi':P^+\to H$, such that $\varphi(U)(\tilde{s}) = \varphi'(U)(\tilde{s})$, for all $s\in P(U)$, and all $U$, then $\varphi = \varphi'$. \

Now we let $F$ be a sheaf on $X$, with $f:X\to Y$ a continuous map. For an open set $U$ in $X$, $\overline{f}f_*F(U)$ is the direct limit of $F(f^{-1}V)$, where $f^{-1}V\supseteq U$. We denote $(f^{-1}V,s)$ to be the image of $s\in F(f^{-1}V)$ in its direct limit. Hence $\widetilde{(f^{-1}V,s)}\in f^{-1}f_*F(U)$. The sheaf morphism $f^{-1}f_* F\to F$ we denote by $\alpha$. The map $\alpha(U):f^{-1}f_* F(U) \to F(U)$ satisfies the property that $\widetilde{(f^{-1}V,s)} \mapsto s|_U$, where $V$ is an open set in $Y$, and $f^{-1}V\supseteq U$, and $s\in f_*F(V) = F(f^{-1}V)$. \

For a sheaf $G$ on $Y$, we denote the sheaf morphism $G\to f_*f^{-1}G$ by $\beta$. First, we have a presheaf morphism $\beta':G\to f_*\overline{f}G$ where $\beta'(V)$ is given by $s\mapsto (V,s)$, here we think of $(V,s)$ as a representative in the direct limit $G(W)$ where $W\supseteq f(f^{-1}V)$. And we have a presheaf morphism $\mu: f_*\overline{f}G\to f_*f^{-1}G$ where, $\mu(V)(s) = \widetilde{(f^{-1}V,s)}$. Thus, $\beta(V)$ satisfies the property $s\mapsto \widetilde{(f^{-1}V,s)}$.\

If we start with a morphism $\psi:G\to f_*F$, then we obtain a morphism $f^{-1}G\to F$ by composition $\alpha\circ f^{-1}\psi$. The map $(\alpha\circ f^{-1}\psi)(U)$ satisfies the property that $\widetilde{ (f^{-1}V,s) }\mapsto \psi(V)(s)|_U$. \

If we start with a morphism $\varphi:f^{-1}G\to F$, then we obtain a morphism $G\to f_*F$ by composition $f_*\varphi\circ \beta$. The map $(f_*\varphi\circ \beta)(V)$ satisfies the property that $s\mapsto \varphi(f^{-1}V)\widetilde{(f^{-1}V,s)}$. \

Hence, given a morphism $f^{-1}G\to F$ we can obtain $G\to f_*F$, and given a morphism, $G\to f_*F$ we can obtain $f^{-1}G\to F$. We will show these two transformations are inverses of one another, completing the proof. \

Let us start with $\varphi: f^{-1}G\to F$. Construct $\psi:G\to f_*F$ and then construct its corresponding morphism $\varphi':f^{-1}G\to F$. We have to show that $\varphi = \varphi'$. Choose an open set $U$ (in $X$). We will show that $\varphi(U) = \varphi'(U)$. The map $\varphi'(U)$ sends $\widetilde{(f^{-1}V,s)} \mapsto \psi(V)(s)|_U$, where $V$ is an open set in $Y$ for which $f^{-1}V \supseteq U$ ($\iff V\supseteq f(U)$). But $\psi(V)(s) = \varphi(f^{-1}V)(\widetilde{f^{-1}V,s})$. As sheaf morphisms are consistent with restrictions and $U\subseteq f^{-1}V$ we have that, $\psi(V)(s)|_U = \varphi(U)(\widetilde{f^{-1}V,s})$. Therefore, $\varphi(U)$ and $\varphi'(U)$ both send $\widetilde{(f^{-1}V,s)}$ to the same section in $F(U)$. This is enough to complete the proof.\

Now we consider the case $\psi:G\to f_*F$. Construct $\varphi:f^{-1}G\to F$ and then construct its corresponding morphism $\psi':G\to f_*F$. We have to show that $\psi = \psi'$. Choose an open set $V$ (in $X$). We will show that $\psi(V) = \psi'(V)$. The map $\psi'(V)$ sends $s\in G(V)$ to $\varphi(f^{-1}V)\widetilde{(f^{-1}V,s)}$. But $\varphi(f^{-1}V)\widetilde{(f^{-1}V,s)} = \psi(V)(s)|_V = \psi(V)(s)$. Hence, $\psi'(V) = \psi(V)$.