当前位置: 首页 > news >正文

渗透测试漏洞原理之---【业务安全】

文章目录

    • 1、业务安全概述
      • 1.1业务安全现状
        • 1.1.1、业务逻辑漏洞
        • 1.1.2、黑客攻击目标
    • 2、业务安全测试
      • 2.1、业务安全测试流程
        • 2.1.1、测试准备
        • 2.1.2、业务调研
        • 2.1.3、业务建模
        • 2.1.4、业务流程梳理
        • 2.1.5、业务风险点识别
        • 2.1.6 开展测试
        • 2.1.7 撰写报告
    • 3、业务安全经典场景
      • 3.1、业务数据安全
        • 3.1.1 商品⽀付⾦额篡改
          • 在线靶场演示
        • 3.1.2 前端JS 限制绕过
        • 3.1.3 请求重放测试
        • 3.1.4 业务上限测试
        • 3.1.5 商品订购数量篡改
          • 大米cms案例演示
      • 3.2、密码找回安全
        • 3.2.1、验证码客户端 回显测试
        • 3.2.2、验证码暴力破解
        • 3.2.3、Response状态码值修改测试
        • 3.2.4、Session覆盖
        • 3.2.5、弱Token设计缺陷测试
          • 在线靶场演示介绍
        • 3.2.6 密码找回流程绕过测试
        • 3.2.7 接⼝参数账号修改
          • metinfo_4.0 任意账号密码重置案例演示

1、业务安全概述

1.1业务安全现状

1.1.1、业务逻辑漏洞

近年来,随着信息化技术的迅速发展和全球一体化进程的不断加快,计算机和⽹络已经成为与所有⼈都息息相关的⼯具和媒介,个⼈的⼯作、⽣活和娱乐,企业的管理,乃⾄国家的发展和改⾰都⽆处其外。信息和互联⽹带来的不仅仅是便利和⾼效,⼤量隐私、敏感和⾼价值的信息数据和资产,成为恶意攻击者攻击和威胁的主要⽬标,从早期以极客为核⼼的⿊客⻩⾦时代,到现在利益链驱动的庞⼤⿊⾊产业,⽹络安全已经成为任何个⼈、企业、组织和国家所必须⾯临的重要问题。“⽹络安全和信息化是事关国家安全和国家发展、事关⼴⼤⼈⺠群众⼯作⽣活的重⼤战略问题,没有⽹络安全就没有国家安全,没有信息化就没有现代化。”

随着互联⽹+ 的发展,经济形态不断地发⽣演变。众多传统⾏业逐步地融⼊互联⽹并利⽤信息通信技术以及互联⽹平台进⾏着频繁的商务活动,这些平台(如银⾏、保险、证券、电商、P2P、O2O、游戏、社交、招聘、航空等)由于涉及⼤量的⾦钱、个⼈信息、交易等重要隐私数据,成为了⿊客攻击的⾸要⽬标,而因为开发⼈员安全意识淡薄(只注重实现功能而忽略了在⽤⼾使⽤过程中个⼈的⾏为对Web 应⽤程序的业务逻辑功能的安全性影响)、开发代码频繁迭代导致这些平台业务逻辑层⾯的安全⻛险层出不穷。

image-20230906110442287

业务逻辑漏洞主要是开发⼈员业务流程设计的缺陷,不仅限于⽹络层、系统层、代码层等。⽐如登录验证的绕过、交易中的数据篡改、接口的恶意调⽤等,都属于业务逻辑漏洞。

1.1.2、黑客攻击目标

一方面随着社会和科技的发展,购物、社交、P2P、O2O、游戏、招聘等业务纷纷具备了在线支付功能。如电商支付系统保存了用户手机号、姓 名、家庭住址,包括支付的银行卡信息、支付密码信息等,这些都是黑客感兴趣的敏感信息。攻击者可以利用程序员的设计缺陷进行交易数据篡改、敏 感信息盗取、资产的窃取等操作。现在的黑客不在以炫耀技能为主要攻击目的,而主要以经济利益为目的,攻击的目的逐渐转变为趋利化。

