0x01 前言 越权漏洞相较于SQLInject、XSS、SSRF等漏洞,最大的不同点在于该漏洞和权限的架构设计具有强相关性,而权限的架构设计又强依赖业务属性,这就导致了几乎每个系统的权限架构都各不相同,自动化检测的难度非常之大,误报率非常高;内部的检测准确率无法有效提升,越权漏洞数量就很难有效的下降 关于越权漏洞的挖掘,从原理上来看并不复杂,甚至可以说是简单,最大的难点在于信息收集能力、细心程度、对业务的理解度,这个其实也没有什么好谈的 关于批量/自动化越权检测的文章在网路上寥寥无几,开源的工具更是少的可怜(某些大佬手里有牛逼工具除外),今天想要说的是在甲方,特别是应用数量三位数、

分享一个人工审计代码时的小Tips 在审计一个复杂的Web应用时,可能会有几百个WebAPI,如果没有一个API list,要想不漏掉的审计完还是非常费脑筋的 0x00 原理 通过JavaParse解析Java文件,解析出WebAPI list,简单实现效果如下 关于JavaParse Analyse, transform and generate your Java code base. In its simplest form, the JavaParser library allows you to interact with Java source code a

从小你们就在自由探索自己的兴趣;很多人在童年就进入了不惑之年,不惑于自己喜欢什么,不喜欢什么。 昨天《后浪》刷屏了朋友圈,笔者也转发了,被何冰老师富有感染力的声音和部分走心的文案戳中 自由学习一门语言,学习一门手艺,欣赏一部电影,去遥远的地方旅行。 从小你们就在自由探索自己的兴趣;很多人在童年就进入了不惑之年,不惑于自己喜欢什么,不喜欢什么。 不过在看过之后回想,笔者认为这只是我们生活的一个剪影,并不能代表我们这一代人。这里不讨论宣传片里的UP主们,在上一篇中有提到,这是我们该去拥抱的新事物。 今天是青年节,不同于中秋节、端午节、情人节,这是一个精神的节日。 我们要的不应该只

当我们做出选择改变时,不知道将会得到什么,但很清楚将会失去什么。 回想一下,是不是或多或少会有一些类似的场景,当出现一个新的偶像明星时,特别是帅的或漂亮的,会迅速的下一个判断,觉得没有真才实学全靠包装,觉得他们的粉丝都是脑残;在玩LOL或王者时,被对面强势英雄干的很惨,是不是每次先把自己觉得打不过的ban掉,却很少去主动练习这类强势英雄;当一项新技术、新设计、新政策出现时,网上和我们身边,往往会充斥着吐槽、抵制的声音,往往要很长一段时间才会变成真香,例如当年汽车诞生时的《红旗法案》。 上述的这类例子数不胜数,笔者有时候会觉得自己是不是没有跟上这个时代的节奏。所以将这种下意识的心理活

今天看到PALO ALTO和Unit 42联合发布了这个不到20页的报告,读了一下,虽然篇幅稍短,但是内容还是很有价值的,结合笔者去年在做的事情,浅薄的解读下,有兴趣的可以阅读原文 0x01 概要 报告主要分为现阶段的IoT安全格局、Top IoT Threats、结论建议三个部分。 第一部分主要讲现阶段IoT的安全格局,现在企业缺乏完善的IoT资产管理,缺少相应的安全产品去保护IoT设备,人力资源缺乏,整体风险很高,其中健康医疗行业风险特别高; 第二部分重点讲了现阶段IoT的网络攻击、密码攻击、蠕虫等Top 威胁,同时还提到了因为没打补丁的设备以及老协议,导致攻击的横向移动,越来

如何快速感知项目立项?如何感知应用上线?如何跟踪应用迭代?越权漏洞频发如何解决? 前言 应用安全如何做?这是一个老生常谈的问题,那为什么还要提这个话题呢?在笔者经历了短暂的两年多的应用安全建设来看,SDL的完整落地是一个很大的难题。当然,像其中的培训、代码扫描以及应急响应这几部分,各种落地方案很成熟,也就不提了。应用安全建设的本质就是运营,最难落地的差不多就是安全评审了。 如何进行安全评审,从方法论来看也不是什么难题,通过STRIDE威胁建模模型和DREAD威胁评级模型,再融入公司的实际情况,一份定制化的评审CheckList差不多就可以出炉了。然后问题就来了,在哪个环节切入?通

Github发布CodeQL后,一直保持着关注,从17年就有类似的想法在尝试,在CodeQL中有很多不谋而合的点,查询语句刚上手虽然有些别扭,稍微适应了下感觉还好,值得好好学习一下 接下来看一下如何发现Java Deserialization Vulnerabilities。 攻击者在Java应用 deserialization时注入不可信数据进而可以执行任意代码。 java.io.ObjectInputStream中的 readObject是个危险方法。常见的用法如下: ObjectInputStream ois = new ObjectInputStream(input);

