2017-01-13 54 views
0

試圖在Robtex數據庫來掃描使用nmap:NMAP使用哪種類型的正則表達式?

nmap --script http-robtex-reverse-ip <target> 

但由於Robtex已經更新了他的網站,nmap的腳本不能正常工作了。

新Robtex HTML結構是這樣的:

<div class="xsha"> 
     <div> 
      <div> 
       <h3> 
        <span id="sharedn.b446331/_ma">Pointing to this IP number</span> 
       </h3> 
      </div> 
      <ol class="xbul"> 
       <li>domain1</li> 
<li>domain2</li> 
<li>domain3</li> 
<li>domain...</li> 
      </ol> 
     </div> 
    </div> 

我已經改變了我的Nmap腳本,但它不能正常工作。

function parse_robtex_response(data) 
    local data = data:match("<span id=\"sharedn\">.-<ol.->(.-)</ol>") 
    local result = {} 
    if data then 
    for domain in data:gmatch("<li[^>]*>(.-)</li>") do 
     domain = domain:gsub("<[^>]+>","") 
     table.insert(result, domain) 
    end 
    end 
    return result 
end 

prerule = function() return stdnse.get_script_args("http-robtex-reverse-ip.host") ~= nil end 

action = function(host, port) 

    local target = stdnse.get_script_args("http-robtex-reverse-ip.host") 
    local ip = ipOps.ip_to_str(target) 
    if (not(ip) or #ip ~= 4) then 
    return stdnse.format_output(false, "The argument \"http-robtex-reverse-ip.host\" did not contain a valid IPv4 address") 
    end 

    local link = "/ip-lookup/"..target.."" 
    local htmldata = http.get("www.robtex.com", 443, link, {any_af=true}) 
    local domains = parse_robtex_response(htmldata.body) 
    if (#domains > 0) then 
    return stdnse.format_output(true, domains) 
    end 
end 

如何解決此問題?

+0

「它不工作」很含糊...... – twalberg

+0

不獲取域名 –

+1

這個「正則表達式」看起來像不是正則表達式的Lua模式。嘗試用'替換'local data'模式.- (.-)'pattern。但是,現在'li'標籤中沒有文本。 –

回答

2

下次我們改變網頁時,這可能會再次中斷。而不是刮我們的網站,最好是使用相當新的免費API(https://www.robtex.com/api/)。 這是更安全,更快,更容易解析。

相關問題