分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 网页技术

护网杯web

发布时间:2023-09-06 02:18责任编辑:苏小强关键词:暂无标签

首先进入网页后,观察到有sign up

点击sign up 进行注册

再点击sign in 进行登录

进入一个买辣条的界面,可以知道,5元可以买一包大辣条,多包大辣条可以换一包辣条之王,多包辣条之王可以换Flag

进入info查看余额,发现,至多可以买4包大辣条,不满足辣条之王的兑换

尝试条件竞争
打开burpsuit
点击大辣条的购买窗口,抓取数据

发送到Intruder,点击Positions,点击clear

点击Payloads

这里算是纠结了一下,最后想到利用条件竞争,试验发现一个账户的两个登陆同时买辣条,只会扣一次钱,却会得到两个辣条。利用burpsuite进行条件竞争:

这里多设置几个线程:


点击Option

点击Start Attack


等待一段时间后,Forward
再次查看Info,发现买的数量明显超过预期

但是这样还不够,发现辣条之王有填写兑换数,尝试整数溢出

下面考虑溢出:

int: 2**32-1 = 4294967295

long: 2**63 -1 = 9223372036854775807

longlong: 2**64-1 = 18446744073709551615

但是要注意一点,这个题的逻辑是,numer*5<最大值

所以,其临界值应该为18446744073709551615 / 5 == 3689348814741910323

于是尝试3689348814741910323+1 == 3689348814741910324

溢出后的值比较小,在辣条的数量之内,从而兑换成功。


因为最长为longlong,即存在2^64,又因为5包大辣条换一包辣条之王,故最多可换3689348814741910323包辣条之王,溢出再加一包,即为3689348814741910324包,输入后溢出,成功获得足够数量的Flag

点击兑换,得到flag

护网杯web

原文地址:https://www.cnblogs.com/qq3285862072/p/9785643.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved