【BP靶场portswigger-服务端5】业务逻辑漏洞-11个实验(全)(下)

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: 【BP靶场portswigger-服务端5】业务逻辑漏洞-11个实验(全)(下)

四、对用户行为做出错误的假设


1、简述


最常见的根本原因之一逻辑脆弱性对用户行为做出错误的假设。如果开发人员没有考虑到违反这些假设的潜在危险场景,这可能会导致各种各样的问题


2、受信任的用户并非始终值得信赖


1、信任期限:应用程序可能看起来很安全,因为它们实现了看似健壮的措施来强制执行业务规则。不幸的是,一些应用程序错误地认为,在最初通过这些严格的控制之后,用户及其数据可以无限期地受到信任。这可能导致从那时起对相同控制的执行相对宽松。


2、一致性:如果在整个应用程序中没有一致地应用业务规则和安全措施,则可能会导致潜在的危险漏洞,攻击者可能会利用这些漏洞。


3、涉及实验:

实验3:安全控制不一致


实验3:安全控制不一致


信息:

和上一题一样


part1:

先注册一个账号

e3d2e0e35a1b469ebd220c5d50c5de24.png

邮箱:


attacker@exploit-0a8f00ce0368d12cc099127a0169003c.exploit-server.net


9826f800c26048cdb4929d1d1681b6a4.png


5ef605c7304a4464b3f3eb616295dd8d.png


完成注册


75b09c446d874a3696d0496df715ca8a.png


进行登录

3d7eb826bd004b6594eb5ce48c9cff61.png


part2:


修改邮箱(后缀为@dontwannacry.com的邮箱)


57e59d74b7164fe09ca19721f2d604eb.png


part3:


完成实验

384411d47d07455aa53b875ea02e09c7.png


530dc8f7970d47609769dd483822a146.png


254261ebe8ec40c19bb63bf33928bc8e.png


3、用户并不总是提供强制输入


1、数据篡改:一个误解是用户总是为强制输入字段提供值。浏览器可能会阻止普通用户提交不需要输入的表单,但正如我们所知,攻击者可以在传输过程中篡改参数。这甚至可以扩展到完全删除参数。


2、数据间的联系:在同一个服务器端脚本中实现多个函数的情况下,这是一个特殊的问题。在这种情况下,特定参数的存在与否可以确定执行哪个代码。删除参数值可能允许攻击者访问本应无法访问的代码路径


3、寻找:当探测逻辑缺陷时,应该尝试依次删除每个参数,并观察对响应的影响


   一次只移除一个参数,确保到达所有相关的代码路径

   尝试删除参数的名称和值。服务器通常会以不同的方式处理这两种情况

   遵循多阶段流程直至完成。有时候,在一个步骤中篡改参数会影响工作流中的另一个步骤


(适用于URL和POST参数,同时检查cookie)


涉及实验:


实验7:两用终端隔离薄弱

身份认证漏洞-实验3:密码重置逻辑错误


(【bp靶场portswigger-服务端2】身份认证漏洞-16个实验(全))


实验7:两用终端隔离薄弱


权限级别设置有缺陷


已有账号:wiener/peter


part1:


登录已有账号


455f428b25794649ba5b817b4c6c11a6.png


漏洞点在于,将原密码(current-password参数)删除任然可以修改密码


对administrator密码进行重置操作

fc15991c21f24e229b6bc0d0e1b0ea14.png



删除了current-password参数


3027300c2c5f4926ab94b52b20fefd08.png


修改数据包,并关闭拦截

4d933b69ad9c4470bb4118e2f7e184bd.png



提示修改成功


4a5d040b13ab4e6eacb0cb7cf9ea1d95.png


part2:


完成实验


administrator登录


f365a8023f434c8a84e2654fc7d4910f.png


删除用户


37cebb8519fe44fc9a9810776c3aa73c.png


dcc2a3340bd74e76ab0d2cce6b80e350.png

4、用户并不总是按照预期的顺序

1、许多事务依赖于由一系列步骤组成的预定义工作流。Web界面通常会引导用户完成此过程,并在每次完成当前步骤时将他们带到工作流的下一步。但攻击者不一定会遵守这个预期的顺序。不考虑这种可能性可能会导致危险的缺陷,而这些缺陷可能相对容易利用


