DOM-based Cross Site Scripting

Use burp scanner

or manually look for

Browser JavaScript execution sinks

The following JavaScript functions parse strings as JavaScript. If it is possible to control, even partially, the vulnerable argument, then it is possible to execute JavaScript.

Function NameArgumentBrowserExample
evalfirstAlleval("jsCode"+usercontrolledVal )
Functionfirst if there's one, the last if >1 argsAllFunction("jsCode"+usercontrolledVal ) , 

Function("arg","arg2","jsCode"+usercontrolledVal )
setTimeoutfirst IIF it is a stringAllsetTimeout("jsCode"+usercontrolledVal ,timeMs)
setIntervalfirst IIF it is a stringAllsetInterval("jsCode"+usercontrolledVal ,timMs)
setImmediatefirst IIF it is a stringIE 10+setImmediate("jsCode"+usercontrolledVal )
execScriptfirstIE 6+execScript("jsCode"+usercontrolledVal ,"JScript")
crypto.generateCRMFRequest5thFirefox 2+crypto.generateCRMFRequest('CN=0',0,0,null,'jsCode'+usercontrolledVal,384,null,'rsa-dual-use')
ScriptElement.srcassignedValueAllscript.src = usercontrolledVal
ScriptElement.textassignedValueExplorerscript.text = 'jsCode'+usercontrolledVal
ScriptElement.textContentassignedValueAll but IE<9script.textContent = 'jsCode'+usercontrolledVal
ScriptElement.innerTextassignedValueAll but Firefoxscript.innerText = 'jsCode'+usercontrolledVal
anyTag.onEventNameassignedValueAllanyTag.onclick = 'jsCode'+usercontrolledVal

(TBF)

Source:

https://code.google.com/p/domxsswiki/wiki/ExecutionSinks