另一方面,如今的业务系统对于传统安全漏洞防护的技术、设备和开发框架越来越成熟,基于传统漏洞入侵也变得越来越困难,增加了黑客攻击的 成本。而业务逻辑漏洞可以逃逸各种安全防护,迄今为止没有很好的解决办法。也是为什么黑客偏好使用业务逻辑漏洞攻击的一个原因

一夜薅走拼多多上千万,背后的“羊毛党”究竟有多可怕?

拼多多一夜被薅200亿?4毛充100话费,一个bug引发的惨案!

为了解决业务安全所带来的风险,所以要对业务安全进行审计

2、业务安全测试

2.1、业务安全测试流程

image-20230906110649203

2.1.1、测试准备

准备阶段主要包括对业务系统的前期熟悉工作,以了解被测试业务系统的数量、规模和场景等内容。

  • 针对白盒测试,可以结合相关开发文档去熟悉相关系统的业务;
  • 针对黑盒测试,可通过实际操作还原业务流程的方式理解业务;

2.1.2、业务调研

业务调研阶段主要针对业务系统相关负责人进行访谈调研,了解业务系统的整体情况,包括部署情况、功能模块、业务流程、数据流、业务逻辑以 及现有的安全措施等内容。根据以往测试实施经验,在业务调研前可先设计访谈问卷,访谈后可能会随着对客户业务系统具体情况了解的深入而不断调 整、更新问卷(黑盒测试此步骤可忽略)。

2.1.3、业务建模

针对不同行业、不同平台的业务系统,如电商、银行、金融、证券、保险、游戏、社交、招聘等业务系统,识别出其中的高风险业务场景进行建 模。 以电商系统为例:

image-20230906110955297

2.1.4、业务流程梳理

以商城用户登录

image-20230906110936433

建模完成后需要对重要业务场景的各个业务模块逐一进行业务流程梳理,从前台和后台、业务和支撑系统等4 个不同维度进行分析,识别各业务模 块的业务逻辑、业务数据流和功能字段(传参点)等。

业务模块的流程梳理主要遵循以下原则:

  • 区分业务主流程和分支流程,业务梳理工作是围绕主流程进行分析的,而主流程一定是核心业务流程,业务流程重点梳理的对象首先应放在核 心主流程上,务必梳理出业务关键环节;
  • 概括归纳业务分支流程,业务分支流程往往存在通用点,可将具有业务相似性的分支流程归纳成某一类型的业务流程,无须单独对其进行测 试;
  • 识别业务流程数据信息流,特别是业务数据流在交互方双方之间传输的先后顺序、路径等;
  • 识别业务数据流功能字段,识别数据流中包含的重要程度不等的信息,理解这些字段的含义有助于下阶段风险点分析。

image-20230906111104399

2.1.5、业务风险点识别

在完成前期不同维度的业务流程梳理工作后,针对前台业务应着重关注用户界面操作每一步可能的逻辑风险和技术风险;针对后台业务应着重关注 数据安全、数据流转及处理的日志和审计。

业务风险点识别应主要关注以下安全风险内容:

业务环节存在的安全风险,业务环节存在的安全风险指的是业务使用者可见的业务存在的安全风险,如注册、登录和密码找回等身份认证环节,是 否存在完善的验证码机制、数据一致性校验机制、Session 和Cookie 校验机制等,是否能规避验证码绕过、暴力破解和SQL 注入等漏洞。

支持系统存在的安全风险,支持系统存在的安全风险,如用户访问控制机制是否完善,是否存在水平越权或垂直越权漏洞。系统内加密存储机制是 否完善,业务数据是否明文传输。系统使用的业务接口是否可以未授权访问或调用,是否可以调用重放、遍历,接口调用参数是否可篡改等。

业务环节间存在的安全风险,业务环节间存在的安全风险,如系统业务流程是否存在乱序,导致某个业务环节可绕过、回退,或某个业务请求可以 无限重放。业务环节间传输的数据是否有一致性校验机制,是否存在业务数据可被篡改的风险。

支持系统间存在的安全风险,如系统间数据传输是否加密、系统间传输的参数是否可篡改。系统间输入参数的过滤机 制是否完善,是否可能导致SQL 注入、XSS 跨站脚本和代码执行漏洞。

