日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

利用python分析access日志的方法

系統(tǒng) 1945 0

前言

WAF上線之后,處理最多的是誤報消除。

產(chǎn)生誤報有多種原因,比如web應(yīng)用源碼編寫時允許客戶端提交過多的cookie;比如單個參數(shù)提交的數(shù)值太大。

把誤報降低到了可接受的范圍后,還要關(guān)注漏報。WAF不是神,任何WAF都可能被繞過。所以還需要定位漏過的攻擊,明確漏報的原因,才能update WAF的策略。

要定位漏報,就必須分析Web應(yīng)用的訪問日志了。一個站點,每天產(chǎn)生的access日志大概接近1GB,顯然靠肉眼看是不現(xiàn)實的。這就需要用python幫助自動分析。

實現(xiàn)思路

拿我司某Web系統(tǒng)舉例:

???? apache開啟了access日志記錄

???? 日志規(guī)則是每小時生成一個日志文件,以站點名稱為文件名,以日期+時間為后綴。例如: special.XXXXXX.com.cn.2016101001

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

???? 1、根據(jù)用戶命令行輸入獲取日志文件所在目錄;

???? 2、遍歷目錄下所有文件,合并到一個文件;

???? 3、定義web攻擊常見payload的字符串:

????????? SQLi的:select、union、+?C+;

????????? Struts的:ognl、java

????????? webshell常見的:base64、eval、excute

使用正則逐行匹配,將命中的日志復制到單獨的文件。

實現(xiàn)代碼

代碼如下:

            
# -*-coding: utf-8 -*-
import os,re,sys
if len(sys.argv) != 2 :
  print 'Usage : python logaudit.py 
            
              '
  sys.exit()
logpath = sys.argv[1]
#獲取輸入?yún)?shù)的文件路徑'
merge = re.compile(r'.*(\d[10])')
for root , dirs , files in os.walk(logpath):
  for line in files:
    #遍歷日志文件夾,合并所有內(nèi)容到一個文件
    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()
            
          

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 兴隆县| 深泽县| 曲松县| 民县| 娱乐| 新绛县| 方正县| 罗平县| 隆昌县| 会东县| 玉山县| 杨浦区| 斗六市| 儋州市| 奉化市| 定兴县| 丘北县| 青阳县| 江达县| 汝南县| 陵水| 宁化县| 霞浦县| 简阳市| 明水县| 长宁县| 同德县| 和政县| 和平区| 禹城市| 绵竹市| 崇文区| 西乌珠穆沁旗| 全州县| 定西市| 涿鹿县| 冕宁县| 奉贤区| 会理县| 河南省| 东乡族自治县|