【逻辑漏洞技巧拓展】————1、逻辑至上之各种酷炫姿势

逻辑漏洞概述 访问: 主体与客体之间的信息流动。主动的是主体,被动的是客体。 主体访问客体的四个步骤: 身份标识->身份验证(数据库匹配信息,判断身份是否合法)->授权(判断身份是谁,管理员或正常账户)->审计(记录操作) 访问控制模型: 自主访问控住(DAC 大部分使用):由客体的属主自主对客体进行管理,自主决定是否将访问权限授予其他主体。 强制访问控制(MAC 军方或重要政府部门用):安全... 阅读详情

与传统类型漏洞相比,逻辑漏洞具有不易发现、不易防护的特点,不像SQL注入、XSS有像WAF那样现成的防护手段;而且,每个企业的业务逻辑参差不齐,也形成了千奇百怪的逻辑漏洞。

前言

与传统类型漏洞相比,逻辑漏洞具有不易发现、不易防护的特点,不像SQL注入、XSS有像WAF那样现成的防护手段;而且,每个企业的业务逻辑参差不齐,也形成了千奇百怪的逻辑漏洞。下面就和大家分享一下我都是从哪些维度去发现逻辑漏洞的。

 

一、未授权

形成未授权的原因一般是由于代码未做登录验证或者登录验证失效引起,从而使后台或者带有敏感信息的页面直接裸露在公网。site:在baidu、Google、bing、360等搜索引擎中使用site命令去搜索所要查询的域名信息,因为此时搜索以“全”为目的,所以不需要加任何搜索条件。

比如想查询a.com下的未授权,site:a.com即可。一般看搜索结果前十页。如果遇到被搜索引擎收录过多的域名,这时就需要加一些条件了,具体可以参考site命令用法。通过site命令,一般会很容易发现某个域名下的后台地址和直接暴露在公网的敏感信息页面。

域名爆破:通过爆破发现更多的二级、三级域名,然后导出域名列表通过脚本查看域名banner名称,或者挨个手工访问,观察是否有未授权登录的后台。一般大家都使用layer子域名挖掘和subDomainsBrute来进行子域名发现。

端口及banner扫描:端口不容小视,很多运维自作聪明,把后台或者其它管理系统直接改个非80端口绑定到公网。可以通过namp对域名所在ip段内的服务器进行端口扫描,生成ip+端口列表,然后通过脚本批量获取http banner。夫子通过这种方法成功发现并进入了各种知名互联网公司后台,当然,漏洞都已提交给他们的src了。

域名关联:目前有很多公司的域名是未做域名隐私保护的,可以通过whois查询某个域名所有人还拥有哪些域名,然后重复上述步骤。

二、登录与账户

一个业务,如果登录或者账户信息出现漏洞,信息被一些不法分子利用,可能出现类似电信诈骗的现象。

图形验证码:很多后台/前台在登录或注册时,是没有图形验证码的。这也就给爆破带来了便利。让人更不可思议的是,很多验证码只是个摆设,哪怕输入错误的验证码也能提交。

短信验证码:在app盛行的时代,短信登录更为便捷,所以在使用过程中也产生了诸多问题。

例如很多app登录时使用4位纯数字作为手机验证码。如果用户基数较大,在某一时间段,会有部分人使用同一个手机验证码登录。如果通过大量撞库,可能登录他人账号;又因为是4位验证码,如果单一账号也没限制短信登录重试次数,同时也存在通过爆破4位验证码登录的现象。

账号登录回显与注册:很多开发者或者产品,为了提升体验,在设计开发系统登录功能时会加一些友好的提示信息。比如提示“该用户不存在”、“该用户已注册”,这无疑是一个变相的撞库漏洞。在撞库之前,测试者一般都先搜集好精确的用户名字典,而提示用户不存在或登录时不存在的用户请求返回字节不一样,都构成了撞库。

明文密码登录:不少应用在登录时使用了明文密码登录,或者使用未加盐的md5,或者使用了外围人员不知道的加密方法,这些都是不可靠的。

拿加盐的md5值作为密码登录为例。登录时,只需在burp这类工具拿出几个常用密码加密后的密文,即可实现fuzz。终究的防护办法还是登录时加入签名,签名一旦被篡改,就无法登录。