业务环节与支持系统间存在的安全风险,业务环节与支持系统间存在的风险,如数据传输是否加密、加密方式是否完善,是否采用前端加密、简单 MD5 编码等不安全的加密方式。系统处理多线程并发请求的机制是否完善,服务端逻辑与数据库读写是否存在时序问题,导致竞争条件漏洞。系统间 输入参数的过滤机制是否完善。

image-20230906111305199

2.1.6 开展测试

对前期业务流程梳理和识别出的风险点,进行有针对性的测试。

2.1.7 撰写报告

针对业务安全测试过程中发现的风险结果进行评价和建议,综合评价利用场景的风险程度和造成影响的严重程度,最终完成测试报告的编写

3、业务安全经典场景

3.1、业务数据安全

3.1.1 商品⽀付⾦额篡改

典型案例:

  • 1 毛钱买电冰箱

电商类网站在业务流程整个环节,需要对业务数据的完整性和一致性进行保护,特别是确保在用户客户端与服务端、业务系统接口之间的数据传输 的一致性,通常在订购类交易流程中,容易出现服务器端未对用户提交的业务数据进行强制校验,过度信赖客户端提交的业务数据而导致的商品金额篡 改漏洞。商品金额篡改测试,通过抓包修改业务流程中的交易金额等字段,例如在支付页面抓取请求中商品的金额字段,修改成任意数额的金额并提 交,查看能否以修改后的金额数据完成业务流程。

该项测试主要针对订单生成的过程中存在商品支付金额校验不完整而产生业务安全风险点,通常导致攻击者用实际支付远低于订单支付的金额订购 商品的业务逻辑漏洞。


在线靶场演示

地址:https://portswigger.net/web-security/all-labs

需要注册,密码系统随机给定一个复杂的密码

image-20230906114326060

image-20230906112524851

根据提示:可以使用账户wiener,密码peter登录,然后买一个夹克buy a "Lightweight l33t leather jacket".

在这里插入图片描述

使用给的账号登陆My account,登陆后发现只有$100.00

image-20230906112841768

然后在查看皮夹克的详情

在这里插入图片描述

点击Add to cartBurpSuite抓取数据包

image-20230906113236676

修改数据包,然后Forward放包

image-20230906113330244

放包后,查看购物车,提交订单

image-20230906113731391

通关

image-20230906113750826

3.1.2 前端JS 限制绕过

典型案例:

  • 绕过JS 限制,购买多个打折商品

很多商品在限制用户购买数量时,Web 应用仅在页面通过JS 脚本限制,未在服务器端校验用户提交的数量,通过抓取客户端发送的请求包修改JS 端生成处理的交易数据,如将请求中的商品数量改为大于最大数限制的值,查看能否以非正常业务交易数据完成业务流程。

该项测试主要针对电商平台由于交易限制机制不严谨、不完善而导致的一些业务逻辑问题。例如,在促销活动中限制商品购买数量,却未对数量进 行前、后端严格校验,往往被攻击者所利用,购买多个促销商品,造成商家的损失。

3.1.3 请求重放测试

典型案例:

  • 一次购买,多次收货

请求重放漏洞是电商平台业务逻辑漏洞中一种常见的由设计缺陷所引发的漏洞,通常情况下所引发的安全问题表现在商品首次购买成功后,参照订 购商品的正常流程请求,进行完全模拟正常订购业务流程的重放操作,可以实现“一次购买,多次收货” 等违背正常业务逻辑的结果。

该项测试主要针对电商平台订购兑换业务流程中对每笔交易请求的唯一性判断缺乏有效机制的业务逻辑问题,通过该项测试可以验证交易流程中随 机数、时间戳等生成机制是否正常。

3.1.4 业务上限测试

典型案例:

  • 无限制查询历史消费记录

业务上限测试主要是针对一些电商类应用程序在进行业务办理流程中,服务端没有对用户提交的查询范围、订单数量、金额等数据进行严格校验而 引发的一些业务逻辑漏洞。通常情况下,在业务流程中通过向服务端提交高于或低于预期的数据以校验服务端是否对所提交的数据做预期强校验。存在 此类脆弱性的应用程序,通常表现为查询到超出预期的信息、订购或兑换超出预期范围的商品等。

该项测试主要判断应用程序是否对业务预期范围外的业务请求做出正确回应。

3.1.5 商品订购数量篡改

