get subsection of a textfile using awk, sed or grep
===

I'm afraid I'm an expert at any of the three tools listed, so I'm asking you all.

I have a large text file that can be broken into multiple sections, each of which has the header 'ABC' and the footer '&&', without the quotes. Within a section, I need to get a subsection as follows:

    ABC
    
    <ID>
    123

    &&

Where there is random data between ABC <ID>, and between 123 and &&. The actual ID, 123, is variable.

I believe that doing awk '/ABC/,/\&\&/' works in finding each subsection, but I don't know how to get the subsection corresponding to the correct ID. Thanks in advance for any help.