2、如许多实施双因素身份验证(2FA)的网站要求用户在一个页面上登录,然后在另一个页面上输入验证码。假设用户将始终遵循此过程直到完成,结果是不验证他们是否遵循此过程,可能会使攻击者完全绕过2FA步骤。


3、涉及实验:身份认证漏洞-实验2:2FA简单旁路


【bp靶场portswigger-服务端2】身份认证漏洞-16个实验(全)


4、不可预测性:即使在相同的工作流或功能中,对事件的顺序进行假设也可能导致广泛的问题。使用Burp Proxy和Repeater等工具,一旦攻击者看到请求,就可以随意重放请求,并使用强制浏览以任何顺序执行与服务器的任何交互。这允许它们在应用程序处于意外状态时完成不同的操作


5、寻找缺陷:要识别这些类型的缺陷,应该使用强制浏览来以非预期的顺序提交请求。如可能跳过某些步骤、多次访问单个步骤、返回到前面的步骤等。请注意访问不同步骤的方式。尽管通常只是向特定的URL提交GET或POST请求,但有时可以通过向同一URL提交不同的参数集来访问步骤。与所有逻辑缺陷一样,尝试确定开发人员做出了哪些假设以及攻击面在哪里。然后可以寻找违反这些假设的方法


(这种测试通常会导致异常,因为预期的变量具有空值或未初始化的值。在部分定义或不一致的状态下到达某个位置也可能导致应用程序报错。在这种情况下,务必密切注意遇到的任何错误消息或调试信息。这些都是有价值的信息公开,这可以帮助微调攻击并了解有关后端行为的关键详细信息)


6、涉及实验:


实验8:工作流程确认不充分

实验9:通过有缺陷的状态机绕过认证


实验8:工作流程确认不充分


工作流程顺序存在缺陷


已有账号:wiener:peter


part1:


登录账号

b6e9338c8402476694cfd88074fffaec.png



part2:


实现完整的购买流程(购买成功的流程)


将100以内的商品加到购物车

732eb2e81bf24b6c93a3a53db0449659.png



进入购物车,并购买

00b2135043124d3a91c2dc1bc382a62d.png

购买成功


55fbf14c7de24ba4b67fdf44ca4cc740.png


/cart是添加到购物车


21e30eead67a429caa4c8aad0e1c66f7.png

part3:


失败的购买流程


和上一步一样,但是购买的是夹克(钱不够)

dbd0a3816d4f4897984900867797f2b1.png


part4:


分析数据包


对比发现,不同的地方就是 这个地方


购买成功:
/cart/order-confirmation?order-confirmed=true
购买失败:
/cart?err=INSUFFICIENT_FUNDS

9af238e081e247b28d24579d86b4d8fd.png


part5:


将夹克添加到购物车

05cc5fe1e17b4986b341bc94ec41f989.png



重放购买成功的这个数据包


b0e1125353404be9a143c6bc3fd885d0.png


刷新页面


(发现购物车商品被购买清空)


d16ab23d072d48348a637b92a31fee7f.png


实验9:通过有缺陷的状态机绕过认证


登录过程的顺序存在缺陷


存在/admin路径


已知账号:wiener:peter


part1:


使用已有账号,完成登录的流程


f16ad89c36a54e6cb5098c7e43078669.png


选角色(随便选一个)


9f2572037712474b9d1aff9e706a6ecb.png


流程的数据包


a0160591d8ae4973b6e5f7859c79bcbb.png


part2:


漏洞点是,丢掉选角色的数据包,将以管理员身份登录


cab298e8d179436a84f7169a103624cb.png


进行重新登录,且拦截数据包


f7e8f6b39a5c4c34b61e1e9e5f75134c.png


先关闭浏览器接收请求


再丢掉数据包


(避免接收到报错页面)


0c80c1164d7544f295ab91f78f9681d2.png


part3:


完成实验


回到首页,已经有admin权限


7028b8d174a54ea990119246e2c60067.png


e6cf3821f06c49e2930ee74d7bee2ed6.png