账号及其它个人信息篡改:通过抓包方式对账号信息进行拦截,如手机号、uid、邮箱、token,篡改后提交数据包,从而达到登录别人账号的目的。一般防护办法是使用多个参数进行验证,当满足所有条件时才验证通过。

密码重置:密码重置也是一个重灾区,常见的密码重置绕过方式有数字验证码绕过,比如4位数字,通过爆破进行;有的通过修改返回结果,如把false改成true。还有的可以构造密码重置链接。这部分夫子接触较少,更多姿势可以参考乌云镜像案例。

三、越权

越权漏洞是逻辑安全中的重中之重,由于产品、研发追赶项目进度,会在项目开发过程中损耗一些安全属性。接下来我们看一下比较典型的越权漏洞,这些越权漏洞一旦发生,危害等同于脱裤。

订单遍历:订单遍历一般发生在三种场景,分别是前台订单遍历、后台订单遍历、前后台订单遍历。

1. 前台订单遍历指的是你在某平台购物或者下单订了个外卖,然后在查看订单时发现订单id为一串有规律的数字,这时可能通过变换id数字就可以查看他人订单信息了。

2. 后台订单遍历指的是一些管理后台,在前端展现的时候,每个用户只能查看系统分配给自己的一些订单信息。但是通过burp抓包进行fuzz时,多数都可越权查看其它账户下的订单信息,这就成了一个变相的脱裤。防护策略就是将订单id加密或者变成一串很大的数字,这样一来也就无法遍历。

3. 刚才说了两种场景,接下来说一下第三种场景。这个姿势稍微有点淫荡,我把这个场景称为前后端订单遍历。举个例子,当我们在某外卖提交订单时,信息里面会包含一个订单号,而这个订单需要一个商家端来接单。商家端接单时可以抓包,然后就可以进行订单遍历了。当然,前提是你得有一个商家端。

商家资质遍历:商家在运营过程中,会向平台提交一些身份证、营业执照等敏感信息。一些服务端为了方便保存,直接对上传文件以用户id或者一串数字保存,这样一来可能通过改id就可获取其它商家信息。修复办法就是将文件名称进行hash命名。

取消他人订单、恶意刷评:取消订单时对订单号进行拦截篡改,从而达到取消他人订单的目的;评论时更换评论者id,从而实现恶意刷好评、差评的目的。

四、支付

你想买个红色的爱疯7,于是给自己购物账户充值了5000软妹币,等你下单完毕后,发现账户余额变成了10000,这是为什么呢?

金额篡改:在下单时,通过拦截篡改支付额度后提交请求,一般会看到出其不意的效果,如把订单金额改小、改成负数。造成这一现象的原因是服务器端对金额未做二次校验。

充值与提现:充值和提现过程中都可能存在漏洞。

1. 充值一般会出现两种漏洞:

一种是少充多得,比如充值100元时通过篡改金额改成10元,最终充值完毕后账户变成了100元,而实际付款却只有10元;

另一种是绕过活动页金额限制,比如很多公司做活动强制用户充值金额不能低于10000,而通过拦截修改金额,可以充值任意金额。

2. 接下来我们再说说提现:

提现一般也是由于服务器端参数校验不严格,会经常存在一些信息泄露、无限提款的漏洞。一般提现时,我们可以通过篡改提现额度、银行卡号来实现。防护手段是手机号、姓名、银行卡账户、额度四个统一。

数量、商品/优惠id篡改:下单时,通过拦截篡改商品数量、商品id、优惠券等信息。如把数量改为一正一负、如替换优惠券满减id。

比如你有2张优惠券,一张id为1的优惠券满100减10块,一张id为2的优惠券满200减20。这时你买了100块钱的物品,勾选了满100减10块的优惠券,提交请求时把优惠卷id1篡改成了2,结果只支付了80块钱。

支付上的漏洞远不止这些。如果想深挖,可以尝试实现多个组合,通过频繁组合与篡改,观察效果。

五、API

现在是app盛行的时代,客户端使用API与服务器端进行数据传输,所以API安全问题频出,接下来说一下API常见的安全问题。

