USDT第三方支付API接口

菜宝钱包(caibao.it)是使用TRC-20协议的Usdt第三方支付平台,Usdt收款平台、Usdt自动充提平台、usdt跑分平台。免费提供入金通道、Usdt钱包支付接口、Usdt自动充值接口、Usdt无需实名寄售回收。菜宝Usdt钱包一键生成Usdt钱包、一键调用API接口、一键无实名出售Usdt。

前言

近年来,各个大型CTF(Capture The Flag,中文一样平常译作夺旗赛,在网络安全领域中指的是网络安全手艺人员之间举行手艺竞技的一种竞赛形式)竞赛中都有了区块链攻防的身影,而且泛起的问题绝大多数都是区块链智能合约攻防。此系列文章我们主要以智能合约攻防为中央,来剖析智能合约攻防的要点,前两篇我们分享了合约反编译,反汇编的基础内容。后续的文章中,我们会继续分享CTF竞赛中智能合约常见题型(重入,整数溢出,空投,随机数可控等)及解题思绪,信赖会给读者带来不一样的收获。

上篇文章中我们分享了CTF竞赛中常考的整数溢出破绽题型,其中用到了变量笼罩等多种攻击技巧,需要读者仔细推敲。本篇文章我们继续分享CTF竞赛中的空投题型,也就是薅羊毛。在系列文章整数溢出题型中,也用到了空投,但只是挪用一次空投到达触发其他破绽的判断条件,并没有举行批量获取空投。

本篇我们以2020年NSSC CTF上skybank问题为例,分享智能合约薅羊毛的题型,该题型也是多次泛起在CTF的赛场。相对于之前的系列文章内容,本篇薅羊毛题型更容易明白。

问题地址:https://ropsten.etherscan.io/address/0xe6bebc078bf01c06d80b39e0bb654f70c7b0c273,code

,

Usdt第三方支付接口

菜宝钱包(caibao.it)是使用TRC-20协议的Usdt第三方支付平台,Usdt收款平台、Usdt自动充提平台、usdt跑分平台。免费提供入金通道、Usdt钱包支付接口、Usdt自动充值接口、Usdt无需实名寄售回收。菜宝Usdt钱包一键生成Usdt钱包、一键调用API接口、一键无实名出售Usdt。

,

问题剖析

问题提醒
  • 原始合约的opcode需举行反编译;
  • 空投及最终判断函数分别为gether()和ObtainFlag();
  • 触发ObtainFlag()函数事宜event则攻击乐成;
  • 需给合约提供资金。
合约源码

查看合约问题,合约存在0.62ether,没有给出合约源码,如下图:

由于拿到问题后只有合约的opcode,以是需要举行逆向,这里我们推荐Online Solidity Decompiler在线网站(https://ethervm.io/decompile),详细逆向时的源码还原我们不再赘述,需要学习的同砚可移步系列文章[反编译篇](http://mp.weixin.qq.com/s?__biz=MzU1OTc2MzE2Mg==&mid=2247485572&idx=1&sn=d3a985c38b531785127f9eb7920debab&chksm=fc131331cb649a274188e80f22b1ba5f81dbb5bc0a444ade4322c5c1fb96ebc469902b015c7f&scene=21,wechat_redirect),[反汇编篇](http://mp.weixin.qq.com/s?__biz=MzU1OTc2MzE2Mg==&mid=2247485578&idx=1&sn=6200ec07f9098d4e705f8740d0c5406d&chksm=fc13133fcb649a291181f993bbebbb5e45c28908a1a1462b0ca27c0f0f197a96865cb1034f66&scene=21,wechat_redirect)。

以下为逆向后的合约代码:

pragma solidity ^0.4.24;

contract skybank{

    mapping(address => uint) public balances;
    event sendflag(string base64email,string md5namectf);
    bytes20 addr = bytes20(msg.sender);

    function ObtainFlag(string base64email,string md5namectf){
        require(balances[msg.sender] >= 1000000000);
        emit sendflag(base64email,md5namectf);
    }

    function gether() public {
        require(balances[msg.sender] == 0);
        balances[msg.sender] += 10000000;
    }


    function Transfer(address to, uint bur) public {
        require(bur == balances[msg.sender]);
        balances[to] += bur;
        balances[msg.sender] -= bur;
    }
}
合约剖析

先来看问题最终的判断函数ObtainFlag():

function ObtainFlag(string base64email,string md5namectf){
    require(balances[msg.sender] >= 1000000000);
登录并阅读全文 Allbet Gaming声明:该文看法仅代表作者自己,与本平台无关。转载请注明:usdt无需实名(www.caibao.it):零时科技丨CTF技术宝典之智能合约#薅羊毛破绽
发布评论

分享到:

baccarat:20岁少女频仍腹泻,查出肠癌晚期,医生:这类食物惹的祸
2 条回复
  1. 以太坊开奖
    以太坊开奖
    (2021-02-13 00:08:45) 1#

    【烹饪食材】:剩米饭1碗、鸡蛋1个、生抽1勺。老抽半勺、盐适量、鸡精适量、糖适量、小葱花适量、食用油适量啦啦啦,我来看啦~

  2. 皇冠新现金网
    皇冠新现金网
    (2021-02-22 00:16:38) 2#

    皇冠足球appwww.huangguan.us是一个提供皇冠代理APP下载、皇冠会员APP下载、皇冠体育最新登录线路、新2皇冠网址的的体育平台。新皇冠体育官网是多年来值得广大客户信赖的平台,我们期待您的到来!大家多多评论呀

发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。