某60区块链安全之JOP实战一学习记录

这篇具有很好参考价值的文章主要介绍了某60区块链安全之JOP实战一学习记录。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

区块链安全


Jump Oriented Programming实战一

实验目的

学会使用python3的web3模块
学会分析以太坊智能合约中中Jump Oriented Programming(JOP)问题
深刻理解EVM字节码
找到合约漏洞进行分析并形成利用

实验环境

Ubuntu18.04操作机

实验工具

python3

实验原理

JOP 的思想和 ROP 是相似的:串联起一个个小的代码片段(gadget),达成一定的目的。
涉及到 JOP 的是如下三个字节码:0x56 JUMP 0x57 JUMPI 0x5B JUMPDEST,在 EVM 中的无条件跳转 JUMP 和条件跳转 JUMPI 的目的地都必须是 JUMPDEST,这点和 ROP 可以任选返回地址不同。
通常需要用到 JOP 的合约在编写时都夹杂着内联汇编的后门,本实验通过jop控制程序控制流,实现特定目的。

实验内容

合约中内置了简单的JOP问题,找到合约漏洞并形成利用,触发合约的SendFlag(address addr)事件即可
使用python3的web3模块远程利用漏洞并获取flag
实验地址为nc ip 10015

Jump Oriented Programming实战一 实验步骤

获取合约地址和合约源代码
nc ip 10015连接到题目,输入1,获取部署合约的game account及token
某60区块链安全之JOP实战一学习记录,区块链,安全,学习

打开http://ip,输入上述分配的game account,点击Request获取eth

某60区块链安全之JOP实战一学习记录,区块链,安全,学习
nc ip 10015连接到题目,输入2,获取部署合约的地址及new token
某60区块链安全之JOP实战一学习记录,区块链,安全,学习

nc ip 10015连接到题目,输入4,获取合约源代码,或者在题目附件找到合约源代码
某60区块链安全之JOP实战一学习记录,区块链,安全,学习文章来源地址https://www.toymoban.com/news/detail-752398.html

分析合约源代码漏洞

pragma solidity ^0.4.23;