凡学问者,皆有术法道三大层次。法者,于术精通而升华成理,复以理指导术之提高,学问之提高层次。达于法者,达中乘也。 个人理解的企业应用安全建设 参与企业应用安全建设两年有余,在公司的应用安全建设比较早期的时候参与进来,最近一年又有幸深度参与了多家中小型公司的应用安全建设,无论是基于云安全平台还是基于自研平台的企业安全建设都有了些许思考。也渐渐构建起了自己的安全观,“企业安全建设是一个动态博弈需要持续投入的过程。安全是业务的一个重要属性,是业务的核心竞争力之一,应用安全的本质是运营。安全建设更重要的是看待安全问题的思路、角度和高度。攻防之道,相辅相成。” 什么是运营,一切围绕着网站产

接上文 DGA Domain Detection 1 import os import random import tldextract import sklearn import pandas as pd import numpy as np from keras.models import Sequential, load_model from keras.preprocessing import sequence from keras.layers.core import Dense, Dropout, Activation from keras.layers.embeddi

Domain generation algorithms (DGA) are algorithms seen in various families of malware that are used to periodically generate a large number of domain names that can be used as rendezvous points with their command and control servers. 0x01 Domain Generating Algorithm Domain generation algorith

K-Means是发现给定数据集的k个簇的算法。簇个数k是用户给定的,每一个簇通过其质心,即簇中所有点的中心来描述 0x01 K-Means 聚类分析试图将相似对象归入同一簇,将不相似对象归到不同簇 K-Means是发现给定数据集的k个簇的算法。簇个数k是用户给定的,每一个簇通过其质心,即簇中所有点的中心来描述 优点: 容易实现 缺点: 可能收敛到局部最小值,在大规模数据集上收敛较慢 适用数据类型: 数值型数据 步骤: 随机确定k个初始点作为质心 将数据集中的每个点分配到一个簇中 可使用任意距离度量方法,性能会受度量方法不同影响 0x02 算法实现

线性回归意味着可以将输入项分别乘以一些常量,再将结果加起来得到输出 0x01 LR 回归的目的是预测数值型的目标值 线性回归意味着可以将输入项分别乘以一些常量,再将结果加起来得到输出 优点: 结果易于理解 计算不复杂 缺点: 对非线性数据拟合不好 适用数据类型 标称型 数值型 0x02 最佳拟合直线 将数据视为直线进行建模 def standRegres(xArr, yArr): ''' 计算最佳拟合直线 :param xArr: :param yArr: :return: 

将大优化问题分解为多个小优化问题来求解 0x01 SVM 实现算法:序列最小优化(SMO) 支持向量:离分割超平面最近的那些点 优点: 范化错误率低 计算开销不大 结果易解释 缺点: 对参数调节和核函数的选择敏感 原始分类器需要修改才能处理多分类问题 适用数据类型: 数值型 标称型 0x02 SMO 将大优化问题分解为多个小优化问题来求解 目标是求出一系列alpha和b,一旦求出了这些alpha,就很容易计算出权重向量w并得到分隔超平面 工作原理是:每次循环中选择两个alpha进行优化处理。一旦找到一对合适的alpha,那么就增大其中一个同时减小另一个

在每个特征上都乘以一个回归系数,然后把 所有的结果值相加,将这个总和代入Sigmoid函数中,进而得到一个范围在0~1之间的数值。任 何大于0.5的数据被分入1类,小于0.5即被归入0类 0x01 LR 根据现有数据对分类边界线建立回归公式,以此进行分类 LR的目的是寻找一个非线性函数Sigmoid的最佳拟合参数,求解过程可以由最优化 算法来完成 在最优化算法中,最常用的就是梯度上升算法,而梯度上升算法又可以简化为随机梯度上升算法 优点 计算代价不高 易于理解和实现 缺点 容易欠拟合 分类精度可能不高 适用数据类型 数值型 标称型 类阶跃函数:Sigmoid

朴素:整个形式化的过程只做最原始、最简单的假设 0x01 NB 朴素:整个形式化的过程只做最原始、最简单的假设 优点 数据较少情况下仍然有效 可以处理多类别问题 缺点 对于输入数据的处理方式比较敏感 适用数据类型 标称型 0x02 贝叶斯决策理论 计算数据点属于每个类别的概率,并进行比较,选择具有最高概率的决策 条件概率 推导过程 0x03 构建文档分类器 两个假设 特征之间相互独立(统计意义上的独立) 每个特征同等重要 word2vec def loadDataSet(): '''