Although there are many conventional methods to solve this problem I thought you might like to see how it is done with Grassmann algebra. Specifically this uses the code of John Browne incorporated in a developmental Mathematica Application.
We initialize the application and set Grassmann 3-space with coordinates x, y and z.
<< GrassmannCalculus`
SetPreferences["Grassmann3Space", "Vector"]
Define each plane by the three points of axis intersection. The Grassmann expression is the exterior product of the three points. [FivePointedStar][DoubleStruckCapitalO] is the origin.


The intersection is given by the regressive product of the two planes, simplified by CongruenceSimplify:


We can factor this into an exterior product of a point and a direction vector through the point. This defines the line of intersection. The overall numerical coefficient can be ignored.


We can check the answer by checking that the exterior product of the intersection with each of the planes is zero. This means that the intersection is indeed in each of the planes.

{True, True}