In jsho dictionary both mean to to be cured, and both are also intransitive. Is there any difference?
I will tell from what I remember.
直る means to be fixed.
治る means to be cured.
In one case you're fixing something, in the other you're fixing yourself (or someone) by curing.
In the first case you're talking about something that has been fixed, in the second you're talking about someone being cured (in a hospital for example).
I would recommend to use multiple dictionary ressources and to give a look at example sentences to fully get the meaning of a word.