利用python分析access日志的方法


Posted in Javascript onOctober 26, 2016

前言

WAF上线之后,处理最多的是误报消除。

产生误报有多种原因,比如web应用源码编写时允许客户端提交过多的cookie;比如单个参数提交的数值太大。

把误报降低到了可接受的范围后,还要关注漏报。WAF不是神,任何WAF都可能被绕过。所以还需要定位漏过的攻击,明确漏报的原因,才能update WAF的策略。

要定位漏报,就必须分析Web应用的访问日志了。一个站点,每天产生的access日志大概接近1GB,显然靠肉眼看是不现实的。这就需要用python帮助自动分析。

实现思路

拿我司某Web系统举例:

     apache开启了access日志记录

     日志规则是每小时生成一个日志文件,以站点名称为文件名,以日期+时间为后缀。例如:special.XXXXXX.com.cn.2016101001

要分析这些散碎的日志文件,我的思路如下:

     1、根据用户命令行输入获取日志文件所在目录;

     2、遍历目录下所有文件,合并到一个文件;

     3、定义web攻击常见payload的字符串:

          SQLi的:select、union、+?+;

          Struts的:ognl、java

          webshell常见的:base64、eval、excute

使用正则逐行匹配,将命中的日志复制到单独的文件。

实现代码

代码如下:

# -*-coding: utf-8 -*-
import os,re,sys
if len(sys.argv) != 2 :
  print 'Usage : python logaudit.py <path>'
  sys.exit()
logpath = sys.argv[1]
#获取输入参数的文件路径'
merge = re.compile(r'.*(\d[10])')
for root , dirs , files in os.walk(logpath):
  for line in files:
    #遍历日志文件夹,合并所有内容到一个文件
    pipei = merge.match(line)
    if pipei != None:
      tmppath = root + '\\' +line
      logread1 = open(tmppath,'r')
      logread = logread1.read()
      log2txt = open('.\\log.txt','a')
      log2txt.write(logread)
      log2txt.close()
      logread1.close()
    else:
      exit
log = open('.//log.txt','r')
logread = log.readlines()
auditString = re.compile(r'.*[^_][sS][eE][lL][eE][cC][tT][^.].*|.*[uU][nN][iI][Oo][nN].*|.*[bB][aA][sS][eE][^.].*|.*[oO][gG][nN][lL].*|.*[eE][vV][aA][lL][(].*|.*[eE][xX][cC][uU][tT][eE].*')
writelog = open('.//result.txt','a')
for lines in logread:
  auditResult = auditString.match(lines)
  if auditResult != None:
    writelog.write(auditResult.group())
    writelog.write('\n')
  else:
    exit
writelog.close()
log.close()

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

Javascript 相关文章推荐
Jquery中国地图热点效果-鼠标经过弹出提示层信息的简单实例
Feb 12 Javascript
JS小游戏之宇宙战机源码详解
Sep 25 Javascript
js打造数组转json函数
Jan 14 Javascript
JavaScript使用位运算符判断奇数和偶数的方法
Jun 01 Javascript
对JavaScript的全文搜索实现相关度评分的功能的方法
Jun 24 Javascript
初步使用Node连接Mysql数据库
Mar 03 Javascript
详细分析Javascript中创建对象的四种方式
Aug 17 Javascript
使用PBFunc在Powerbuilder中支付宝当面付款功能
Oct 01 Javascript
webpack4之SplitChunksPlugin使用指南
Jun 12 Javascript
JavaScript基于遍历操作实现对象深拷贝功能示例
Mar 05 Javascript
原生JS与CSS实现软件卸载对话框功能
Dec 05 Javascript
vue 组件简介
Jul 31 Javascript
浅谈jQuery绑定事件会叠加的解决方法和心得总结
Oct 26 #Javascript
关于Jquery中的事件绑定总结
Oct 26 #Javascript
IE8利用自带的setCapture和releaseCapture解决iframe的拖拽事件方法
Oct 25 #Javascript
理解JavaScript原型链
Oct 25 #Javascript
Ztree新增角色和编辑角色回显问题的解决
Oct 25 #Javascript
jQuery+json实现动态创建复杂表格table的方法
Oct 25 #Javascript
jQuery实现的小图列表,大图展示效果幻灯片示例
Oct 25 #Javascript
You might like
PHP URL路由类实例
2013/11/12 PHP
php+mysql大量用户登录解决方案分析
2014/12/29 PHP
PHP针对JSON操作实例分析
2015/01/12 PHP
Zend Framework教程之分发器Zend_Controller_Dispatcher用法详解
2016/03/07 PHP
php中array_unshift()修改数组key注意事项分析
2016/05/16 PHP
setInterval()和setTimeout()的用法和区别示例介绍
2013/11/17 Javascript
兼容所有浏览器的js复制插件Zero使用介绍
2014/03/19 Javascript
Javascript基础教程之变量
2015/01/18 Javascript
JavaScript如何禁止Backspace键
2015/12/02 Javascript
JavaScript如何实现对数字保留两位小数一位自动补零
2015/12/18 Javascript
JS实现的自定义水平滚动字体插件完整实例
2016/06/17 Javascript
基于BootStrap与jQuery.validate实现表单提交校验功能
2016/12/22 Javascript
详解如何使用Vue2做服务端渲染
2017/03/29 Javascript
解决OneThink中无法异步提交kindeditor文本框中修改后的内容方法
2017/05/05 Javascript
JS实现留言板功能
2017/06/17 Javascript
用React实现一个完整的TodoList的示例代码
2017/10/30 Javascript
原生js实现省市区三级联动代码分享
2018/02/12 Javascript
详解JavaScript的变量
2019/04/04 Javascript
JavaScript计算出两个数的差值
2020/03/19 Javascript
Node使用koa2实现一个简单JWT鉴权的方法
2021/01/26 Javascript
Python实现的生成自我描述脚本分享(很有意思的程序)
2014/07/18 Python
python中的内置函数getattr()介绍及示例
2014/07/20 Python
Python实现竖排打印传单手机号码易撕条
2015/03/16 Python
Python实现图片转字符画的示例代码
2017/08/21 Python
Python3结合Dlib实现人脸识别和剪切
2018/01/24 Python
78行Python代码实现现微信撤回消息功能
2018/07/26 Python
浅谈Python3识别判断图片主要颜色并和颜色库进行对比的方法
2019/10/25 Python
.dcm格式文件软件读取及python处理详解
2020/01/16 Python
html5画布旋转效果示例
2014/01/27 HTML / CSS
利用三角函数在canvas上画虚线的方法
2018/01/11 HTML / CSS
canvas 下载二维码和图片加水印的方法
2018/03/21 HTML / CSS
小学生演讲稿
2014/01/12 职场文书
电子商务专业自荐信
2014/06/02 职场文书
体育课外活动总结
2014/07/08 职场文书
2014年财政局工作总结
2014/12/09 职场文书
小学班主任工作总结2015
2015/04/07 职场文书