Skip to content

Latest commit

 

History

History
257 lines (199 loc) · 8.22 KB

File metadata and controls

257 lines (199 loc) · 8.22 KB

Changelog

All notable changes to SQLMap GUI project.

[2025-12-13] - Database Download & UI Enhancements 📦

Added

  • 💾 Database ZIP Export - Download entire databases as compressed archives

    • Export button under each database in DB Explorer
    • Includes both JSON and CSV formats for all tables
    • Auto-generated README.txt with database metadata
    • File naming: {dbname}_{date}.zip
    • Powered by JSZip for client-side compression
  • 📄 Improved Table Pagination - Enhanced data viewing experience

    • Fixed horizontal scrolling for wide tables
    • Visible pagination controls with page numbers
    • Smart pagination with ellipsis for large datasets
    • "Showing X to Y of Z entries" counter
    • Minimum column widths for better readability

Fixed

  • 🐛 ScrollArea Conflicts - Replaced with native overflow divs
    • Fixed pagination controls being cut off
    • Improved horizontal scrolling behavior
    • Better mobile responsiveness
  • TypeScript Safety - Added null checks for database names

Technical Details

  • Added jszip dependency to webui
  • New downloadDatabaseAsZip() function in sqlmap-gui.tsx
  • CSV export with proper escaping and quote handling
  • JSON export with pretty-printing (2-space indentation)

[2025-12-13] - Complete Parsing & Display Overhaul 🔍

Fixed

  • Never show "Unknown Database" - Intelligent database name resolution with multi-tier fallback

    • Priority: explicit db field → dbms field → first discovered database → "target_database"
    • Two-pass processing ensures all data is correctly attributed
    • Smart handling of items without database assignment
  • Fixed all log parsing regexes - Now correctly captures all SQLMap output

    • Database enumeration: available databases [\d+]:
    • Table listing: Properly extracts from ASCII table format
    • Column definitions: Accurately parses with type information
    • Handles edge cases and filters invalid entries
  • Added structured API data parsing - New parseStructuredData() function

    • Parses Type 12 (database lists), Type 13 (table lists), Type 14 (column lists)
    • Converts SQLMap API JSON format to normalized structure
    • Removes backticks and cleanslashes from identifiers
    • Consistent output format matching log file parsing
  • Automatic legacy data conversion - Backward compatibility ensured

    • Detects raw API format in database (checks for type field)
    • Automatically parses and updates to new normalized format
    • Seamless migration of old scan data
  • Enhanced data merging - Smart deduplication

    • Merges parsed API data with existing database data
    • Removes duplicates while preserving all unique information
    • Prevents data loss during updates
  • Full logs always displayed - All scan output captured and shown

    • Complete log history preserved in database
    • Fallback to DB when SQLMap API unavailable
    • Real-time log updates during scan execution

Added

  • 📄 PARSING_FIXES_SUMMARY.md - Comprehensive documentation of all parsing improvements
    • Detailed explanation of data flow
    • Code examples and regex patterns
    • Testing results and verification

Technical Details

Backend Changes (backend/index.ts):

  • New parseStructuredData() function (lines 500-552)
  • Enhanced parseSqlmapLog() with fixed regexes (lines 554-677)
  • Updated /api/scan/:taskId/data endpoint with intelligent parsing (lines 747-810)

Frontend Changes (webui/src/components/sqlmap-gui.tsx):

  • Enhanced DbExplorer component with two-pass processing (lines 175-393)
  • Intelligent database name resolution algorithm
  • Better handling of all data types (databases, tables, columns, values)

[2024-12-13] - Live Database Enumeration Fix 🔄

Fixed

  • Real-time database enumeration updates - Database names now appear immediately in DB Explorer during scanning
    • Fixed closure bug in handleDbAction that prevented live data updates
    • Added real-time data fetching during database enumeration (not just on completion)
    • Improved state updates using functional setters to avoid stale closure values
    • Enhanced polling to fetch final data for terminated scans if missed
  • 🔄 Live UI updates - DB Explorer now refreshes automatically as SQLMap discovers databases
    • Data updates every 1 second during active database actions
    • No need to wait for scan completion to see enumerated databases

