My idea is to find a shortest path from $u$ to $v$ ...
As noted by Pål GD, it is not enough to find just one shortest path from $u$ to $v$ as a different shortest path might contain the wanted intersection vertex. We have to take into consideration all shortest paths from $u$ to $v$. Since we are only interested in the vertices, it is enough to find all vertices that are on some shortest path from $u$ to $v$. Denote that set of vertices as $S(u,v)$, where $S$ is the shorthand for both "shortest" and "set".
Characterization of $S(u,v)$: Let $d(x,y)$ be the distance between vertex $x$ and $y$. $$x\in S(u,v) \Longleftrightarrow d(u,x)+d(x,v)=d(u,v).$$
It is immediate to prove both "if" and "only if" part.
Here is an wanted algorithm.
Run Dijkstra's algorithm with $u$ as source and with a priority queue such as described at this wikipedia entry to obtain function $d_u$ such that $d_u(x)=d(u,x)$ for all $x\in V$ in the form of a look-up table. Similarly, obtain function $d_v(x)$ such that $d_v(x)=d(x,v)$ for all $x\in V$ by running Dijkstra's algorithm on $G$ with all edges reversed and $v$ as source. Similarly, obtain $d_s(x)$ and $d_t(x)$. For each vertex $x$ in $V$, check whether $d_u(x)+d_v(x)=d_u(v)$ and $d_s(x)+d_t(x)=d_s(t)$. If we find one such vertex, the answer is yes; otherwise, the answer is no.
Here are several related exercises.
Exercise 1. Prove the correctness of the characterization of $S(u,v)$ as well as the correctness of the algorithm.
Exercise 2. Show that the above algorithm runs in $O(|E|\log |V|)$ time when the priority queue of Dijkstra's algorithm is implemented as a self-balancing binary search tree, binary heap, pairing heap, or Fibonacci heap.
Exercise 3. For each vertex $u$, let the shortest-path-index $d(u)$ be the number of ordered vertex pairs $(v_1,v_2)$ such that $u$ belongs to one of the shortest paths from $v_1$ to $v_2$. Let a path-center of $G$ be any vertex whose shortest-path-index is the maximum. Find an efficient algorithm that returns all path-centers.