我的日志剖析之道:简略的Web日志剖析脚本

访客5年前关于黑客接单1285

长话短说,作业的原因是这样的,因为作业原因需求剖析网站日志,服务器是windows,iis日志,在网上找了找,github找了找,竟然没找到,看来只要自己着手锦衣玉食。
那么剖析办法我大致可分为三种:
1. 依据时刻:将恳求url按时刻段分类,那么咱们依据每个时刻段的url数量及进犯数量就能够大致判别出哪个时刻段有apt类型进犯,哪个时刻段是扫描器行为;
2. 依据进犯ip:正常的进犯必定会有恳求被记载(当然你要是有0day当我没说,正常的勘探总会有吧=。=!),然后每个ip去剖析;
3. 依据拜访恳求的状况码,也大致能够判别出行为。
规矩能够依据开源waf规矩,剖析扫描器写正则也能够,开源waf地址是
https://github.com/loveshell/ngx_lua_waf/tree/master/wafconf。
扫描器正则https://github.com/ *** arttang/w3a_SOCD的database里边有具体地址
https://github.com/ *** arttang/w3a_SOC/tree/master/db_sql。
Sql句子里边有想把它做的功用全一些,可是学python学习时刻也不是很长,写出来的代码也没有pythonic,会渐渐写的。现在分三个模块,一个日志归类模块命名为url.py,进犯剖析模块attac.py, ip地理位置查询模块ipfind.py,还有一个主函数。
日志归类模块url.py
import reimport osimport sysfrom datetime import datetime
dt = datetime.now()
date = str(dt.date())
loglist = []   #   iplist = []    #   ip计算urllist = []   #    url计算列表needlist = []   #    需求计算的errorlist = []   #    格局过错的列表ipdict,urldict = {},{} 
rizhi = str(input('请输入要剖析的日志文件名'))def find_log():
    print('>>>>>>>开端解析日志')
    with open(rizhi,'r',encoding='UTF-8',errors='ignore') as f:
        #loglist = f.readlines()
        for i in f.readlines():   #
            if i[0] != '#':
                b = re.split(' ',i)
                iplist.append(b[10])
                urllist.append(b[6])
                try:
                    needlist.append([b[10],b[1],b[5],b[6],b[15]])
                except:
                    errorlist.append(i)
    print('>>>>>>>日志解析结束')def count(iplist,urllist):    #计算ip url拜访量函数
    print('>>>>>>>开端剖析url与ip拜访量')
    global ipdict,urldict
    for i in set(iplist):
        ipdict[i] = iplist.count(i)
    for i in set(urllist):
        urldict[i] = urllist.count(i)
    ipdict = sorted(ipdict.items(),key=lambda d: d[1], reverse=True)   
    urldict = sorted(urldict.items(),key=lambda d: d[1], reverse=True)
    print(type(urldict))
    iplist = list(ipdict)
    urllist = list(urldict)
    ipdict,urldict = {},{}
    print('>>>>>url与ip剖析结束.......')
    return [iplist,urllist]def save_count():
    print('>>>>>>>正在保存剖析成果')
    ipname = 'ip-'+date+'.txt'
    urlname = 'url-'+date+'.txt'
    with open(ipname,'w') as f:
        for i in iplist:
            f.write(str(list(i))+'n')
    with open(urlname,'w') as f:
        for i in urllist:
            f.write(str(list(i))+'n')
    print('>>>>>>>剖析成果保存结束')
find_log()
[iplist,urllist] = count(iplist,urllist)
save_count()
iis日志和apache日志觉得都差不多,便是切开时分改一下就行了。

Iis日志大概是这样的,用pythonreadlines然后切开出来就好了。
这个url.py我加了个功用把ip拜访量及url拜访量排序输出出来所以有点慢,=.=没办法野路子哪里会什么算法。将地址,时刻,ip,状况码都扔进一个列表里就行了。

[1] [2] [3]  黑客接单网

相关文章

OWASP TOP 10之怎么防护CSRF进犯

0x00 什么是CSRF CSRF(Cross-site request forgery跨站恳求假造,也被称为“One Click Attack”或许Session Riding,一般缩写为CSR...

运用HTML注入进行信息走漏

本篇文章叙述了我怎么发现一个缝隙运用点,而且能够bypass现有安全机制,使我取得5位数赏金。 一个古怪的HTML注入事例 AndréBaptista和Cache-Money正在研讨一个十分风趣的缝隙...

为什么干流网站无法捕获 XSS 缝隙?

 二十多年来,跨站脚本(简称 XSS)缝隙一直是干流网站的心头之痛。为什么过了这么久,这些网站仍是对此类缝隙束手无策呢? 关于最近 eBay 网站曝出的跨站脚本缝隙,你有什么主意?为什么会呈现这样的漏...

记载一次使用事务规划缺点缝隙的精彩实战测验

前语 前次的那篇文章《一名代码审计新手的实战阅历与感悟》得到了不少读者的支撑,也得到了FreeBuf这个渠道的必定,这给了我这个菜的不能再菜的小菜鸟很大的决心。可是,不足之处仍是许多,比方文章中呈现的...

如何在AIX和Power架构上运行Metasploit Framework-黑客接单平台

本文将向咱们介绍如安在AIX和Power架构上运转Metasploit结构,这关于那些想要测验在这些架构上运转Metasploit的人可能会有所协助(至少现在我还没有在网上发现关于这方面的教程内容)。...

根据Session的身份盗取

一、Session是什么 暗码与证书等认证手法,一般用于登录进程。用户登录之后,服务器通常会树立一个新的Session保存用户的状况和相关信息,用以盯梢用户的状况。每个Session对应一个标识符Se...