51cee12e16ab42548137394f87a3b836.png


四、特定领域缺陷


1、简述


1、功能导向:在许多情况下,会遇到特定于业务领域或站点用途的逻辑缺陷


2、交易功能:在线商店的折扣功能是寻找逻辑缺陷的经典攻击面。对于攻击者来说,这可能是一个潜在的金矿,在折扣应用的方式中会出现各种基本的逻辑缺陷。


3、示例:一家在线商店对超过1000美元的订单提供10%的折扣。如果业务逻辑无法检查在应用折扣后订单是否发生了更改,那么这可能会被滥用。在这种情况下,攻击者只需向购物车中添加商品,直到达到1000美元的阈值,然后在下订单之前删除不想要的商品。然后,即使订单不再满足预期标准,也会收到订单折扣


4、了解算法:应该特别注意根据用户操作确定的标准调整价格或其他敏感值的任何情况。试着了解应用程序使用什么算法来进行这些调整,以及在什么时候进行这些调整。这通常涉及操纵应用程序,以使其处于所应用的调整不对应于开发人员所期望的原始标准的状态。


5、掌握业务知识:要识别这些漏洞,需要仔细考虑攻击者可能具有的目标,并尝试使用提供的功能找到实现此目标的不同方法。这可能需要一定程度的特定领域知识,以便了解在特定情况下什么可能是有利的。举个简单的例子,你需要了解社交媒体,才能理解强迫大量用户追随你的好处


————


如果没有这方面的知识,你可能会忽视危险的行为,因为你根本没有意识到它潜在的连锁反应。同样地,你可能很难把这些点连接起来,并注意到两个功能是如何以有害的方式结合在一起的


6、涉及实验:


实验4:业务规则的实施存在缺陷

实验10:无限货币逻辑缺陷


实验4:业务规则的实施存在缺陷


采购流程存在缺陷


已有账号:wiener:peter


part1:


进入靶场,还未登录就提供了一张优惠券代码


应该是优惠券叠加了


优惠券1:NEWCUST5


7179dcfa567443679ceed5a17a1c4588.png


使用已有账号登录


wiener:peter

304619005df2459aafb3b25f701b972b.png



part2:


现在考虑再注册账号,或者其他方法获得新优惠券


首页底部(注册以后会提供一个新的优惠券2)


fe660624a5a5442d8d4c4f56ae8d00ac.png


优惠券2:SIGNUP30


fb2338fddaf04cc08ca3110f03ae300a.png


part3:


优惠券叠加支付购买夹克


优惠券1:NEWCUST5


优惠券2:SIGNUP30


(添加优惠券地方)

db6228bed21148189bd57d98d819c4e9.png



如果连续两次输入相同的代码,它将被拒绝,因为优惠券已经被应用。但是,如果在这两个代码之间交替使用,则可以绕过此控制


52f17f31f50a4e6a801f6fbfee8142ff.png

bed20c197ac04acfa3efbeee4b24bf36.png


实验10:无限货币逻辑缺陷


信息:


采购流程上存在缺陷


已有账号:wiener:peter


part1:


先登录

10997b79d5574ef8891b9c44a2b5ff5e.png



漏洞点关于礼品卡


购买礼品卡


27fcc375c3174f50a43ae163b8a5386d.png


优惠券:SIGNUP30


最后10元的礼品券只用花7元


75bfe721a5684322aff8a0c5e02c6d69.png


获取到礼品卡


N2HtusPj6Z

5326c100de384af2a3ce26a42419960b.png

兑换礼品卡

c94baf343da74ca0b7504b426a8e6b47.png



然后赚了3块钱


【100-(10-3)+10】=103

534142a01c0f4d71bad036adfa02b81f.png



part2:


分析数据包


逻辑:
1、添加到购物车:POST/cart
2、优惠券:POST/cart/coupon
3、结账:POST/cart/checkout
4、清空购物车,购买成功:GET/cart/order-confirmation?order-confirmed=true
5、礼品卡:POST/gift-card

534142a01c0f4d71bad036adfa02b81f.png

aae5f6b68d8647fea55b60b53b506a8e.png

part3:


