Matrices Manipulations. Let A be a unitary matrix of rank $n$ , $AA^{*} = A^{*}A = I_n$
Let B be a self adjoint matrix of rank $n$, which means that $B^{*}=B$
Also $AB$ is normal, which means $AB(AB)^{*} = (AB)^{*}AB$
I want to prove that $AB^{2} = B^{2}A$
So 
$AB^{2} = ABB = ABB^{*}AA^{*} = ABB^{*}A^{*}A = AB(AB)^{*}A = (AB)^{*}ABA = B^{*}A^{*}ABA = B^{*}BA = B^{2}A$
Is my proof correct?

The proof is correct.
It might be slightly simpler to rewrite
$$AB(AB)^{*} = (AB)^{*}AB$$
As
$$AB^2A^*=ABB^*A^*=B^*A^*AB=B^2$$
Then multiply both sides by $A$.
But it's really equivalent to you approach.
