根据卷积神经 *** 的SQL注入检测

访客6年前关于黑客接单597

一、前语
本文结合自然语言处理技能,选用卷积神经 *** 算法练习SQL注入检测模型,首要包含文本处理、提取文本向量和练习检测模型三个部分。因为自己是初学者,也是通过长辈们的文章来学习这方面的常识,许多当地或许了解不行充沛,请我们及时纠正。
二、练习数据
试验进程中的数据集首要分为三组练习集(用于练习检测模型的数据)、验证集(练习进程中验证模型的准确率)、测验集(测验练习完成后模型的准确率)。
练习会集正常样本24500条,SQL注入进犯样本25527条,XSS进犯样本25112条;验证会集正常样本10000条,SQL注入进犯样本10000条,XSS进犯样本10000条;测验中正常样本4000条,SQL注入进犯样本4000条,XSS进犯样本4000条。
正常样本数据格式如下:
code%3Dzs_000001%2Czs_399001%2Czs_399006%26cb%3Dfortune_hq_cn%26_%3D1498591852632
SQL注入样本数据格式如下:
-9500%22%20WHERE%206669%3D6669%20OR%20NOT%20%284237%3D6337%29
XSS注入样本数据格式如下:
site_id%3Dmedicare%22%3E%3Cscript%3Ealert%281337%29%3C/script%3E%2Casdf
三、文本处理
练习进程中运用的数据根本都通过了URL编码,有的或许通过过了多重编码,因而需进行URL循环解码,而且为了削减数字和其他无关要素对数据样本的影响对数据进行范化处理,将数字替换为0,超链接替换为http://u。代码如下:
def URLDECODE(payload):
    payload=payload.lower()
    while True:
        test=payload
        payload=unquote(payload)
        if test==payload:
            break
        else:
            continue
    #数字泛化为"0"
    payload,num=re.subn(r'd+',"0",payload)
    #替换url为”http://u
    payload,num=re.subn(r'(http|https)://[a-zA-Z0-9.@&/#!#?]+', "http://u", payload)
    #分词
    r = '''
        (?x)[w.]+?(
        |)
        |"w+?"
        |'w+?'
        |http://w
        |
        |
        |
        |[w.]+
    '''
    return nltk.regexp_tokenize(payload, r)
未处理的数据样本如下:
1)))%252bAND%252b8941%25253d8941%252bAND
/yk10/?page=54%20LIMIT%201%2C1%20UNION%20ALL%20SELECT%22C%20NULL%2C%20NULL%23
处理后数据样本如下:
['0', ')', ')', ')', 'and', '0=', '0', 'and']
['yk0', 'page=','0', 'limit', '0', '0', 'union', 'all', 'select', 'null', 'null', 'null']
四、练习词向量模型
Word2Vec是Google在2013年开源的一款将自然语言转化为计算机能够了解特征向量的东西。Word2Vec首要有CBOW(Continuous Bag-Of-Words)和Skip-Gram两种。CBOW模型练习进程是输入某一个词上下文相关的词对应的词向量,输出是这个词的词向量;而Skip-Gram与之相反,输入特定一个词的词向量,输出该特定词的上下文词向量。
将分词处理完的数据作为文本向量的练习数据,练习得到词向量模型,通过此模型,可将单词转化为计算机所能了解的向量,如单词select通过转化后如下:
[ 5.525984  -2.4446     -0.9985928  -1.6910793  1.8828514   2.8958166
 0.90518814 -1.3623474 -1.8427371   0.5957503  -3.9347208  1.4152565
 -0.0354603 -7.432402   -0.68348515 -4.0790896]
练习词向量模型的代码如下:
def train_word2vec():
    sentences=MySentences(datadir)
    cores=multiprocessing.cpu_count()
    if os.path.exists(model_dir):
        print ("Find cache file %s" % model_dir)
        model=Word2Vec.load(model_dir)

[1] [2]  黑客接单网

相关文章

安全搜索引擎Shodan(搜蛋)命令行形式运用TIPS

与谷歌经过网址来搜索互联网的方法不同,Shodan经过互联网背面的通道来搜索信息。它就象是一种“漆黑”的谷歌,不断在寻觅服务器、网络摄像头、打印机、路由器和其他与互联网衔接及构成互联网的全部东西。 S...

JSP运用过滤器避免SQL注入

 什么是SQL注入进犯?引证百度百科的解说: sql注入_百度百科: 所谓SQL注入,便是通过把SQL指令刺进到Web表单提交或输入域名或页面恳求的查询字符串,终究抵达诈骗服务器履行歹意的SQL指令。...

经过APACHE ACCESS LOG来使用LFI缝隙

本地文件包括(LFI)缝隙,常被入侵者用来提取站点地点服务器上的不同文件内容,如passwd,hosts等。但你有没有想过将它提升到另一个层级?即经过本地文件包括来获取服务器上的浏览器shell(c9...

看我怎么发现比特币赌博网站缝隙并收成$12000赏金

Web浸透测验中比较难的便是测验那些交互较少的使用了,当你尝试了各种缝隙使用办法而无效之后,很或许就会抛弃了。但有时分,这种花费时刻的投入和研讨,对白帽本身的技能进步来说,仍是十分有用的。这儿我就共...

OWASP TOP 10之怎么防护CSRF进犯

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

你不在意的HTTPS证书吊销机制-黑客接单平台

缘起偶刷《长安十二时辰》,午睡时,梦到我穿越到了唐朝,在长安城中的靖安司,做了一天的靖安司司丞。当徐宾遇害消失的时分我不在司内,其时的景象我不得而知。后来徐宾醒了,据他描述说“通传陆三”是暗桩,几乎致...