使用宏编辑器


372a61009b944d59980102212b793a1c.png


5a276219c3d14fb283849ab9a58fa5f6.png


150365b28ba943459615b4c8dd422ad5.png


207d3c1682224723a8a8ecc615d57df1.png

(这个地我配置错了一个,然后马上改过来了)


(下面这张图错了一个地方)


6372f8994ef54e14aefd008988058450.png


要取的是code那里


改正:


daa3455cd54849e48d6b30d67c4d8977.png


552691f9106c46949bcf6fecbde79217.png

32a7d32781ae42a3a34b3e4aef1f7a7f.png

b59c3971435841089c9db392697f08ba.png

36844f5794d64cb3abf1a312fa2dabe7.png


连点4个ok

264e774794cb414c912e2bdaefc162ec.png

part4:


主页数据包

4794946f161e4ac0a2b291c35449f31b.png

a8929d4d1fb74c0989e864880aede112.png


5ca6f3077d97413e8a96d6f65f5aed47.png


****提醒***


踩坑:线程一定要设置为1(后面有我多线程跑的结果)


开始攻击


86874412c4864faba266bc743eb9d74a.png


part5:


钱会自己每次多3块


刷新页面可以看见有多少钱了(钱够了就去买夹克)


fd14732069ed466ba28fbd8ac400e3f9.png


钱够了,买夹克去


cda0328529784f0b9e6cc9c6d8cc47d9.png


1d8de8a413504ef9907a98da91b143ff.png

164dc53ea744400ea2d6a1321941da9a.png


dd723fbad84d4aa89be3e915837fdd0c.png


f815746dd4c941899883574e3bea30eb.png

(多线程跑的特殊错误结果)


刷新购物车页面


6a5c5cb38193498f9b868d85ca520d76.png



8821674ddd6c45c785d7ca1562f7979f.png

去买夹克


21fcdd1904624be8af1bd1b85f5d8312.png

8cd2df18e9ec4ff1b55112e1c1ed263f.png


五、提供加密预言


1、简述


1、加密复用:当用户可控制的输入被加密并且所得到的密文然后以某种方式对用户可用时,可能发生危险的情形。这种输入有时被称为“加密预言”。攻击者可以使用此输入,通过正确的算法和非对称密钥加密任意数据


2、加密载荷转移:当应用程序中有其他用户可控制的输入需要使用相同算法加密的数据时,这就变得很危险。在这种情况下,攻击者可能会使用加密oracle生成有效的加密输入,然后将其传递给其他敏感函数


3、反向功能:如果在站点上存在提供反向功能的另一个用户可控输入,则这个问题可能会变得复杂。这将使攻击者能够解密其他数据以识别预期的结构。这为他们节省了一些创建恶意数据的工作,但不一定是成功利用漏洞所必需的


4、加密oracle的严重性取决于哪些功能也使用与oracle相同的算法。


5、涉及实验:


实验11:通过加密Oracle绕过认证


