1. Filter Proxy HTTP history to only show files with the js extension:2. Within Burp Suite's Proxy HTTP history, click the Filter bar at the top of the GUI.Burp Suite’s proxy history3. Mark the resulting list of JavaScript files and Copy URLs4. Save the URLs to a text file `js.txt`5. Use `wget -i js.txt` to download them6. Alternatively, you can use the developer tools of your browser, to download files one by one:
-IdentifyallJSfilesbybrowsingthetarget’sfunctionalitiesandinteractingwithbuttonsandforms.ExtractJSFilesinBurpSuite-UseBurpSuite's HTTP history to filter and save in-scope JavaScript files (without Base64 encoding).Identify Unique Endpoints- Select at least 10 endpoints, focusing on those with variables (like IDs).Pattern Recognition with Regex- Observe endpoint patterns in JS files; create regex to match these patterns and automate discovery.Automated Extraction Tools- Use tools like jsluice, endext, or xnLinkFinder to assist with endpoint extraction.Spot Endpoint Patterns- Identify naming conventions (e.g., get or update) and explore modifications to discover hidden endpoints.Prioritize Critical Endpoints- Focus on sensitive areas (e.g., payments, admin) and use regex to search for secrets in these endpoints.Advanced Fuzzing- Extract strings within double quotes ("") and use them to fuzz for additional paths and endpoints.
Dynamic Analysis
Function Monitoring
monitor(FUNCTION);// If Function Sends Json Objects function hookvar old =FUNCTION;FUNCTION=function (ar ) {console.log("FUCNCTION called with arguments: "+JSON.stringify(ar));returnold(ar);}// monitor Getter and Settermonitor(location.__lookupGetter__("hash"));monitor(location.__lookupSetter__("hash"));debug(location.__lookupGetter__("hash"));debug(location.__lookupSetter__("hash"));// Find Function$("").datepicker();
Break Points on modifications
- Write click on the tag or attribute
- select Break on
- Choose between options (attripute modification or asubtree modification)