典型案例:

  • damicms_5.4_网上商城任意商品购买

商品数量篡改测试是通过在业务流程中抓包修改订购商品数量等字段,如将请求中的商品数量修改成任意非预期数额、负数等进行提交,查看业务 系统能否以修改后的数量完成业务流程。

该项测试主要针对商品订购的过程中对异常交易数据处理缺乏风控机制而导致相关业务逻辑漏洞,例如针对订购中的数量、价格等缺乏判断而产生 意外的结果,往往被攻击者利用。

大米cms案例演示

来到首页之后先进行登陆

产品展示页面

image-20230906114751819

image-20230906115609594

image-20230906115652621

打开BurpSuite,提交订单

原始数据包:

image-20230906115733007

修改后数据包:

image-20230906115839313

点击Forward放包,订单提前成功

image-20230906115908852

显示订单已经付款

image-20230906115927020

查看余额

image-20230906120023139

image-20230906120150835

image-20230906120241027

再次 查看金额

image-20230906120252006

3.2、密码找回安全

  • 用户提交修改密码请求;
  • 账号认证:服务器发送唯一ID(例如短信验证码)只有账户所有者才能看的地方,完成身份验证;
  • 身份验证:用户提交验证码完成身份验证;
  • 修改密码:用户修改密码

3.2.1、验证码客户端 回显测试

典型场景:

  • 任意用户登录

使用验证码的场景:

  • 人机验证:防止机器操作,爆破表单。

  • 唯一凭据:唯一性判断,任意账户登录。

找回密码测试中要注意验证码是否会回显在响应中,有些网站程序会选择将验证码回显在响应中,来判断用户输入的验证码是否和响应中的验证码 一致,如果一致就会通过校验。

image-20230906152555589

3.2.2、验证码暴力破解

典型案例:

  • 验证码无使用次数限制

找回密码功能模块中通常会将用户凭证(一般为验证码)发送到用户自己才可以看到的手机号或者邮箱中,只要用户不泄露自己的验证码就不会被 攻击者利用,但是有些应用程序在验证码发送功能模块中验证码位数及复杂性较弱,也没有对验证码使用次数做限制而导致验证码可被暴力枚举并修改 任意用户密码。

在测试验证码是否可以被暴力枚举时,可以先将验证码多次发送给自己的账号,观察验证码是否有规律,如每次接收到的验证码为纯数字并且是4 位数。

image-20230906152643890

3.2.3、Response状态码值修改测试

Response 状态值修改测试,即修改请求的响应结果来达到密码重置的目的,存在这种漏洞的网站或者手机App 往往因为校验不严格而导致了非常 危险的重置密码操作。

这种漏洞的利用方式通常是在服务端发送某个密码重置的凭证请求后,出现特定的响应值,比如:

  • true
  • 1
  • ok
  • success
  • 200

网站看到回显内容为特定值后即修改密码或者登陆,通常这种漏洞的回显值校验是在客户端进行的,所以只需要修改服务器的响应数据包即可

image-20230906152759795

3.2.4、Session覆盖

Session ID 也叫会话ID,服务器对浏览器客户端用户身份进行唯一性标志。

找回密码逻辑漏洞测试中也会遇到参数不可控的情况,比如要修改的用户名或者绑定的手机号无法在提交参数时修改,服务端通过读取当前 session 会话来判断要修改密码的账号,这种情况下能否对session 中的内容做修改以达到任意密码重置的目的呢?

在某网站中的找回密码功能中,业务逻辑是:由用户使用手机进行密码重置,然后服务端向手机发送验证码短信,用户输入验证码提交后,进入密 码重置页面。

对网站中Session 覆盖的测试如下:

  • 打开浏览器,访问重置密码页面,并提交自己的手机号(133),同时浏览器接收Session ID;
  • 用自己的账号(手机号,133)接收凭证(短信验证码);
  • 获得凭证校验成功后,进入密码重置页面;
  • 在浏览器新标签重新打开找回密码页面,输入目标手机号(177),此时服务器就会重新下发Session ID;
  • 此时当前SessionID 已经被覆盖,重新回到第三步中打开的重置密码页面即可重置目标手机号密码。

