加入收藏 | 设为首页 | 会员中心 | 我要投稿 厦门网 (https://www.xiamenwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 业界 > 正文

技术讨论 | 自动化Web渗透Payload提取技术

发布时间:2018-10-12 23:17:01 所属栏目:业界 来源:zhanghaoyil
导读:【新品产上线啦】51CTO播客,随时随地,碎片化学习 一、写在前面 做Web安全已经三四年了,从最初的小白到今天的初探门路,小鲜肉已经熬成了油腻大叔。Web安全是一个日新月异的朝阳领域,每天的互联网上都在发生着从未暴露的0 Day和N Day攻击。这时一个大家

这些特征向量能否充分反映样本的异常性呢?我使用未调参的随机森林模型进行验证,得到了大于95%准确率的结果,比较满意。下图是模型学习曲线,可以看出仍处于欠训练的状态,如果样本量更充足的话将会得到更好的效果。

技术讨论 | 自动化Web渗透Payload提取技术

由于本文所述方法旨在使用无监督学习提取异常参数,并不用纠结于有监督分类的结果,只要验证了提取的特征的确可以反映出参数的异常性即可。

2. 异常参数值提取

得到参数值的异常分数下面的工作就简单多了,主要就是:

  • 数据的标准化(Standardization)
  • 根据阈值确定异常参数
  • 根据异常分数在训练集矩阵的位置提取对应的参数值

这部分没有什么特别的逻辑,直接看代码吧:

  1. if name == 'main': 
  2.     x = np.load(f"../vectorize/paths/~tienda1~publico~registro.jsp_x.npy") 
  3.     params = np.load(f"../vectorize/paths/~tienda1~publico~registro.jsp_params.npy") 
  4.     with open(f"../vectorize/paths/~tienda1~publico~registro.jsp_samples.json", 'r') as sf: 
  5.         samples = json.loads(sf.readline()) 
  6.     #Standardization 
  7.     ases = StandardScaler().fit_transform(x[:, :len(params)]) 
  8.     indices = ases > 6 
  9.     #extract anomalous payload 
  10.     for s in range(indices.shape[0]): 
  11.         for p in range(indices.shape[1]): 
  12.             if indices[s, p] and params[p] in samples[s]['OriParams'].keys() and samples[s]['OriParams'][params[p]].strip(): 
  13.                 print(f"##{params[p]}## ##{samples[s]['OriParams'][params[p]]}##") 

(编辑:厦门网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读