CTF-The lost Kitty
CTF-The lost kitty题目就是Lucas在一个空间为2^256的房间丢失了一只猫,要求我们找到这只小猫,题目的源代码,如下:// SPDX-License-Identifier: MITpragma solidity ^0.8.0;
contract HiddenKittyCat { address private immutable _owner;
constructor() { _owner = msg.sender; bytes32 slot = keccak256(abi.encodePacked(block.timestamp, blockhash(block.number - 69)));
assembly { sstore(slot, “KittyCat!”) } }
function areYouHidingHere(bytes32 slot) external view returns (bool) { ...
CTF-Creativity
CTF-Creativity题目:要求调用sendFlag(),记录事件源代码:
pragma solidity ^0.5.10;contract Creativity { event SendFlag(address addr); address public target; uint randomNumber = 0; function check(address _addr) public { uint size; assembly { size := extcodesize(_addr) } require(size > 0 && size <= 4); target = _addr; } function execute() public { require(target != address(0)); target.delegatecall(ab ...
20241005AIZPTToken攻击事件分析
AIZPTToken攻击事件分析先大概描述一下:攻击者使用闪电贷借的钱,然后再购买了价值8000 BNB的AIPTToken,然后再以高价卖出,从中得到利润,还清借款,最终获得价值34BNB(约俩万美金)。
这是发生在最近的攻击,首先攻击者发现了这个AIZPTToken代币买卖的计算错误,下面是截取的AIZPTToken合约中的一段代码
function buy() internal { require(tradingEnable, 'Trading not enable'); uint256 swapValue = msg.value; uint256 token_amount = (swapValue * _balances[address(this)]) / (address(this).balance); require(token_amount > 0, 'Buy amount too low'); uint256 user_amount = token_amount * 50 / 100; ui ...
智能合约的漏洞
智能合约的漏洞重入攻击 重入漏洞本质上是状态同步问题,当智能合约调用外部函数时,执行流会转移到被调用的合约,如果调用合约未能正确同步状态,则在流程转移过程中可能会被重新进入,导致重复执行相同的代码逻辑。具体来说,攻击通常分两个步骤展开:1,被攻击合约调用攻击合约的外部函数,并转移执行流程。2,在攻击合约函数内部,利用一定的技巧,再次调用被攻击合约的漏洞函数。由于以太坊虚拟机 (EVM) 是单线程的,因此在重新进入易受攻击的函数时,合约状态不会正确更新,类似于初始调用。这允许攻击者重复执行某些代码逻辑,从而实现意外行为。典型的攻击模式涉及多次重复的资金提取。
举例以修改后的WETH为例
contract EtherStore { mapping(address => uint256) public balances; function deposit() public payable { balances[msg.sender] += msg.value; } function withdraw() public ...
抢先交易攻击
抢先交易攻击交易抢跑漏洞描述:交易抢跑是指攻击者在看到某个交易即将被矿工打包到区块中时,通过提高gas费迅速提交自己的交易,使其在原交易之前被打包。
举例:1.用户在去中心化交易所(如Uniswap)上提交一笔交易,希望以较低价格购买某种代币。2.攻击者看到这一交易后,立即提交一笔相同的交易,但设置更高的交易费用(gas price),使其交易优先被处理。3.结果,攻击者以较低价格获得代币,随后再以高价出售,获取利润。
价格抢跑漏洞描述:价格抢跑发生在用户的交易影响了某个资产的价格,而攻击者在价格变动前迅速提交交易,从中获利。举例:1.在某个拍卖合约中,用户提交了一个出价,导致价格上涨。2.攻击者注意到这一变化,并在用户出价被确认之前,提交自己的出价。3.攻击者以更低的价格赢得拍卖,获取资产。
状态抢跑漏洞描述:状态抢跑是指攻击者通过观察合约的状态变化,利用这些信息进行有利的交易。举例:1.一个合约的状态更新为可以提取奖励,用户提取前,攻击者监测到这个状态变化,立即提交提取请求。2.这样,攻击者可以在用户提取奖励之前获取更多的奖励。
交易插队漏洞描述:交易插队是指攻击者通过提交多个交易 ...
捐款攻击
捐款攻击该协议是否依赖于balance或者balanceof,而不是内部会计漏洞描述 在以太坊网络上,任何地址的余额(无论是以太币还是代币)都可以通过address(this).balance 或token.balanceof(address)查询。然而,外部账户的余额可以被外部操作(如其他合约调用、用户转账等)影响。依赖于外部状态(即余额)可能导致合约的内部逻辑失去一致性,因为外部账户的状态在合约运行期间是不可预测的。
举例 首位存款人可以中断股份的锻造,如果总资产通过大量捐款被操纵,用户可能无法获得其存款的股份,攻击者操纵依赖于balanceof确定总资产金额并阻止其他用户通过存款换取股份
拒绝服务攻击(DOS)
拒绝服务(DOS)攻击未设定gas费率的外部调用 在以太坊中,每一笔交易都会携带一定数量的Gas,这是为了确保任何执行的操作都不会消耗过多的计算资源,从而避免网络拥堵或资源耗尽。当一笔交易开始执行时,它会从交易者提供的Gas总量中扣除费用,直到合约执行完成或Gas耗尽。如果在执行过程中Gas耗尽,那么交易将被回滚,且已经消耗的Gas不会退还给用户。
漏洞分析: 1, 攻击者可以通过构造高复杂度的交易或智能合约来故意消耗大量的Gas,从而正常交易无法被包含在区块中。例如,攻击者可以创建一个合约,该合约在接收到消息时执行大量计算或存储操作,消耗接近最大Gas限额的Gas量。当许多这样的交易被同时发送到网络时,它们会占据大部分甚至全部的Gas容量,导致其他用户的正常交易无法被确认,从而达到拒绝服务的效果。 2,使智能合约进入无限循环,这将导致Gas立即耗尽,交易失败并回滚。这种攻击通常发生在合约逻辑中存在错误的情况下,例如没有正确处理循环退出条件,或在递归调用中缺少终止条件。当合约进入无限循环时,它会尝试消耗所有可用的Gas,最终导致交易失败,并可能使合约处于不可用状态。
解决方法: ...
20240508 BSC攻击事件分析
BSC攻击事件分析这是一起发生在2024年5月8日币安智能链(BSC)上的闪贷攻击事件,影响的是GPU代币合约。该合约存在自转账漏洞,每次自转账都会导致资产翻倍。黑客利用该漏洞,通过DODO协议以闪贷的方式借入BUSD,在PancakeSwap上兑换成GPU代币,再利用漏洞进行多次自转账,导致其GPU代币余额增加了100亿倍,达到28,070,259,409,924枚代币。最后,黑客将GPU代币卖出换成BUSD,用于偿还闪贷本息,最终窃取约3.2万美元资金。
首先攻击者从DODO借贷协议中发起闪电贷,借出BUSD到攻击合约地址,攻击者合约在调用PancakeSwap协议,将借出的BUSD兑换成GPU代币,利用自我转账漏洞,凭空产生CPU代币,攻击者合约自己给自己转账,每转账一次,GPU资产就会翻倍,攻击者合约将获取到的GPU代币发送到PancakeSwap V2协议中,换取BUSD。然后攻击者从PancakeSwap V2协议中获取的BUSD,将其中的一部分用于返还DODO借贷协议的本金和利息,剩下的都是攻击者所获得的。
完整的调用信息看这里
下面是DODO协议中借贷协议中的借贷函数f ...
web3学习知识
最近又发现一个学习网站,正好趁着国庆假期,再把知识又巩固一遍,就写了这篇学习学习笔记记录一下
含义以前我们的信息都集中在一个软件上,这造成了,我们的信息就会被泄露,就比如2018年Facebook-剑桥分析公司数据泄露丑闻,数百万Facebook用户的个人信息被不当收集并用于影响政治选举,这就是数据集中控制的风险和后果
那么web3就出现了,它是建立在区块链技术上的下一代互联网,它强调权力下放,这就意味着没有集中的权威机构来管理数据和资源
在web3的世界里,用户拥有自己创立的内容和数据,摆脱了对传统中心化平台的依赖,由此web3也促进了新的商业模式,例如:去中性化金融(DeFi) 非同质化代币(NFT) 去中性化自治组织(DAO)
它的发展来看:从Web1.0时代的静态网页,到Web2.0的社交互动,再到Web3.0的去中心化智能网络
Web3 各赛道百花齐放,共同构建一个去中心化、透明化、创新化的数字生态。去中心化金融(DeFi)消除了中介机构,实现了开放式的金融交易和服务;非同质化代币(NFT)赋予了数字资产唯一性和价值;去中心化自治组织(DAO)促进了集体决策和公平管理; ...
CCF区块链技术与应用创新竞赛
参赛队伍最多4人,需要一名指导老师报名时间:截止到2024年9月30号提交作品:截止到2023年10月31号 网址https://btc.ccf.org.cn