漏洞原因:

  • 在验证码校验之后,没有及时更新Session ID,或者没有及时更新服务器端SESSION 信息。
  • SessionID 不仅要与手机号绑定,还要与验证码绑定

3.2.5、弱Token设计缺陷测试

在找回密码功能中,很多网站会向用户邮箱发送找回密码页面链接。用户只需要进入邮箱,打开找回密码邮件中的链接,就可以进入密码重置页面 了。找回密码的链接通常会加入校验参数来确认链接的有效性,通过校验参数的值与数据库生成的值是否一致来判断当前找回密码的链接是否有效

http://www.xxx.com/findpwd?uid=jaychou&token=jaychou-2018-0906-1314

上面这串链接,能看出token是由uid-年-月日-数字组成,这样的设计很不安全

在线靶场演示介绍

login_user

image-20230906153715227

点击Forgot your password?会给邮箱发送链接

image-20230906153855178

image-20230906153906930

链接如下:

https://portswigger.net/users/retrieve-password-td449832696b5dsf88526a5166bb8992br73s92f8fdcdm8f8n86f822aj8fb7183?tid=7zfPWC7QrC9YwJTXeaE8prvdj5zg-s1J6EVB-_6_BNUM0i2UMRutfw3b455sipX2

看不出链接的组成,看不出链接的规律

3.2.6 密码找回流程绕过测试

很多网站的密码找回功能一般有以下几个步骤:

  • 用户输入找回密码的账号;
  • 校验凭证:向用户发送短信验证码或者找回密码链接,用户回填验证码或单击链接进入密码重置页面, 以此方式证明当前操作用户是账号主人;
  • 校验成功进入重置密码页面(接口)

在找回密码逻辑中,第二步校验凭证最为重要。不是账号主人是无法收到校验凭证的,试想有没有办法可以绕过第二步凭证校验,直接进入第三步 重置密码呢?

用户修改密码需要向服务器发送修改密码请求,服务器通过后再修改数据库中相应的密码,所以在测试中我们首先要收集三个步骤的请求接口,重 点是收集到最后一步重置密码的接口,这样我们可以直接跳过凭证校验的接口去尝试直接重置密码

3.2.7 接⼝参数账号修改

典型案例:

  • metinfo_4.0 任意账号密码重置

找回密码功能逻辑中常常会在用户修改密码的接口提交的参数中存在传递用户账号的参数,而用户账号参数作为一个可控变量是可以被篡改的,从 而导致修改账号密码的凭证或修改的目标账号出现偏差,最终造成任意账号密码修改的漏洞。

通常在找回密码逻辑中,服务端会要求用户提供要修改的账号,然后给这个账号发送只有账号主人才能看到的凭证。比如给这个账号主人绑定的邮 箱或者手机号发送验证码,或者找回密码链接,这样可以保证只有账号主人才可以看到这些凭证。但是如果服务器对账号的控制逻辑不当,就会导致原 有账号被篡改为其他账号,服务器端把凭证发送给篡改后的账号的邮箱或手机,最终造成可利用凭证重置任意账号密码的漏洞。

接口参数账号修改流程测试为拦截前端请求,通过修改请求内的账号ID 、名称或者邮箱、手机号等参数,将修改后的数据发送给服务器进行欺骗 达到密码重置的目的。

metinfo_4.0 任意账号密码重置案例演示

下载地址

下载完环境部署

在虚拟机里访问,来到登陆界面/admin/login/login.php

使用BurpSuite拦截请求的数据包

登陆后来都首页底部,点击会员中心

在这里插入图片描述

image-20230906155156957

填写基本信息后点击·提交信息

然后在来到来到登陆界面/admin/login/login.php

使用原来的密码登陆,发现登陆不上了


分析数据包:

第一次登陆的数据包

image-20230906160645026

修改密码的数据包

image-20230906161043655

使用原密码的登陆的数据包

image-20230906161111467

提示密码错误,说明用户名是正确存在的

假如说这里用的 其他用户登陆,而不是admin账户登陆,那么就可以对修改密码的数据包进行修改,把userid换成admin

,那么就把管理员的密码给改了

相关文章:

渗透测试漏洞原理之---【业务安全】

