http get
This commit is contained in:
		| @ -32,28 +32,28 @@ action = function(host, port) | |||||||
|   local scheme = "" |   local scheme = "" | ||||||
|   local hostaddress = (host.name ~= '' and host.name) or host.ip |   local hostaddress = (host.name ~= '' and host.name) or host.ip | ||||||
|   local path = "/" |   local path = "/" | ||||||
|   local uri |  | ||||||
|   local favicon_relative_uri = "/favicon.ico" |   local favicon_relative_uri = "/favicon.ico" | ||||||
|   local favicon |   local favicon | ||||||
|  |  | ||||||
|  |   stdnse.debug1("port", port.service) | ||||||
|   if (port.service == "ssl") then |   if (port.service == "ssl") then | ||||||
|     scheme = "https" |     scheme = "https" | ||||||
|   else |   else | ||||||
|     scheme = port.service |     scheme = port.service | ||||||
|   end |   end | ||||||
|  |   stdnse.debug1("scheme", scheme) | ||||||
|  |  | ||||||
|   if(stdnse.get_script_args('http-get.path')) then |   if(stdnse.get_script_args('http-get.path')) then | ||||||
|     path = stdnse.get_script_args('http-info.path') |     path = stdnse.get_script_args('http-info.path') | ||||||
|   end |   end | ||||||
|  |  | ||||||
|   uri = scheme.."://"..hostaddress..":"..port.number..path |   stdnse.debug1("Try to download %s", path) | ||||||
|   stdnse.debug1("Try to download %s", uri) |   local answer = http.get(hostaddress, port, path) | ||||||
|   local answer = http.get_url(uri, {}) |  | ||||||
|  |  | ||||||
|   local output = {status=answer.status, ["status-line"]=answer["status-line"]} |   local output = {status=answer.status, ["status-line"]=answer["status-line"]} | ||||||
|  |  | ||||||
|   if (answer and answer.status == 200) then |   if (answer and answer.status == 200) then | ||||||
|     stdnse.debug1("[SUCCESS] Load page %s", uri) |     stdnse.debug1("[SUCCESS] Load page %s", path) | ||||||
|     -- Taken from http-title.nse by Diman Todorov |     -- Taken from http-title.nse by Diman Todorov | ||||||
|     local title = string.match(answer.body, "<[Tt][Ii][Tt][Ll][Ee][^>]*>([^<]*)</[Tt][Ii][Tt][Ll][Ee]>") |     local title = string.match(answer.body, "<[Tt][Ii][Tt][Ll][Ee][^>]*>([^<]*)</[Tt][Ii][Tt][Ll][Ee]>") | ||||||
|     if (title) then |     if (title) then | ||||||
| @ -62,17 +62,16 @@ action = function(host, port) | |||||||
|     stdnse.debug1("[INFO] Try favicon %s", favicon_relative_uri) |     stdnse.debug1("[INFO] Try favicon %s", favicon_relative_uri) | ||||||
|     favicon_relative_uri = parseIcon(answer.body) or favicon_relative_uri |     favicon_relative_uri = parseIcon(answer.body) or favicon_relative_uri | ||||||
|   else |   else | ||||||
|     stdnse.debug1("[ERROR] Can't load page %s", uri) |     stdnse.debug1("[ERROR] Can't load page %s", path) | ||||||
|   end |   end | ||||||
|    |    | ||||||
|   favicon_absolute_uri = scheme.."://"..hostaddress..":"..port.number..favicon_relative_uri |   favicon = http.get(hostaddress, port, favicon_relative_uri) | ||||||
|   favicon = http.get_url(favicon_absolute_uri, {}) |  | ||||||
|  |  | ||||||
|   if (favicon and favicon.status == 200) then |   if (favicon and favicon.status == 200) then | ||||||
|     stdnse.debug1("[SUCCESS] Load favicon %s", favicon_absolute_uri) |     stdnse.debug1("[SUCCESS] Load favicon %s", favicon_relative_uri) | ||||||
|     output.favicon = favicon_absolute_uri |     output.favicon = favicon_relative_uri | ||||||
|   else |   else | ||||||
|     stdnse.debug1("[ERROR] Can't load favicon %s", favicon_absolute_uri) |     stdnse.debug1("[ERROR] Can't load favicon %s", favicon_relative_uri) | ||||||
|   end |   end | ||||||
|    |    | ||||||
|   return output |   return output | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user