一、前语
本文结合自然语言处理技能,选用卷积神经 *** 算法练习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] 黑客接单网
一个广告Banner,不需要什么交互就或许让你的PC感染歹意程序,是不是感觉很牛掰?听说就现在为止,现已有上百万PC因为这样的原因被感染。并且许多大型网站好像都中招了,其间就包含yahoo和MSN,假...
序 这儿有必要得说一下==和===这俩货的重要性。==是比较运算,它不会去查看条件式的表达式的类型===是恒等,它会查看查表达式的值与类型是否持平NULL,0,”0″,array()运用==和fals...
在收集数据的时分,经常会碰到有反收集战略规矩的WAF,使得原本很简略工作变得复杂起来。黑名单、约束拜访频率、检测HTTP头号这些都是常见的战略,不按常理出牌的也有检测到爬虫行为,就往里注入假数据回来,...
代码审计第五讲首要介绍了一些实例发掘缝隙,从而剖析xss缝隙,在实践cms中的影响。本例先从dvwa实践比如开端剖析,因为观看人数水平参差不急,所以从最根底开端讲起。让每一个看文章有所收成。 DVW...
关于一张网页,咱们往往期望它是结构杰出,内容明晰的,这样搜索引擎才干精确地认知它。 而反过来,又有一些情形,咱们不期望内容能被容易获取,比方说电商网站的交易额,教育网站的标题等。由于这些内容,往往是...
前语 平常搜集的一些姿态,用户绕过杀软履行mimikatz,这儿以360为例进行bypass 测验。 下载最新版360: 未经处理的mimikatz直接就被杀了 下面开端进行绕过360抓暗码 姿态一-...