文章目录 1、业务安全概述1.1业务安全现状1.1.1、业务逻辑漏洞1.1.2、黑客攻击目标 2、业务安全测试2.1、业务安全测试流程2.1.1、测试准备2.1.2、业务调研2.1.3、业务建模2.1.4、业务流程梳理2.1.5、业务风险点识别2.1.6 开展测试2.1.7 撰写报告 3、业务安全经典场景3.1、业务…...

CentOS查看CPU、内存、网络流量和磁盘 I/O

安装 yum install -y sysstat sar -d 1 1 rrqm/s: 每秒进行 merge 的读操作数目。即 delta(rmerge)/s wrqm/s: 每秒进行 merge 的写操作数目。即 delta(wmerge)/s r/s: 每秒完成的读 I/O 设备次数。即 delta(rio)/s w/s: 每秒完成的写 I/O 设备次数。即 delta(wio)/s rsec/s:…...

无人机航线规划

无人机航线规划,对于无人机的任务执行有着至关重要的作用,无人机在从起点飞向目的点的过程中,如何规划出一条安全路径,并且保证该路径代价最优,是无人机航线规划的主要目的。其中路径最优的含义是,在无人机…...

react中受控组件与非受控组件

受控组件与非受控组件 受控组件: 其值由 React 控制的组件,通常使用 state 来控制和修改组件的值。 例如受控的 组件: class NameForm extends React.Component {constructor(props) {super(props);this.state {value: };}handleChange (event) > {this.setState({val…...

【网络教程】如何解决Docker删除镜像和容器后磁盘空间未释放的问题

文章目录 问题分析解决方案删除未使用的容器删除未使用的镜像删除未使用的数据卷调整Docker数据存储路径问题分析 当删除Docker镜像和容器后,磁盘空间并未释放,这可能导致磁盘空间不足。造成此问题的原因包括: Docker镜像和容器的删除策略:默认情况下,Docker不会立即删除…...

Python中的进度条显示方案

迷途小书童 读完需要 3分钟 速读仅需 1 分钟 大家好,我是迷途小书童! tqdm 是一个非常常用的 Python 进度条库,它可以在循环迭代和 IO 操作期间添加一个进度条,直观地显示循环迭代的进程。 tqdm 是在 2013 年发布的,目的是为 Pyth…...

2023-09-05力扣每日一题

链接: 2605. 从两个数字数组里生成最小数字 题意: 两个数组都只包含1-9的数字,求一个最小数,两个数组内都要有它的其中一位 解: 要么是个位数要么是十位数,存一下数量和两边的最小数即可 实际代码&am…...

ODC现已开源:与开发者共创企业级的数据库协同开发工具

OceanBase 开发者中心(OceanBase Developer Center,以下简称 ODC)是一款开源的数据库开发和数据库管理协同工具,从首个版本上线距今已经发展了三年有余,ODC 逐步由一款专为 OceanBase 打造的开发者工具演进成为支持多数…...

生成克隆钓鱼网站与对win7进行后渗透操作

目录 目录 前言 系列文章列表 思维导图 1,实验涉及复现环境 2,CS的介绍 2.1,CS的简介 2.2,CS的主要功能 3,CS的安装 3.1,将cobalt_strike_4.5文件夹放到kali中 3.1,放入过程中的注意事项 3.2,如图所示 4,配置工具 4.1,进入c…...

Ubuntu18中NVIDIA,cuda,cudnn,pytorch安装

注意:nvidia驱动和cuda,cudnn,pytroch,python的对应关系 linux安装pytorch(包括cuda与cudnn)_linux清华园按照pytorch1.12_BryceRui的博客-CSDN博客 安装流程:安装cuda(包括nvidia驱动) cudnn python安装…...

MATLAB中M文件编写

简介 所谓M文件就是将处理问题的各种命令融合到一个文件中,该文件以.m为扩展名。然后,由MATLAB系统编译M文件,得出相应的运行结果。M文件具有相当大的可开发性和扩展性。M文件有脚本文件和函数文件两种。脚本文件不需要输入参数,…...

企业数字化神经网络

随着数字化时代的到来,数据已经成为企业战略性资源和重要的生产要素。企业数字化转型的核心是充分开发和利用数据资源,以数据为驱动,对业务流程进行重构与创新,从而提升企业的核心竞争力。业务系统是企业数据资源的源头&#xff0…...

C++this指针

本文旨在讲解C中this关键字,以及其相关作用! 定义 this 是 C 中的一个关键字,也是一个 const 指针,它指向当前对象,通过它可以访问当前对象的所有成员。 this的介绍 下面来看一下关于this这个关键字的实例&#xff0…...

【初阶C语言】操作符1--对二进制的操作

前言:本节内容介绍的操作符,操作的对象是二进制位。所以前面先介绍整数的二进制位 一、二进制位介绍 1.二进制介绍 (1)整数的二进制表示形式有三种:原码、反码和补码。 (2)原码、反码和补码的…...

安装pyscipopt

安装pyscipopt Conda会自动安装SCIP,因此所有内容都可以通过单个命令安装: GitHub - scipopt/PySCIPOpt: Python interface for the SCIP Optimization Suite conda create --name myenv python3.8 # 创建新环境 conda activate myenv # 激活新环境 …...

原生js实现的轮盘抽奖案例

来到大学也是有二年了,吃饭最多的地方就是在食堂,经过这么久的时间,已经几乎是把每个窗口的菜都吃腻了,所以我打算做个轮盘抽奖的形式来决定我每天要吃些什么。 目录 实现效果图: 静态搭建 js代码 1.实现此功能的思路…...

最经典的解析LSA数据库(第六课)

初步认识OSPF的大致内容(第三课)_IHOPEDREAM的博客-CSDN博客 1 OSPF 工作过程 建立领居表 同步数据库 今天来 说一说数据库概念 计算路由表 2 什么是数据库? 数据库是一个组织化的数据集合,用于存储、管理和检索数据。它是一个可访问的集合&#x…...

C++基础入门

文章目录 前言一、C历史及发展1.C是什么2.C历史 二、开始C1.基础类型1.第一个简单的C程序2.命名空间1.命名空间的介绍2.命名空间的使用3.命名空间的using声明与using指示 3.初识输入输出操作4.引用1.引用概念2.引用的使用1.引用做参数2.引用做返回值 3.引用和指针的区别4.const…...

【每日随笔】驾驭人性 ② ( 员工立场问题 | 立场转变 | 吴越同舟 | 老板如何与员工结成利益共同体 )

文章目录 一、员工立场问题二、立场转变三、吴越同舟四、老板如何与员工结成利益共同体 一、员工立场问题 人的潜力是很大的 , 肩上抗 100 斤 水泥 和 肩上抗 100 斤黄金 , 能一样吗 , 扛着黄金绝对能扛回家 ; 员工 不愿意 与公司一条心是正常的 , 员工 拿的是 死工资 , 公司赚…...

C++(QT)画图行车

通过鼠标在窗口上点击形成多个点的连线,绘制一辆汽车沿着绘制的连线轨迹前进。要求连线点数大于20.可以通过清除按钮清除已经绘制的连线,并可以重新绘制一条轨迹连线。当车辆行驶到轨迹终点时,自动停止。(汽车实在可用方块代替&am…...

Unity中Shader抓取屏幕并实现扭曲效果(优化)

文章目录 前言一、在之前顶点着色器的输入中,放弃了使用结构体传入,而是直接从应用程序阶段传入参数,这样写的话,对于程序来说,不方便扩张,所以需要对其进行修改实现1、定义结构体用于传入顶点坐标系2、因为…...

肖sir__设计测试用例方法之_(白盒测试)

白盒测试技术 一、定义: 白盒测试也叫透明盒测试,检查程序内部结构及路径一是否符合规格说明,二是否符合其代码规范。 因此,也叫结构测试或者逻辑驱动测试。 二、白盒测试常见方法: a、语句覆盖; b、判断覆…...

GoT:用大语言模型解决复杂的问题

GoT:用大语言模型解决复杂的问题 摘要介绍背景和符号表示语言模型和上下文学习Input-Output(IO)Chain of thought(CoT)Multiple CoTTree of thoughts(ToT) GoT框架推理过程思维变换聚合变换&…...

nginx服务和uwsgi服务如何设置开机自启动

上次学到了在云服务器下如何部署Django项目,用到了nginx服务和uwsgi服务,需要手工启动这2个服务的命令。 现在考虑如何设置开机自启动,为什么要这样考虑?因为服务器万一出问题,意外重启了,那我们部署的Dja…...

算法-分治算法

文章来源: https://blog.csdn.net/weixin_45630258/article/details/126425400 欢迎各位大佬指点、三连 一、分治 1、定义:分治,也就是分而治之。 它的一般步骤是: ① 将原问题分解成若干个规模较小的子问题(子问题…...

react 实现监听逻辑

需求: 在一个页面下有多个子tab在某些tab 下,或者父节点的数据更新的时候,其他子tab 或者父节点也要同步更新 进程: 正常情况下会把所有用到的数据都移动到父节点,修改行为也都放在父节点但如果这样的话父节点的数据…...

vue项目一个页面包含多个时间选择器的处理方案

描述:vue项目中如果在一个页面使用多个时间选择器组件时,不同的时间选择器需要分别分开工作 解决方案一 原本是想直接每一个时间选择器都安排一套相对独立的维生系统,但是到后面发现繁琐至极,而且报错,果断放弃&#…...

机器学习入门教学——决策树

1、简介 决策树算法是一种归纳分类算法,它通过对训练集的学习,挖掘出有用的规则,用于对新数据进行预测。决策树算法属于监督学习方法。决策树归纳的基本算法是贪心算法,自顶向下来构建决策树。 贪心算法:在每一步选择…...

文献阅读:Chain-of-Thought Prompting Elicits Reasoning in Large Language Models

文献阅读:Chain-of-Thought Prompting Elicits Reasoning in Large Language Models 1. 文章简介2. 具体方法3. 实验结果 1. 数学推理 1. 实验设计2. 实验结果3. 消解实验4. 鲁棒性考察 2. 常识推理 1. 实验设计2. 实验结果 3. 符号推理 1. 实验设计2. 实验结果 4.…...

从零开发一款ChatGPT VSCode插件

‍本文作者是360奇舞团开发工程师 引言 OpenAI发布了ChatGPT,就像是给平静许久的互联网湖面上扔了一颗重磅炸弹,刹那间所有人都在追捧学习它。究其原因,它其实是一款真正意义上的人工智能对话机器人。它使用了深度学习技术,通过大…...

广安哪里有做网站的公司/温州网站建设

常用属性和方法 Navigate(string urlString):浏览urlString表示的网址 Navigate(System.Uri url):浏览url表示的网址 Navigate(string urlString, string targetFrameName, byte[] postData, string additionalHeaders): 浏览urlString表示的网址,并发送…...

手机端尺寸/商丘seo

利用LVM管理磁盘系统 本文介绍了LVM的概念、作用以及使用方法,旨在帮助您了解LVM,并能够使用LVM对您的磁盘系统进行灵活的管理。 1. 什么是LVM LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是对磁盘分区进行管理的一种机制, LVM是建立在硬盘和分区之上的一个逻辑层,用来…...

创新的大良网站建设/网络营销师证书查询

最近开始写一些WPF的小Sample和文章,但是毕竟WPF应用程式不像Silverlight那么方便的只要装个Plugin就可以透过浏览器来看执行结果,因此把脑筋动到了改用WPF Browser Application上,虽然它是WPF,但是一样可以透过浏览器来执行&…...

重庆模板建站代理/如何在百度上发布自己的广告

一 钉钉机器人使用场景钉钉机器人是钉钉群的高级扩展功能,可以简单实现将第三方服务信息聚合到钉钉群中,实现信息的自动同步,常用场景如下:聚合Github、Gitlab等源码管理服务,实现源码更新同步;聚合Trello、…...

网站推广与营销/济南seo排名搜索

Manacher是一个 字符串算法,用于求 一个字符串中 最长的回文子串。他的时间复杂度可以达到 O(n); 除Manacher以外,字符串算法还有 BP算法、KMP算法、改进的KMP算法。 Manacher算法在思想上 和 改进的KMP算法 有相似之处,下面简要…...

成绩查询/seo研究中心官网

链接:http://acm.hdu.edu.cn/showproblem.php?pid1705 【题意】 给出平面上三个点坐标,求围成的三角形内部的点数 做这道题需要先了解下皮克定理。 百度百科:皮克定理是指一个计算点阵中顶点在格点上的多边形面积公式,该公式可以…...