采用词法分析提取域名和IP
背景
在分析日志的时候发现有些日志中参数中包含其他的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 < 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
混合形式提取:如1234.com。
扫描前半部分1234,符合IP形式的特征,但是发现代码会报异常,所以需要IP处理代码段添加判断:判断后缀是否是顶级域名:
结果测试
测试数据:
运行结果:
这只是个初步的版本,如果有BUG欢迎大家指正。
结束语
以前只顾着闷着头的写代码,忽略了事后的思考和总结。现在尝试着改变一下,一边工作,一边提炼和总结,遇到感觉不错的,尝试写成工具开源出来,与大家共勉。
代码传送门:
https://github.com/skskevin/UrlDetect/blob/master/tool/domainExtract/domainExtract.py
相关文章教程推荐:web服务器安全
Atas ialah kandungan terperinci 采用词法分析提取域名和IP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

1. Senarai hitam/putih IP konfigurasi capaian terhad nginx Terdapat beberapa cara untuk mengkonfigurasi senarai hitam dan putih Di sini hanya dua kaedah yang biasa digunakan. 1. Kaedah pertama: membenarkan, menafikan dan membenarkan arahan milik ngx_http_access_module nginx memuatkan modul ini secara lalai, supaya ia boleh digunakan secara langsung. Kaedah ini adalah yang paling mudah dan paling langsung. Tetapan adalah serupa dengan firewall iptable Cara menggunakan: Tambahkan terus pada fail konfigurasi: #Whitelist settings, diikuti dengan allow is accessible IPlocation/{allow123.13.123.12;allow23.53.32.1/100;denyall;}# Tetapan senarai hitam,

Pengikatan IP dan mac merujuk kepada mengaitkan alamat IP tertentu dengan alamat MAC tertentu, supaya hanya peranti yang menggunakan alamat MAC boleh menggunakan alamat IP untuk komunikasi rangkaian. Mengikat ip dan mac boleh menghalang alamat IP hos terikat daripada dipalsukan. Gerbang hos berada pada penghala).

Dalam suite protokol TCP/IP, Sistem Nama Domain ialah salah satu protokol yang menyediakan perkhidmatan resolusi nama untuk memetakan nama komputer ke alamat IP. Walau bagaimanapun, kadangkala ia tidak berfungsi, mengakibatkan ralat seperti Kawalan yang diminta tidak sah untuk perkhidmatan ini NETHELPMSG2191. Pelanggan dan pelayan DNS bekerjasama untuk menyediakan nama komputer kepada perkhidmatan resolusi nama pemetaan alamat IP untuk komputer dan pengguna. Selepas memasang Windows, versi klien dan pelayan sistem pengendalian mempunyai perkhidmatan klien didayakan secara lalai. Sebaik sahaja anda menentukan alamat IP pelayan dalam konfigurasi rangkaian TCP/IP anda, klien DNS menanyakan pelayan untuk menemui pengawal domain dan menyelesaikan nama komputer kepada alamat IP. hanya dalam perkhidmatan

1. Tetapkan senarai putih direktori: Tiada sekatan pada laluan permintaan yang ditentukan Jika tiada sekatan pada laluan permintaan ke direktori api, ia boleh ditulis sebagai pelayan{location/app{proxy_passhttp://192.168.1.111: 8095/app ;limit_connconn20;limit_rate500k;limit_reqzone=fooburst=5nodelay;}location/app/api{proxy_passhttp://192.168.1.111:8095/app/api}}#Kerana nginx akan memberi keutamaan kepada pemadanan yang tepat

Cara menyemak alamat IP pada WeChat: 1. Log masuk ke versi komputer WeChat, klik kanan bar tugas di bahagian bawah skrin, dan klik "Pengurus Tugas" 2. Apabila pengurus tugas muncul, klik "; Butiran" di sudut kiri bawah; 3. Pengurusan tugas Masukkan pilihan "Prestasi" pelayar dan klik "Open Resource Monitor"; 4. Pilih "Rangkaian" dan semak proses WeChat "Wechat.exe"; 5. Klik " Sambungan TCP" di bawah untuk memantau situasi berkaitan IP rangkaian WeChat. Menghantar mesej dan mendapatkan balasan akan mendedahkan alamat IP orang lain.

Banyak kali, fail yang sangat besar sukar untuk dikongsi antara peranti, terutamanya telefon pintar dan seumpamanya. Oleh itu, fail ini mula-mula diarkibkan/dimampatkan ke dalam fail RAR dan kemudian dihantar ke peranti lain untuk dikongsi. Tetapi masalahnya ialah fail RAR tidak mudah untuk diekstrak pada iPhone. Untuk mengekstrak fail zip, ia hanya memerlukan satu ketikan. Tidak ramai yang tahu proses mengekstrak fail RAR pada iPhone, dan untuk pemula, langkah-langkahnya boleh mengelirukan. Ini boleh dilakukan menggunakan aplikasi lalai pada iPhone anda yang dipanggil Pintasan. Di sini kami menerangkan langkah demi langkah cara mengekstrak sebarang fail RAR pada iPhone menggunakan aplikasi Pintasan. Cara Mengekstrak Fail RAR pada iPhone Langkah 1: Pertama, anda

Konsep: uv (uniquevisitor): pelawat unik, setiap komputer Internet bebas (berdasarkan kuki) dianggap sebagai pelawat, dan bilangan pelawat yang melawat tapak web anda dalam masa sehari (00:00-24:00). Lawatan ke kuki yang sama dalam sehari hanya dikira sekali PV (pandangan halaman): lawatan, iaitu, paparan halaman atau klik, setiap lawatan ke tapak web oleh pengguna direkodkan sekali. Apabila pengguna melawat halaman yang sama beberapa kali, jumlah lawatan dikira IP Bebas: Alamat IP yang sama hanya dikira sekali dalam 00:00-24:00 Rakan yang melakukan pengoptimuman tapak web adalah yang paling mengambil berat tentang perkara ini saya mula-mula nyatakan persekitaran ini menjalankan nginx versi 1.7, tomcat bahagian belakang berjalan dinamik

Penyelesaian kepada wifi yang tidak menunjukkan peruntukan IP: 1. Mulakan semula peranti dan penghala, matikan sambungan Wi-Fi pada peranti, matikan peranti, matikan penghala, tunggu beberapa minit, kemudian buka semula penghala untuk menyambung ke wifi ; 2. Semak tetapan penghala dan mulakan semula DHCP, pastikan fungsi DHCP didayakan; 3. Tetapkan semula tetapan rangkaian, yang akan memadamkan semua rangkaian WiFi dan kata laluan yang disimpan perisian tegar penghala, log masuk ke antara muka pengurusan penghala, dan cari pilihan Kemas kini perisian tegar dan ikut gesaan.