参数校验:举个例子,你在某个app内充值话费,返回查看订单时url参数包含了手机号、银行卡、充值金额,你通过改变手机号,获取到了其它用户的充值信息(银行卡号、金额)。这样你便获取了一一对应的手机号和银行卡,是不是很恐怖呢?其实这也是典型的平行越权。

短信邮箱炸弹:短信和邮箱经常出现的漏洞分为两种。一种是无任何频率限制,利用者可以无限制对目标手机号或者邮箱发送垃圾短信/邮件;另一种是对短信/邮件内容实现篡改。

关键参数不加密:如同上面说的订单号、银行卡号、身份证等敏感信息,这类数据要进行hash,从而减少被直接明文越权/遍历的风险。

分享了这么多,说说这两年从接触安全到能发现逻辑漏洞的一些心得。

1. 有枣没枣先打三竿:上来先动手跑几十万数据试试,毕竟光看是看不出安全漏洞细节的。

2. 观察每一个参数:逻辑问题重要的是测业务逻辑,所以每条http请求都不能放过,每个参数也要尽可能知道是干啥的,看看能不能改变某个参数引起异常返回结果。

3. 大胆假设:不要以为互联网巨头没安全漏洞,往往是比小公司安全问题更多。只有想不到,没有做不到。

4. 时间投入:一些漏洞,真不是1-2天能发现的,很多时候需要耗时几天甚至更久,需要分析业务请求才能发现,所以要头脑冷静急不得。

转自:http://netsecurity.51cto.com/art/201705/538558.htm

各种逻辑漏洞 注册:短信轰炸验证码安全问题密码爆破邮箱轰炸用户任意注册、批量注册用户名枚举XSS(有框的地方就可以尝试插XSS)登录:短信轰炸、验证码安全问题、密码爆破、邮箱轰炸SQL注入撞库抓包把password字段修改为空值发送认证凭证替换、比如返回的数据包中包含账号,修改账号就能登录到其他账号Cookie仿冒修改返回包的相关数据,可能会登陆到其他的用户找回密码:短信邮箱轰炸、短信邮箱劫持重置任意用户账户密码、验证码手机用户未统一验证直接跳过验证步骤。 阅读详情

相关推荐

记一次支付逻辑漏洞挖掘和支付逻辑漏洞原理及修复

支付逻辑漏洞是一种高危漏洞,攻击者可以利用该漏洞用比实际更便宜的价格进行购物,甚至是零元购。支付逻辑漏洞属于危害极高的漏洞,利用者将面临法律风险,因此,发现此类漏洞要尽快上报。支付逻辑漏洞可以用修改支付价格,修改支付状态,修改订单数量,修改优惠卷价格等等姿势达成支付逻辑漏洞发现及验证,这类漏洞在小网站还是比较多的,欢迎大家一起挖掘,共同进步。

weixin_63560942的博客 3169

逻辑漏洞总结

逻辑漏洞:又称业务逻辑漏洞,是指由于程序逻辑不严谨或者 逻辑太复杂,导致一些逻辑分支不能正常处理或 者处理错误。通俗的讲,一个系统功能太多后,程序开发人员难以顾及到方方面面,对于某些地方的处理可能有遗漏, 从而导致逻辑漏洞。 逻辑漏洞的出现:通常出现在任意密码修改(没有旧密码验证)、越权访问、密码找回、交易支付金额等。普遍存在性: 由于功能的实现需要大量的逻辑操作,同时受制于程序员的背景,这类缺陷普遍存在于各类应用程序中。 不固定型: 或者称作“十分有针对性”,因为每一种逻辑缺陷似乎都是唯一的,它是基于逻辑

qq_45244158的博客 9773

web十大漏洞之逻辑漏洞

逻辑漏洞就是基于开发人员设计程序的时候,逻辑不严密,导致攻击者可以修改、绕过或者中断整个程序,让程序按照开发人员的预料之 外去执行。

2401_89723786的博客 1750

常见逻辑漏洞总结