contract ETH15 {
   

    address private owner;
    bytes4 internal constant SET = bytes4(keccak256('fifth(uint256)'));
    event SendFlag(address addr);

    struct Func {
   
        function() internal f;
    }

    constructor() public payable {
   
        owner = msg.sender;
    }

    modifier onlyOwner {
   
        require(msg.sender == owner);
        _;
    }

    // 0x4b64e492
    function execute(address _target) public payable{
   
        require(_target.delegatecall(abi.encodeWithSelector(this.execute.selector)) == false, 'unsafe execution');

        bytes4 sel; 
        uint val;

        (sel, val) = getRet();
        require(sel == SET);

        Func memory func;
        func.f = gift;
        assembly {
    
            mstore(

到了这里,关于某60区块链安全之JOP实战一学习记录的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 某60区块链安全之Create2实战一学习记录

    学会使用python3的web3模块 学会分析以太坊智能合约Create2引发的漏洞及其利用 找到合约漏洞进行分析并形成利用 Ubuntu18.04操作机 python3 君士坦丁堡硬升级中引入了一个新操作码 CREATE2 ,它使用新的方式来计算常见的合约地址,让生成的合约地址更具有可控性 在 CREATE2 以前,

    2024年02月05日
    浏览(39)
  • 某60区块链安全之薅羊毛攻击实战二学习记录

    ` 学会使用python3的web3模块 学会分析以太坊智能合约复杂场景下薅羊毛攻击漏洞及其利用 找到合约漏洞进行分析并形成利用 Ubuntu18.04操作机 python3 薅羊毛攻击指使用多个不同的新账户来调用空投函数获得空投币并转账至攻击者账户以达到财富累计的一种攻击方式。这类攻击方

    2024年02月04日
    浏览(50)
  • 某60区块链安全之薅羊毛攻击实战一学习记录

    学会使用python3的web3模块 学会分析以太坊智能合约薅羊毛攻击漏洞 找到合约漏洞进行分析并形成利用 Ubuntu18.04操作机 python3 薅羊毛攻击指使用多个不同的新账户来调用空投函数获得空投币并转账至攻击者账户以达到财富累计的一种攻击方式。这类攻击方式较为普通且常见,只

    2024年02月04日
    浏览(42)
  • 某60区块链安全之未初始化的存储指针实战二学习记录

    学会使用python3的web3模块 学会分析以太坊智能合约未初始化的存储指针漏洞 找到合约漏洞进行分析并形成利用 Ubuntu18.04操作机 python3 在solidity语言中,像动态的数组、struct、mapping这样的复杂数据结构是不能直接在”栈”里面保存的,因为”栈”里只能保存单独的”字”,也就

    2024年02月05日
    浏览(39)
  • 某60区块链安全之未初始化的存储指针实战一学习记录

    学会使用python3的web3模块 学会分析以太坊智能合约未初始化的存储指针漏洞 找到合约漏洞进行分析并形成利用 Ubuntu18.04操作机 python3 在solidity语言中,像动态的数组、struct、mapping这样的复杂数据结构是不能直接在”栈”里面保存的,因为”栈”里只能保存单独的”字”,也就

    2024年02月03日
    浏览(42)
  • 某60区块链安全之Storage任意地址写实战学习记录

    学会使用python3的web3模块 学会分析以太坊智能合约中的Storage变量存储问题 找到合约漏洞进行分析并形成利用 Ubuntu18.04操作机 python3 EVM 中,有三个地方可以存储变量,分别是 Memory、Stack 和 Storage。Memory 和 Stack 是在执行期间临时生成的存储空间,主要负责运行时的数据存储,

    2024年02月05日
    浏览(38)
  • 某60物联网安全之IoT漏洞利用实操1学习记录

    学会使用fat模拟IoT设备固件 学会使用IDA分析设备固件内服务程序的逻辑漏洞 学会使用pwntools与IoT设备服务交互并触发漏洞 操作机:Ubuntu 20.04【用户名:user 密码:user】 qemu fat binwalk pwntools IDA pro IoT 设备中可能存在各种漏洞,总结来说,这些漏洞可以被大体划分为两大类,一

    2024年02月22日
    浏览(43)
  • [区块链安全-CTF Protocol]区块链智能合约安全实战(已完结)

    这次是尝试CTF-PROTOCOL的题目,望与诸君共勉。后面应该会参考DeFiHackLabs推出对一些列攻击的POC手写和解析,同时还要参加Hackathon。大家一起努力! 题目分析: HiddenKittyCat 合约中,核心部分为: 可以知道kitty存储的位置是由 keccak256(abi.encodePacked(block.timestamp, blockhash(block.number

    2024年02月15日
    浏览(44)
  • [区块链安全-Damn_Vulnerable_DeFi]区块链DeFi智能合约安全实战(V3.0.0)(已完结)

    很抱歉,很久没有更新了。这段时间,经历了孩子出生、出国执行项目等诸多事情,心里也比较乱,也没有思绪去完成挑战。最近总算闲下来了,不过打开一看,发现[Damn-Vulnerable-DeFi]已经执行到v3.0.0了,很多东西都发生了变化,为什么不重头做一下呢?不过这次我可能会比较

    2024年02月07日
    浏览(57)
  • 日常学习记录之容器,云服务,区块链基本概念

    云服务:Sssa, Issa,Pssa. 容器:一个容器包含了完整的运行时环境:除了应用程序以外,这个应用所需的全部依赖,类库,其他二进制文件,配置文件等,都同意被打入了一个成为容器镜像的包中。通过将应用程序本身,和其依赖容器化,操作系统发行版本和其他基础环境造成

    2024年01月20日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包