web/Legal Snacks
🚩 #cubectf-2025 #web #2025 281 solves / 100 pts.
フラグのお店、価格が99999.99のElite Hacker Snackを購入するとフラグを獲得。所持金100
code:py
def add_to_cart():
product_id = request.form.get('product_id', type=int)
quantity = request.form.get('quantity', 1, type=int)
cart = session.get('cart', {})
cartstr(product_id) = cart.get(str(product_id), 0) + quantity
session'cart' = cart
カートへの追加処理時、quantityの値チェックがない。
code:py
def order_confirmation(id):
order = SnackOrder.query.filter_by(id=id, user_id=session'user_id').first_or_404()
if any(item.product.name == 'Elite Hacker Snack' for item in order.items):
return render_template('order_confirmation.html', order=order, flag=os.environ.get('FLAG', 'cube{lmao_flag}'))
また、購入したかどうかをチェックする場所ではカートにあるかどうかだけで購入数は確認されない。
よって、Elite Hacker Snackを0個購入し、合計価格を0よりも大きくするためOverflow Oreosを1個購入するとフラグ獲得。
cube{happy birthday!:flag_us::flag_us::flag_us::flag_us::flag_us:_c65ece2a}