背景
在分析日志的時候發現有些日志中參數中包含其他的URL,例如:
提取請求參數中的URL(xss.ha.ckers.org),再對比威脅情報數據庫,如果命中黑名單直接標黑。如果不在黑名單,也不在公司的白名單里可以先做個標記,后續著重分析。
提取URL
關于URL的提取網上有很多文章,大部分都是是使用正則表達式,方法簡單但是不太準確。我這里提供一種方法:采用詞法分析,提取域名和IP。思路借鑒了這篇文章:https://blog.csdn.net/breaksoftware/article/details/7009209,有興趣的可以去看看,事實證明跟著大神確實漲姿勢。
原文是用C++版本,這里我用python寫了一個類似的,供大家參考。
常見的URL分類
觀察可以見得:IP形式的URL結構最為簡單:4個小于255的數字被.分割;domain形式比較復雜,但是它們有共性:都具有頂級域名.com。
定義合法字符:
頂級域名列表:
域名形式提取:如www.baidu.com。
IP形式提取:如192.168.1.1。
while?(i?<p>混合形式提取:如1234.com。<br>掃描前半部分1234,符合IP形式的特征,但是發現代碼會報異常,所以需要IP處理代碼段添加判斷:判斷后綴是否是頂級域名:</p><p><img src="https://img.php.cn/upload/image/354/879/774/1577246293816213.png" title="1577246293816213.png" alt="0344cd5e302d2497f4bb5bf6063c760.png"></p><p style="max-width:90%">結果測試</p><p>測試數據:</p><p><img src="https://img.php.cn/upload/image/971/287/440/1577246309478694.png" title="1577246309478694.png" alt="03ae44d8ab2c65074724a79eadbd999.png"></p><p>運行結果:</p><p><img src="https://img.php.cn/upload/image/795/611/773/1577246337103718.png" title="1577246337103718.png" alt="577b7721a4faf9a46454455b9e8b43c.png"></p><p>這只是個初步的版本,如果有bug歡迎大家指正。</p><p style="max-width:90%">結束語</p><p>以前只顧著悶著頭的寫代碼,忽略了事后的思考和總結。現在嘗試著改變一下,一邊工作,一邊提煉和總結,遇到感覺不錯的,嘗試寫成工具開源出來,與大家共勉。</p><p>代碼傳送門:</p><p><a href="https://blog.csdn.net/breaksoftware/article/details/7009209" target="_blank">https://blog.csdn.net/breaksoftware/article/details/7009209</a><br></p><p>相關文章教程推薦:<a href="https://blog.csdn.net/breaksoftware/article/details/7009209" target="_blank">https://blog.csdn.net/breaksoftware/article/details/7009209</a></p>
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END