lib/pwn/plugins/transparent_browser.rb in pwn-0.4.383 vs lib/pwn/plugins/transparent_browser.rb in pwn-0.4.384

- old
+ new

@@ -315,24 +315,63 @@ proxy: 'optional scheme://proxy_host:port', with_tor: 'optional boolean (defaults to false)', with_devtools: 'optional - boolean (defaults to false)' ) puts browser_obj1.public_methods - * Only works w/ Chrome + + ******************************************************** + * DevTools Interaction Only works w/ Chrome * All DevTools Commands can be found here: * https://chromedevtools.github.io/devtools-protocol/ + * Examples devtools = browser_obj1.driver.devtools puts devtools.public_methods puts devtools.instance_variables puts devtools.instance_variable_get('@messages') + + * Tracing devtools.send_cmd('Tracing.start') devtools.send_cmd('Tracing.requestMemoryDump') devtools.send_cmd('Tracing.end') puts devtools.instance_variable_get('@messages') + + * Network devtools.send_cmd('Network.enable') - last_ws_resp = devtools.instance_variable_get('@messages').last if devtools.instance_variable_get('@messages')['method'] == 'Network.webSocketFrameReceived' + last_ws_resp = devtools.instance_variable_get('@messages').last if devtools.instance_variable_get('@messages').last['method'] == 'Network.webSocketFrameReceived' puts last_ws_resp devtools.send_cmd('Network.disable') + + * Debugging DOM and Sending JavaScript to Console + devtools.send_cmd('Runtime.enable') + devtools.send_cmd('DOM.enable') + devtools.send_cmd('Log.enable') + devtools.send_cmd('Debugger.enable') + devtools.send_cmd('Debugger.pause') + console_cmd = { + expression: 'console.log(global);' + } + step = 1 + loop do + devtools.send_cmd('Debugger.stepInto') + puts \"Step: \#{step}\" + this_call = devtools.instance_variable_get('@messages').last['params']['callFrames'].last if devtools.instance_variable_get('@messages').last['method'] == 'Debugger.paused' + puts \"Function Name: \#{this_call['functionName']}\" + this_document = devtools.send_cmd('DOM.getDocument') + puts \"This #document:\\n\#{this_document}\\n\\n\\n\" + + this_global = devtools.send_cmd( + 'Runtime.evaluate', + **console_cmd + ) + puts \"This #global:\\n\#{this_global}\\n\\n\\n\" + + sleep 9 + end + devtools.send_cmd('Debugger.disable') + devtools.send_cmd('DOM.disable') + devtools.send_cmd('Runtime.disable') + * End of DevTools Examples + ******************************************************** browser_obj1 = #{self}.linkout( browser_obj: 'required - browser_obj returned from #open method)' )