require 'Gelo'
ReqEditor = {}
function ReqEditor:drawui(req,head)
browser.dofile(Syhunt.filename,'Fuzzer.lua')
browser.dofile(Syhunt.filename,'Tor.lua')
html = [[
]]
if Tor:IsRunning() then
html = html..' '
end
extbar.load(html)
extbar.setval('plaintext[name="request"]',req)
extbar.setval('plaintext[name="header"]',head)
end
function ReqEditor:sendrequest()
local reqdetails = 'Editor Request'
tab:viewheaders()
http = GHTTPRequest:new()
host = url_gethost(tab.url)
port = url_getport(tab.url)
request = extbar.getval('plaintext[name="request"]')..'\n\n'
if http_getfield(request,'Host') ~= '' then
host = http_getfield(request,'Host')
host = str_trim(host)
port = 80
if wildmatch(host,'*:*') then
port = str_after(host,':')
host = str_before(host,':')
end
end
if extbar.getval('button[name="viator"]') == 'True' then
reqdetails = 'Editor Request (Via Tor)'
http.socksserver = Tor.server
http.socksport = Tor.port
http.sockslevel = Tor.level
http.useproxy = true
else
http.socksserver = ''
http.socksport = ''
http.useproxy = false
end
http.autocontentlength = true
http:openlow(host,port,request)
extbar.setval('plaintext[name="request"]',request)
extbar.setval('plaintext[name="header"]',http:rcvdheader())
newpath = http_getreqpath(request)
newurl = hostporttourl(host,port)..newpath
tab:logrequest(reqdetails,http.contentlength,request,http:rcvdheader(),http.text)
if extbar.getval('button[name="render"]') == 'True' then
tab:gotourl(newurl,http.text)
else
tab:gotourl(newurl,html_escape(http.text))
tab.source = http.text
end
http:release()
end
function ReqEditor:vieweditor()
if str_beginswith(tab.url,'http') then
http = GHTTPRequest:new()
http:open('GET',tab.url)
ReqEditor:drawui(http:sentheader(),http:rcvdheader())
http:release()
else
app.showmessage('No URL loaded.')
end
end