实验11:通过加密Oracle绕过认证(问题:填入的值被置空


向用户公开的加密的逻辑缺陷(漏洞是关于cookie的加密机制、评论处)


目标:删除carlos用户


已有账号:wiener:peter


part1:


漏洞是关于cookie的加密机制


使用已有账号登录,收集登录的数据包


304c9d7c022444eaa7770a4f19072d1b.png


登录请求的响应包中,返回了cookie


stay-logged-in

session


5891e428ee0f43a981b0ebd51f6efb31.png


在主页数据包只有stay-logged-in、session


说明是通过这2参数鉴别身份

12e9d226dd0846e39d878c0a05d8b3fe.png



part2:


(加密机制存在缺陷的地方:评论区)


抓取评论时候的数据包,发送到repeater


1058c5c70ff747e591cdcc9d4401e202.png


正常的评论


35ac6b05563e483490d4b231e6d3b3d5.png


当修改邮箱为错误格式的时候,会设置一个notification的值


59a258166e144829aa9bc3a20a35185f.png


part3:


拦截后修改为错误格式


并分析报错以后的数据包


328140d276ff42f8b2704d59902e470f.png


HTTP历史记录中分析

30532a53149b44d38f08d5f77dd7ead8.png



邮箱错误时设置的notification值


430fcf4330cb47de89d96a5d4733d905.png


在响应中发现notification值被解密


3f030b6f4dd24d1f91030f52f9dd75c7.png


(22222是我第二次尝试的时候改的)


fb6656226fc840c99cf24a4139dec1d9.png


part4:


遇到了问题:填入的值被置空


将登录时候产生的 stay-logged-in值复制到此处尝试解密


789e8e5072c74965bbdecb96c91d1f27.png


将stay-logged-in的值填到notification进行解密


但是我把加密的东西填到这里以后,这里的值被置空了


bc4a8bb7288c42ee95b0d2816a59e71e.png


后来尝试了一下拦截返回数据包set-cookie的值,并修改


最后还是被置空

a48b420590d7418e9885417eb9e28314.png

60bcc663a6604780a508d03815eab21f.png

7d62be979184459ab44139ed85f387fe.png

目录
相关文章
|
供应链 安全 数据安全/隐私保护
【BP靶场portswigger-服务端5】业务逻辑漏洞-11个实验(全)(上)
【BP靶场portswigger-服务端5】业务逻辑漏洞-11个实验(全)(上)
780 0
【BP靶场portswigger-服务端5】业务逻辑漏洞-11个实验(全)(上)
|
SQL Oracle 安全
【BP靶场portswigger-服务端1】SQL注入-17个实验(全)(上)
【BP靶场portswigger-服务端1】SQL注入-17个实验(全)
326 0
【BP靶场portswigger-服务端1】SQL注入-17个实验(全)(上)
|
SQL 关系型数据库 MySQL
【BP靶场portswigger-服务端1】SQL注入-17个实验(全)(下)
【BP靶场portswigger-服务端1】SQL注入-17个实验(全)(下)
381 0
【BP靶场portswigger-服务端1】SQL注入-17个实验(全)(下)
|
安全 Java Shell
BP靶场portswigger-服务端8】文件上传漏洞-7个实验(全)(上)
BP靶场portswigger-服务端8】文件上传漏洞-7个实验(全)(上)
354 0
BP靶场portswigger-服务端8】文件上传漏洞-7个实验(全)(上)
|
JSON 安全 Oracle
【bp靶场portswigger-服务端2】身份认证漏洞-16个实验(全)(上)
【bp靶场portswigger-服务端2】身份认证漏洞-16个实验(全)(上)
552 0
【bp靶场portswigger-服务端2】身份认证漏洞-16个实验(全)(上)
|
安全 前端开发 中间件
【bp靶场portswigger-服务端2】身份认证漏洞-16个实验(全)(下)
【bp靶场portswigger-服务端2】身份认证漏洞-16个实验(全)(下)
473 0
【bp靶场portswigger-服务端2】身份认证漏洞-16个实验(全)(下)
|
JSON 安全 前端开发
【BP靶场portswigger-客户端16】测试WebSockets安全漏洞-3个实验(全)
【BP靶场portswigger-客户端16】测试WebSockets安全漏洞-3个实验(全)
517 0
【BP靶场portswigger-客户端16】测试WebSockets安全漏洞-3个实验(全)
|
存储 JSON JavaScript
【BP靶场portswigger-客户端15】基于DOM的漏洞-7个实验(全)
【BP靶场portswigger-客户端15】基于DOM的漏洞-7个实验(全)
291 0
【BP靶场portswigger-客户端15】基于DOM的漏洞-7个实验(全)
|
XML SQL 数据采集
【BP靶场portswigger-服务端6】信息泄露漏洞-5个实验(全)(上)
【BP靶场portswigger-服务端6】信息泄露漏洞-5个实验(全)(上)
406 0
【BP靶场portswigger-服务端6】信息泄露漏洞-5个实验(全)(上)
|
存储 安全 关系型数据库
【BP靶场portswigger-服务端6】信息泄露漏洞-5个实验(全)(下)
【BP靶场portswigger-服务端6】信息泄露漏洞-5个实验(全)(下)
277 0
【BP靶场portswigger-服务端6】信息泄露漏洞-5个实验(全)(下)