[2024-12-11] - WebUI Release 🎨

Added

New WebUI (Port 8080)

  • Next.js 16 modern web interface
  • 🎨 Sticky Navbar with quick actions
    • Animated logo with hover effects
    • Refresh, Console, Settings buttons
    • GitHub link
    • Version badge
  • 📑 Enhanced Tab Navigation
    • Icons for all 8 tabs
    • Active scan counter with animated badge
    • Gradient backgrounds on active tabs
    • Shadow effects and smooth transitions
    • Responsive design (mobile-friendly)
  • 🦶 Footer Component
    • Copyright and branding
    • Links to SQLMap project and docs
    • Version information
  • Framer Motion animations throughout
  • 🎭 Shadcn UI component library

Scripts & Automation

  • 🔧 run-webui.ps1 - Launch backend + WebUI
  • Automatic Port Cleanup - Kills processes on ports 3000, 5173, 8080, 8776
  • 🎯 No More Port Conflicts - Clean startup every time
  • 🚀 Beautiful Terminal Output - Professional status messages

Backend Improvements

  • SQLMap API Port Cleanup - Automatic cleanup of port 8776
  • 🔄 Better Error Handling - Improved process management
  • 📝 Enhanced Logging - More detailed startup logs

Documentation

  • 📚 README.md - Comprehensive guide (updated)
  • QUICKSTART.md - Get started in 2 minutes
  • 🎨 WEBUI_FEATURES.md - Detailed UI feature guide
  • 📋 CHANGELOG.md - This file

Changed

  • 🎨 Tab Design - From basic to professional with icons
  • 📱 Responsive Layout - Better mobile support
  • 🎯 Active Scan Badge - Now animated and more visible
  • 📦 Package Scripts - Added webui and build:webui commands
  • 🎭 Metadata - Updated page titles and descriptions

Fixed

  • 🐛 Port Conflicts - Automatic cleanup prevents "port in use" errors
  • 🐛 PC Lag - Zombie processes now cleaned automatically
  • 🐛 SQLMap API Crashes - Better process management
  • 🐛 Multiple Instance Issues - Only one instance per port

[Previous] - Original Release

Features

  • ✅ React + Vite frontend (Port 5173)
  • ✅ Express backend with Winston logging (Port 3000)
  • ✅ SQLMap API integration (Port 8776)
  • ✅ SQLite database for scan history
  • ✅ 8 functional tabs:
    • New Scan
    • Active Scans
    • Dumped Databases
    • Status
    • Vulnerabilities
    • DB Explorer
    • Logs
    • History
  • ✅ Advanced scan options
  • ✅ Real-time status updates
  • ✅ OS Shell access
  • ✅ Professional logging with rotation

Upgrade Guide

From Original to WebUI

No migration needed! Both UIs work side-by-side:

# Use new WebUI (recommended)
bun run webui

# Or use original frontend
bun run all

Both share the same backend and database!

Breaking Changes

None! All existing features work the same.

New Commands

bun run webui          # New: Backend + WebUI
bun run build:webui    # New: Build WebUI for production

Version History

Date Version Description
2024-12-11 2.0 WebUI release with navbar and enhanced tabs
2024-XX-XX 1.0 Initial release with React frontend

Future Roadmap

Planned Features

  • Dark/Light theme toggle
  • Keyboard shortcuts
  • Notification system
  • User preferences
  • Export results (JSON, CSV, PDF)
  • Scan comparison
  • Advanced filtering
  • Multi-user support
  • API key authentication
  • Scan templates
  • Scheduled scans

Under Consideration

  • Docker support
  • Cloud deployment guide
  • Mobile app
  • VS Code extension
  • Browser extension
  • Collaboration features

Contributing

See changes you'd like to make? Contributions welcome!

  1. Fork the repository
  2. Create feature branch
  3. Make changes
  4. Test with both UIs
  5. Submit pull request

Questions? Check the README.md or QUICKSTART.md