久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      采用詞法分析提取域名和IP

      采用詞法分析提取域名和IP

      背景

      在分析日志的時候發(fā)現(xiàn)有些日志中參數(shù)中包含其他的URL,例如:

      采用詞法分析提取域名和IP

      提取請求參數(shù)中的URL(xss.ha.ckers.org),再對比威脅情報數(shù)據(jù)庫,如果命中黑名單直接標(biāo)黑。如果不在黑名單,也不在公司的白名單里可以先做個標(biāo)記,后續(xù)著重分析。

      提取URL

      關(guān)于URL的提取網(wǎng)上有很多文章,大部分都是是使用正則表達(dá)式,方法簡單但是不太準(zhǔn)確。我這里提供一種方法:采用詞法分析,提取域名和IP。思路借鑒了這篇文章:https://blog.csdn.net/breaksoftware/article/details/7009209,有興趣的可以去看看,事實證明跟著大神確實漲姿勢。

      原文是用C++版本,這里我用Python寫了一個類似的,供大家參考。

      常見的URL分類

      采用詞法分析提取域名和IP

      觀察可以見得:IP形式的URL結(jié)構(gòu)最為簡單:4個小于255的數(shù)字被.分割;domain形式比較復(fù)雜,但是它們有共性:都具有頂級域名.com。

      定義合法字符:

      采用詞法分析提取域名和IP

      頂級域名列表:

      采用詞法分析提取域名和IP

      域名形式提取:如www.baidu.com。

      采用詞法分析提取域名和IP

      采用詞法分析提取域名和IP

      IP形式提取:如192.168.1.1。

      采用詞法分析提取域名和IP

      while (i < len(z) and z[i].isdigit()):                 i = i + 1                 ip_v1 = True                 reti = i            if i < len(z) and z[i] == '.':                 i = i + 1                 reti = i            else:                 tokenType = TK_OTHER                 reti = 1while (i < len(z) and z[i].isdigit()):                 i = i + 1                 ip_v2 = True             if i < len(z) and z[i] == '.':                 i = i + 1             else:                if tokenType != TK_DOMAIN:                     tokenType = TK_OTHER                     reti = 1while (i < len(z) and z[i].isdigit()):                 i = i + 1                 ip_v3 = True             if i < len(z) and z[i] == '.':                 i = i + 1             else:                if tokenType != TK_DOMAIN:                     tokenType = TK_OTHER                     reti = 1while (i < len(z) and z[i].isdigit()):                 i = i + 1                 ip_v4 = True              if i < len(z) and z[i] == ':':                 i = i + 1             while (i < len(z) and z[i].isdigit()):                 i = i + 1              if ip_v1 and ip_v2 and ip_v3 and ip_v4:                                 self.urls.append(z[0:i])                                 return reti, tokenType                         else:                                 if tokenType != TK_DOMAIN:                     tokenType = TK_OTHER                     reti = 1

      混合形式提?。喝?234.com。
      掃描前半部分1234,符合IP形式的特征,但是發(fā)現(xiàn)代碼會報異常,所以需要IP處理代碼段添加判斷:判斷后綴是否是頂級域名:

      采用詞法分析提取域名和IP

      結(jié)果測試

      測試數(shù)據(jù):

      采用詞法分析提取域名和IP

      運(yùn)行結(jié)果:

      采用詞法分析提取域名和IP

      這只是個初步的版本,如果有BUG歡迎大家指正。

      結(jié)束語

      以前只顧著悶著頭的寫代碼,忽略了事后的思考和總結(jié)?,F(xiàn)在嘗試著改變一下,一邊工作,一邊提煉和總結(jié),遇到感覺不錯的,嘗試寫成工具開源出來,與大家共勉。

      代碼傳送門:

      https://github.com/skskevin/UrlDetect/blob/master/tool/domainExtract/domainExtract.py

      相關(guān)文章教程推薦:web服務(wù)器安全

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號