机器学习分析Web攻击请求之XSS

作者: xi4okv | 来源:发表于2017-12-19 16:46 被阅读136次
# coding: utf-8
import re
import urllib
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
from sklearn.feature_extraction.text import TfidfVectorizer

def train():
    goodCaseFile = 'goodcase.csv'
    badCaseFile = 'xss.csv'
    fgood = open(goodCaseFile)
    fbad = open(badCaseFile)

    goodCase = []
    for case in fgood.readlines():
        query = urllib.parse.unquote(case)
        goodCase.append(query)

    badCase = []
    for case in fbad.readlines():
        query = urllib.parse.unquote(case)
        badCase.append(query)

    fgood.close()
    fbad.close()

    goodY = [0 for i in range(0,len(goodCase))]
    badY = [1 for i in range(0,len(badCase))]

    queries = goodCase + badCase
    Y = goodY + badY

    regex = re.compile(r"\w+\W")
    tok = lambda x: regex.findall(x)

    vectorizer = TfidfVectorizer(tokenizer=tok)
    X = vectorizer.fit_transform(queries)
    X_train, X_test, Y_train, Y_test = train_test_split(X, Y)
    
    log_reg = LogisticRegression()
    
    log_reg.fit(X_train, Y_train)
    #test
    query = ["<img onerror=alert(1)>","dddaaa","<script src=\"http://t.c\">"]
    test = vectorizer.transform(query)
    result = log_reg.predict(test)
    print (result)

if __name__ == '__main__':
    train()

结果:
[root@kali xiaokui]# python3 check.py
[1 0 1]

关键点:

使用正则处理所有请求。
regex = re.compile(r"\w+\W")
tok = lambda x: regex.findall(x)

本打算把正样本"<img onerror=alert(1)>" 处理为 "['<', 'img, 'onerror', '=', 'alert', '(', '1', ')', '>']" ,但是觉得这样处理不合适,机器学习的维度不是越多越好,而是越精简越有效才更好。
所以处理成['onerror=', 'alert(', '1)'] 这样的。然后使用逻辑回归进行训练。

相关文章

  • 机器学习分析Web攻击请求之XSS

    结果:[root@kali xiaokui]# python3 check.py[1 0 1] 关键点: 使用正则...

  • xss攻击

    前端安全之XSS攻击 XSS(cross-site scripting跨域脚本攻击)攻击是最常见的Web攻击,其重...

  • XSS攻击与防御

    Web安全之XSS攻防 1. XSS的定义 跨站脚本攻击(Cross Site Scripting),缩写为XSS...

  • Web安全之XSS攻防

    Web安全之XSS攻防 1. XSS的定义 跨站脚本攻击(Cross Site Scripting),缩写为XSS...

  • Web安全之XSS攻击与防御小结

    Web安全之XSS攻防 1. XSS的定义 跨站脚本攻击(Cross Site Scripting),缩写为XSS...

  • XSS攻击

    XSS攻击定义 XSS Cross Site Scripting 跨站脚本攻击 XSS攻击原理 它允许恶意web用...

  • 理解XSS攻击的原理及防范措施

    web安全-xss的原理及防御 理解XSS的攻击原理和手段 反射型:发出请求时,XSS代码出现在URL中,作为输入...

  • XSS攻击简单实例

    XSS为目前web常见攻击手段之一,不了解的同学可以看我的上一篇文章《常见WEB攻击之XSS攻击》 下面我演示一个...

  • XSS CSRF

    XSS攻击 什么是XSS攻击 XSS又称CSS,全称Cross SiteScript,跨站脚本攻击,是Web程序中...

  • 你应该知道的那些Web攻击技术

    XSS攻击 那 XSS 是什么呢?一言蔽之,XSS 就是攻击者在 Web 页面中插入恶意脚本,当用户浏览页面时,促...

网友评论

    本文标题:机器学习分析Web攻击请求之XSS

    本文链接:https://www.haomeiwen.com/subject/rmwvixtx.html