avatar
Articles
109
Tags
10
Categories
0

Home
Archives
Tags
About
何方圜的博客
Home
Archives
Tags
About

何方圜的博客

关于solidity漏洞的基础知识
Created2024-12-06
关于solidity漏洞的基础知识精度的计算这个错误常常出现于计算过程当中,使用了先除后乘,就会导致精度的计算错误,比如 interest = principal / 3_333 * 10_000; 如果本金小于3_333,那么就会计算的利息为零如果按一下的例子计算 interest = principal * 10_000 / 3_333; 那么就不会出现这种的错误,因为使先扩大的精度,再除的话,就能避免精度的损失个人也是通过近几次的审计报告发现,大家都是很注意计算的地方 函数变量不用同一个变量声明这是我再审计报告中,第一次了解到这个问题,但是学过Java的都知道,成员变量和方法的变量冲突的话就会使用this来区分,而我们solidity没有这种说法,所以只能用不同的命名来表示,比如 address owner;function change owner(address owner) internal{ require(owner == msg.sender,"NOT CHANGE"); owner = owner;} 在这个函数 ...
codeHawks-2024-11-twentyone 审计报告
Created2024-12-04
twentyone 审计报告我自己这次犯了一个重大错误。就是没有真正的理解题目意思。导致全是找的破环游戏规则(可以任意查看手牌的错误。其实是游戏这么设定是合理的)然后这次就不放我的报告的了。因为都是public惹得祸。让我以为这次的首飞就是只有权限的问题,那就看看正确的漏洞出处 计算玩家和庄家的手牌不一致 (高)其实这个问题应该是最简单的。因为从下面代码就能显而易见 //playerHand if (cardValue == 0 || cardValue >= 10) { playerTotal += 10; } else { playerTotal += cardValue; }//dealerHand if (cardValue >= 10) { dealerTotal += 10; } else { ...
CTF-Storage
Created2024-12-02
CTF-Storeage题目代码又俩个: pragma solidity ^0.8.0;import "./StorageSlot.sol";contract Storage1 { uint256 public constant VERSION = 1; address public aaaaa; address public admin; bytes32 public constant OPERATOR_ROLE = keccak256("OPERATOR_ROLE"); mapping(address => uint256) public gasDeposits; event SendFlag(); event SetLogicContract(bytes32 key, address oldAddress, address newAddress); event DepositedGas(address account, uint256 amount); event Wit ...
CTF-LostAssert
Created2024-12-02
CTF-LostAssert这道题我感觉属于签到题了。就是分清包装代币,s代币,原生代币的关系 题目源码: //SPDX-License-Identifier:MITpragma solidity ^0.8.26;import "@openzeppelin/contracts/token/ERC20/ERC20.sol";import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";import {IERC20Permit, ERC20Permit} from "@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol";// 普通的ERC20代币contract MockWETH is ERC20("Wrapped ETH", "WETH") { event Deposit(address indexed ...
Java课程设计_数据库代码
Created2024-12-02
title: Java课程设计代码date: 2024-12-02 03:03:51tags: java数据库设计代码//创建数据库create database Student;use student;//创建学生信息表create table student( stuid1 char(20) unique comment '学号', name char(20) comment '姓名', telenumber int comment '电话号码', qqmail char(20) comment '邮箱', classnumber char (20) comment '班级')comment'学生信息表';//插入学生信息insert into student (stuid1,name,telenumber,qqmail,classnumber ) values ('2023131051' ,' ...
Java
Created2024-12-02
Java课程设计代码
Created2024-12-02
Java代码import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JPasswordField;import javax.swing.JTextField;import javax.swing.*;import java.awt.*;import java.sql.*;import java.util.List;import java.util.ArrayList;import javax.swing.table.DefaultTableModel;import org.jfree.chart.*;import org.jfree.chart.plot.*;import org.jfree.data.category.DefaultCategoryDataset;import java.io.*;import java.text.DecimalFormat;// 主类public class s ...
CTF-OwnerBuy
Created2024-11-30
CTF-OwnerBuy题目源码有很多文件。就看一个最关键的 // 0.5.1-c8a2// Enable optimizationpragma solidity ^0.5.0;import "./contracts/ERC20.sol";import "./contracts/IERC20.sol";import "./contracts/ERC20Detailed.sol";interface Changing { function isOwner(address) external returns (bool);}contract Ownable { address public _owner; address public _previousOwner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); ...
CTF-Merkle
Created2024-11-30
CTF-Merkle题目原代码: // SPDX-License-Identifier: GPL-3.0pragma solidity ^0.8.13;library MerkleProof { function verify( bytes32[] memory proof, bytes32 root, bytes32 leaf) internal pure returns (bool) { return processProof(proof, leaf) == root; } function processProof(bytes32[] memory proof, bytes32 leaf) internal pure returns (bytes32) { bytes32 computedHash = leaf; for (uint256 i = 0; i < proof.length; i++) { bytes32 proofEleme ...
CTF-SVip
Created2024-11-30
CTF-SVip首先先看题目代码 // pragma solidity 0.4.24; //这是原来的版本,很奇怪不知道为啥无法在foundry编译,所以换成以下版本pragma solidity ^0.8.13;contract SVip { // 一个地址记录一个分数 mapping(address => uint) public points; // 查看某地址是不是超级VIP mapping(address => bool) public isSuperVip; uint256 public numOfFree; // 用户成为超级VIP需要999分数 function promotionSVip() public { require(points[msg.sender] >= 999, "Sorry, you don't have enough points"); isSuperVip[msg.sender] = true; ...
1234…11
avatar
何方圜
夫孰异道而相安
Articles
109
Tags
10
Categories
0
Follow Me
Announcement
CTF的更新
Recent Post
move 学习2025-07-28
Notional Exponent 审计2025-07-28
GMX协议遭受重入攻击损失4200万美美金2025-07-11
关于OPE2025-06-19
sherlock-S-locker System2025-06-17
Tags
test CTF 协议 课程学习 Solana 审计报告 题解 基本知识 链接 攻击事件分析
Archives
  • 七月 20253
  • 六月 20257
  • 五月 20252
  • 四月 20252
  • 三月 20252
  • 十二月 202411
  • 十一月 202421
  • 十月 202439
Info
Article :
109
UV :
PV :
Last Update :
©2020 - 2025 By 何方圜
Framework Hexo|Theme Butterfly