常见逻辑漏洞 简介 逻辑漏洞是指由于程序逻辑不严导致一些逻辑分支处理错误造成的漏洞。 在实际开发中,因为开发者水平不一没有安全意识,而且业务发展迅速内部测试没有及时到位,所以常常会出现类似的漏洞。 1.交易逻辑漏洞 ...

weixin_44477223的博客 9996

逻辑漏洞+未授权访问漏洞讲解 (教案)

目录穿越即上传的文件可以到任意的目录位置包括网站的根目录,这样就可以直接访问得到了。['filePath', []],//生成文件位置 可以目录穿越 ../../../ 到达根目录。//获取要写入的内容。通俗来讲就是 后端设计的某个功能的代码逻辑有缺陷,攻击者可以利用逻辑的缺陷损害厂商的利益或者他人的利益。修改密码的时候,参数step,表示步骤1,2,3直接将step改为3跳过中间的验证步骤直接修改密码。有的人认为这可能不是漏洞,但是他是,因为发一次短信厂商是会扣钱的,对收到短信的人也是一种骚扰。

qq_63217130的博客 1733

libero烧录信号抓取

提示:如果改了东西需要重新烧录,需要把这两个界面都关闭再libero打开。两个红色的要关闭掉。然后返回libero开始烧录,观测信号(如果只烧录观测从这一步开始就行)等到下面的messige出现以下信息表示run好了。在下图中右侧可以自己设置,设置完之后记得保存一下。run一下,耐心等待,有警告就ok,run完之后。run成功会变绿色,然后点下面的这个看波形。设置抓取信号:在libero打开。打开的就是烧录界面,直接run。

qq_34047965的博客 1423

逻辑漏洞详解

逻辑漏洞 逻辑漏洞简介 ​ 逻辑漏洞是指攻击者利用业务/功能上的设计缺陷,获取敏感信息或破坏业务的完整性。一般出现在密码修改,确权访问,密码找回,交易支付金额等功能处。 ​ 逻辑漏洞的破坏方式并非是向程序添加破坏内容,而是利用逻辑处理不严密或者代码问题或固有不足,操作上并不影响程序的允许,在逻辑上是顺利执行的。 ​ 这种漏洞一般防护手段或设备无法阻止,因为走的是合法流量也没有防御标准。 逻辑漏洞的重要性 ​ 常见的OWASP漏洞,通过漏洞扫描工具,大多支持自动化或者半自动化扫描出来,并且传统的安全设备或者防

weixin_56714714的博客 1万+

华为手机连接Win11失败?内核隔离与驱动签名冲突的终极解决指南

在Windows操作系统中,驱动程序是硬件与系统通信的桥梁,其数字签名机制是保障系统内核安全的核心防线。基于虚拟化的安全技术通过强制验证驱动签名,能有效隔离恶意代码,提升系统抵御高级威胁的能力。然而,严格的签名策略有时会与部分硬件驱动产生兼容性问题,导致设备无法识别,直接影响文件传输、应用调试等核心工作流。本文聚焦于华为手机在开启Windows 11内核隔离功能时出现的连接故障,深入剖析驱动签名验证与Hypervisor保护的代码完整性原理,并提供从驱动更新、策略调整到无线替代方案的完整解决路径,帮助用户在

weixin_31309419的博客 354

逻辑漏洞小总结

1、找到关键的数据包可能一个支付操作有三四个数据包,我们要对数据包进行挑选。2、分析数据包支付数据包中会包含很多的敏感信息(账号,金额,余额,优惠),要尝试对数据包中的各个参数进行分析。3、不按套路出牌多去想想开发者没有想到的地方。4、pc端尝试过,手机端wap也看看,app也试试防御方法1、在后端检查订单的每一个值,包括支付状态;2、校验价格、数量参数,比如产品数量只能为整数,并限制最大购买数量;

yk2909438315的博客 5358

MATLAB三元相图实战:从数据准备到高级可视化技巧全解析

本文深入解析了如何使用MATLAB绘制专业的三元相图(ternary plot)。文章从数据归一化、范围映射等预处理技巧入手,详细介绍了散点图、等高线图、凸包计算等高级可视化方法,并提供了多数据集对比与出版级图表美化的实战指南,帮助科研与工程人员高效呈现复杂的三元数据关系。

