同步操作将从 zhang_star/NBbook 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
#-*- coding:utf-8 –*-from apriori import apriorifrom apriori import generateRulesimport reif __name__ == '__main__':#myDat = [ [ 1, 3, 4 ], [ 2, 3, 5 ], [ 1, 2, 3, 5 ], [ 2, 5 ] ]myDat=[]#L, suppData = apriori(myDat, 0.5)#rules = generateRules(L, suppData, minConf=0.7)#print 'rules:\n', ruleswith open("xss-train.txt") as f:for line in f:#/discuz?q1=0&q3=0&q2=0%3Ciframe%20src=http://xxooxxoo.js%3Eindex=line.find("?")if index>0:line=line[index+1:len(line)]#print linetokens=re.split('\=|&|\?|\%3e|\%3c|\%3E|\%3C|\%20|\%22|<|>|\\n|\(|\)|\'|\"|;|:|,|\%28|\%29',line)#print "token:"#print tokensmyDat.append(tokens)f.close()L, suppData = apriori(myDat, 0.15)rules = generateRules(L, suppData, minConf=0.6)#print 'rules:\n', rules# -*- coding:utf-8 -*-import sysimport urllibimport urlparseimport refrom hmmlearn import hmmimport numpy as npfrom sklearn.externals import joblibimport HTMLParserimport nltk#处理参数值的最小长度MIN_LEN=6#状态个数N=10#最大似然概率阈值T=-200#字母#数字 1#<>,:"'#其他字符2SEN=['<','>',',',':','\'','/',';','"','{','}','(',')']def ischeck(str):if re.match(r'^(http)',str):return Falsefor i, c in enumerate(str):if ord(c) > 127 or ord(c) < 31:return Falseif c in SEN:return True#排除中文干扰 只处理127以内的字符return Falsedef etl(str):vers=[]for i, c in enumerate(str):c=c.lower()if ord(c) >= ord('a') and ord(c) <= ord('z'):vers.append([ord(c)])elif ord(c) >= ord('0') and ord(c) <= ord('9'):vers.append([1])elif c in SEN:vers.append([ord(c)])else:vers.append([2])#print versreturn np.array(vers)def do_str(line):words=nltk.word_tokenize(line)print wordsdef main(filename):X = [[0]]X_lens = [1]with open(filename) as f:for line in f:line=line.strip('\n')#url解码line=urllib.unquote(line)#处理html转义字符h = HTMLParser.HTMLParser()line=h.unescape(line)if len(line) >= MIN_LEN:print "Learning xss query param:(%s)" % linedo_str(line)#X=np.concatenate( [X,vers])#X_lens.append(len(vers))#print X#remodel = hmm.GaussianHMM(n_components=N, covariance_type="full", n_iter=100)#remodel.fit(X,X_lens)#joblib.dump(remodel, "xss-train.pkl")#return remodeldef test(remodel,filename):with open(filename) as f:for line in f:# 切割参数result = urlparse.urlparse(line)# url解码query = urllib.unquote(result.query)params = urlparse.parse_qsl(query, True)for k, v in params:if ischeck(v) and len(v) >=N :vers = etl(v)pro = remodel.score(vers)#print "CHK SCORE:(%d) QUREY_PARAM:(%s) XSS_URL:(%s) " % (pro, v, line)if pro >= T:print "SCORE:(%d) QUREY_PARAM:(%s) XSS_URL:(%s) " % (pro,v,line)#print lineif __name__ == '__main__':#remodel=main(sys.argv[1])#test(remodel,sys.argv[2])nltk.download()main(sys.argv[1])
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。