Reduce $L_c=\{\langle M_1 \rangle, \langle M_2 \rangle):L(M_1)\cap L(M_2)\neq \emptyset\}$ to Universal language

How to reduce $ L_c=\{\langle M_1 \rangle, \langle M_2 \rangle):L(M_1)\cap L(M_2)\neq \emptyset\}$ to Universal language?

My try: Construct a Turing machine $ N$ using a Turing Machine $ U$ that decides universal language as subroutine to decide $ L_c$ . $ N$ , on any input $ <\langle M_1 \rangle, \langle M_2 \rangle >$ :
$ 1.$ Construct a program that generates word $ w \in \sum^\ast$ in canonical order.
$ 2.$ Run $ U$ on $ \langle M_1, w\rangle $ and $ \langle M_2, w\rangle $ .
$ 3.$ If $ U$ accepts both, accept.
$ 4.$ If not, back to $ 1$ .

It seems does not work. Because if $ L(M_1)\cap L(M_2)= \emptyset$ , $ N$ will loop forever(it just can’t find such $ w$ ).