spark7igniter的博客 258

YOLO26 改进 | 基于特征蒸馏 | 知识蒸馏 (Response & Feature-based Distillation)

本文系统介绍了YOLO26中的知识蒸馏技术,包含五大核心方法:基于响应的蒸馏(学习分类概率)、基于特征的蒸馏(学习中间层表示)、基于关系的蒸馏(学习特征关联)、通道维度蒸馏(CWD)和前景背景分离蒸馏(FGD)。文章深入解析了每种方法的数学原理与实现细节,并提出动态训练策略,包括一致性匹配和蒸馏权重退火机制。通过教师模型向学生模型传递"暗知识",在保持模型轻量化的同时逼近大模型性能。配套代码支持模块化组合不同蒸馏方法,为YOLO26模型压缩提供了一套完整的解决方案。

weixin_51988935的博客 274

【逻辑漏洞技巧拓展】————4、逻辑漏洞之支付漏洞

支付漏洞 乌云案例之顺丰宝业务逻辑漏洞 案例说明 顺丰宝存在支付逻辑漏洞,可以允许用户1元变1亿元。这个漏洞在其他网站很难存在,原因是页面交互都使用了对字段做签名。但是顺丰宝没做签名,导致支付金额可以被修改为任意数值。猜测成因是开发人员为了快速实现功能,而忽略了其中数据签名的步骤。可以想象,如果我充值1个亿,然后再使用取款功能,会产生神马效果。 利用过程 1 登录顺风宝查看余额 2...

Fly_鹏程万里 834

深入浅出:使用Python爬取链家二手房数据

在数据驱动的时代,房地产数据作为社会经济的重要指标,一直是数据分析师、投资者和研究人员关注的焦点。链家作为国内领先的房产中介平台,其二手房数据具有较高的真实性和时效性。然而,官方API的访问限制和数据获取的门槛,让很多初学者望而却步。本文将带你从零开始,使用Python编写一个符合robots.txt规范的链家二手房爬虫,获取标题、户型、价格等信息。文章不仅会提供完整代码,还会深入讲解反爬策略、请求头伪装、数据解析、异常处理等实战技术。目录前言:为什么要写这篇博客?一、爬虫前的准备:法律与道德。

2201_76125261的博客 90

十大漏洞之逻辑漏洞

在十大漏洞中,逻辑漏洞被称为“不安全的对象引用,和功能级访问控制缺失”。现如今,越权和逻辑漏洞占用比例比较高,包括任意查询用户信息,重置任意用户密码,验证码爆破等。 逻辑漏洞: 常见的逻辑漏洞: 交易支付,密码修改,密码找回,越权修改,越权查询,,突破限制等各种逻辑漏洞 不安全的对象引用指的是平行权限的访问控制缺失 A,B同为普通用户,他们之间彼此之间的个人资料应该相互保密的, A的资...

zhangge3663的博客 2万+

56、CAN总线RC低通滤波器截止频率计算与实战

本文详细探讨了CAN总线RC低通滤波器的设计与应用。作者通过实际项目案例,分析了CAN总线噪声频谱特性,提出截止频率计算的"黄金法则",强调需考虑收发器输入阻抗的并联效应。文章给出RC参数选择的经验值(R=100Ω-1kΩ,C=10pF-100pF),并指出PCB布局的关键要点:RC应紧贴收发器引脚,电容接地端需直接连接地平面。最后建议结合示波器和眼图验证效果,并提醒RC滤波器只是抗干扰方案的一部分,良好的PCB布局设计才是根本。

2401_88858637的博客 70

【AI智能体】全场景AI智能体工作台WorkBuddy实战操作详解

全场景AI智能体工作台WorkBuddy实战操作详解

congge 5494

【web安全】——一篇文章看懂逻辑漏洞

逻辑漏洞是指由于程序逻辑不严或逻辑太复杂,导致一些逻辑分支不能够正常处理或处理错误,一般出现任意密码修改(没有旧密码验证)、越权访问、密码找回、交易支付金额等。

Demo不是emo的博客 1万+

H3C BGP联盟实验

bgp,bgp联盟,bgp公认团体属性,

一只懒羊羊 970

