Introduction
Blocks are the fundamental building blocks of IronBullet pipelines. Each block performs a specific task like making HTTP requests, parsing data, executing logic, or interacting with external services.Block Categories
IronBullet organizes 50+ block types into logical categories:Requests
Blocks that make network requests to external services.- HttpRequest: HTTP/HTTPS requests with advanced TLS fingerprinting
- TCP/UDP Requests: Raw socket communication
- FTP/SSH Requests: File transfer and remote command execution
- IMAP/SMTP/POP Requests: Email protocol operations
Parsing
Extract data from responses using various parsing methods.- ParseJSON: JSONPath queries
- ParseLR: Left-right string extraction
- ParseRegex: Regular expression matching
- ParseCSS: CSS selector queries
- ParseXPath: XPath queries
- ParseCookie: Cookie extraction
- LambdaParser: Custom JavaScript expressions
- Parse: Unified parser with multiple modes
Functions
Transform and manipulate data.- String Functions: Replace, trim, encode/decode, split
- List Functions: Join, sort, shuffle, deduplicate
- Crypto Functions: MD5, SHA, HMAC, AES encryption
- Conversion Functions: Type conversion, encoding
- Date Functions: Date formatting, arithmetic, Unix timestamps
- Float/Integer Functions: Mathematical operations
- Time Functions: Timezone conversion, duration calculations
Control Flow
Manage pipeline execution flow.- IfElse: Conditional branching
- Loop: Iterate over lists or repeat actions
- Delay: Add random or fixed delays
- CaseSwitch: Multi-case branching
- SetVariable: Store values in variables
- Script: Execute custom JavaScript code
Browser Automation
Control headless browsers for dynamic content.- BrowserOpen: Launch browser instances
- NavigateTo: Navigate to URLs
- ClickElement: Click elements via CSS selectors
- TypeText: Input text into forms
- WaitForElement: Wait for elements to appear
- GetElementText: Extract element content
- Screenshot: Capture page screenshots
- ExecuteJs: Run JavaScript in browser context
Bypass & Anti-Bot
Bypass protection systems and solve challenges.- CaptchaSolver: Solve reCAPTCHA, hCaptcha via services
- CloudflareBypass: Bypass Cloudflare challenges
- OcrCaptcha: OCR-based captcha solving
- RecaptchaInvisible: Handle invisible reCAPTCHA
- DataDomeSensor: Generate DataDome sensor data
- AkamaiV3Sensor: Encrypt/decrypt Akamai V3 payloads
- XacfSensor: Generate XACF sensor data
Protocols
Specialized protocol handlers.- TcpRequest: Raw TCP socket communication
- UdpRequest: UDP datagrams
- FtpRequest: FTP file operations (LIST, RETR, STOR)
- SshRequest: SSH command execution
- ImapRequest: IMAP email operations
- SmtpRequest: SMTP email sending
- PopRequest: POP3 email retrieval
Utilities
Helper blocks for logging, webhooks, and data generation.- Log: Output messages to console
- Webhook: Send HTTP webhooks
- WebSocket: WebSocket communication
- Plugin: Load custom plugin blocks
- RandomUserAgent: Generate realistic user agents
- RandomData: Generate random names, emails, addresses
- FileSystem: File and folder operations
Block Structure
Every block has these common properties:Unique UUID identifier for the block
The type of block (e.g.,
HttpRequest, ParseJSON)Human-readable label displayed in the UI
When
true, the block is skipped during executionWhen
true, errors in this block won’t halt the pipelineBlock-specific configuration (varies by block type)
Variable System
Blocks interact through a shared variable system:Variable Scopes
input.*: Input data from wordlist (e.g.,input.USER,input.PASS)data.*: Runtime variables set by blocks (e.g.,data.SOURCE,data.RESPONSECODE)globals.*: Global variables shared across all data entries
Common Variables
data.SOURCE: HTTP response body (default for HttpRequest)data.RESPONSECODE: HTTP status codedata.HEADERS: Response headersdata.COOKIES: Response cookiesdata.ADDRESS: Response URL after redirects
Variable Interpolation
Use angle brackets to interpolate variables in block settings:Capture Mode
Many blocks have acapture setting:
true: Store result as user-visible captured variablefalse: Store only in temporary runtime variables