【逻辑漏洞技巧拓展】————5、密码逻辑漏洞

       在前段时间的这两周时间里,爆出了各种大网站数据库泄漏的问题(这个好像跟今天的主题没什么关系),所以我今天就来讨论一下在平时的渗透过程中密码那些事情(果然跟数据库泄漏没什么);        其实密码导致的漏洞在漏洞平台爆出的问题真的很多,不过大部分都是弱口令,其它类型的还是比较少见的;就让我们一起聊一聊密码或者密码衍生的问题吧!!! 弱口令 百年不变的话题,其实说白了就是网站管...

Fly_鹏程万里 1139

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

逻辑漏洞:支付逻辑漏洞

支付逻辑漏洞是指在支付系统中存在的一系列问题,包括但不限于重复支付、金额篡改、未经授权的退款、支付验证不严格和支付信息泄露等。这些漏洞可能导致用户遭受经济损失,面临欺诈风险,以及可能暴露个人隐私信息。因此,支付系统的安全性和稳定性对于用户和商家来说至关重要。

qq_68163788的博客 3077

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

逻辑漏洞之越权、支付漏洞

目录逻辑漏洞Web安全渗透三大核心方向输入输出登录体系、权限认证业务逻辑漏洞分类1、登录体系安全暴力破解cookie安全加密测试登录验证绕过任意注册2、业务一致性安全手机号篡改邮箱和用户名更改订单ID更改商品编号更改用户ID篡改流程顺序3、业务数据篡改金额数据篡改商品数量篡改最大数限制突破金额&优惠组合修改4、密码找回漏洞分析数据包,定位敏感信息分析找回机制修改数据包验证任意密码找回5、验证码突破暴力破解时间、次数突破回显测试验证码绕过测试验证检验机制猜解6、会话权限安全未授权访问水平&垂直

这是笔者初学时所做的笔记,有错误的地方太多了,有些结论也只是笔者的一家之言。请自行判断 8573

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

【逻辑漏洞技巧拓展】————7、业务逻辑漏洞探索之越权漏洞

本文中提供的例子均来自网络已公开测试的例子,仅供参考。 本期斗哥带来越权漏洞和大家探讨探讨。什么是越权呢? 越权,顾名思义,就是超出了权限或权力范围。 多数WEB应用都具备权限划分和控制,但是如果权限控制功能设计存在缺陷,那么攻击者就可以通过这些缺陷来访问未经授权的功能或数据,这就是我们通常说的越权漏洞。攻击者越权后就可以进行一些操作,例如查看敏感信息、进行一些增删改查的操作等等。 我们一...

Fly_鹏程万里 1584

【web安全】——逻辑漏洞之越权漏洞

什么?还不会挖越权漏洞?试试这篇文章吧

Demo不是emo的博客 1万+

逻辑漏洞:验证码相关的逻辑漏洞

验证码可能被恶意窃取或篡改,导致安全性受到威胁;验证码可能被恶意利用,例如通过社会工程学手段诱使用户提供验证码,从而实施诈骗或盗取个人信息;验证码的生成算法可能存在弱点,被攻击者破解从而生成有效验证码;验证码的有效期设置不当或者重复使用,也可能被攻击者利用。综上所述,验证码相关的逻辑漏洞可能会给用户带来安全风险,因此在设计和使用验证码时应当注意以上问题,加强安全性措施以保护用户信息安全。

qq_68163788的博客 1951

10.1_逻辑漏洞

​ 本文围绕逻辑漏洞展开,系统阐述了其概念、分类、与其他漏洞的区别、典型案例及防御方法。

专注网络安全技术分享,从漏洞分析到防御策略,记录我的学习与实践。 1681
上一篇: 【文件上传/解析技巧拓展】————4、文件上传总结
下一篇: 【逻辑漏洞技巧拓展】————2、Web安全测试中常见逻辑漏洞解析(实战篇)
FLy_鹏程万里
FLy_鹏程万里 优质创作者: 后端开发技术领域 优质创作者: 后端开发技术领域 领域专家: 操作系统技术领域 领域专家: 操作系统技术领域
博客等级 码龄9年 1万+粉丝 1364原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值