All Projects → shogunlab → Shuriken

shogunlab / Shuriken

Licence: mit
Cross-Site Scripting (XSS) command line tool for testing lists of XSS payloads on web apps.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Shuriken

Sqlmap
Automatic SQL injection and database takeover tool
Stars: ✭ 21,907 (+19116.67%)
Mutual labels:  pentesting, detection, exploitation
Commix
Automated All-in-One OS Command Injection Exploitation Tool.
Stars: ✭ 3,016 (+2545.61%)
Mutual labels:  pentesting, detection, exploitation
Fuxploider
File upload vulnerability scanner and exploitation tool.
Stars: ✭ 1,997 (+1651.75%)
Mutual labels:  pentesting, detection, exploitation
Sqli Hunter
SQLi-Hunter is a simple HTTP / HTTPS proxy server and a SQLMAP API wrapper that makes digging SQLi easy.
Stars: ✭ 340 (+198.25%)
Mutual labels:  pentesting, detection, exploitation
Fdsploit
File Inclusion & Directory Traversal fuzzing, enumeration & exploitation tool.
Stars: ✭ 199 (+74.56%)
Mutual labels:  pentesting, exploitation, web-security
Hackvault
A container repository for my public web hacks!
Stars: ✭ 1,364 (+1096.49%)
Mutual labels:  pentesting, xss, web-security
Dostoevsky Pentest Notes
Notes for taking the OSCP in 2097. Read in book form on GitBook
Stars: ✭ 495 (+334.21%)
Mutual labels:  pentesting, exploitation
Mxtract
mXtract - Memory Extractor & Analyzer
Stars: ✭ 499 (+337.72%)
Mutual labels:  pentesting, exploitation
Exploitpack
Exploit Pack -The next generation exploit framework
Stars: ✭ 728 (+538.6%)
Mutual labels:  pentesting, exploitation
V3n0m Scanner
Popular Pentesting scanner in Python3.6 for SQLi/XSS/LFI/RFI and other Vulns
Stars: ✭ 847 (+642.98%)
Mutual labels:  pentesting, xss
Ssrf vulnerable lab
This Lab contain the sample codes which are vulnerable to Server-Side Request Forgery attack
Stars: ✭ 361 (+216.67%)
Mutual labels:  exploitation, web-security
Resources For Beginner Bug Bounty Hunters
A list of resources for those interested in getting started in bug bounties
Stars: ✭ 7,185 (+6202.63%)
Mutual labels:  xss, web-security
Arissploit
Arissploit Framework is a simple framework designed to master penetration testing tools. Arissploit Framework offers simple structure, basic CLI, and useful features for learning and developing penetration testing tools.
Stars: ✭ 114 (+0%)
Mutual labels:  pentesting, exploitation
Fireelf
fireELF - Fileless Linux Malware Framework
Stars: ✭ 435 (+281.58%)
Mutual labels:  pentesting, exploitation
Sifter
Sifter aims to be a fully loaded Op Centre for Pentesters
Stars: ✭ 403 (+253.51%)
Mutual labels:  pentesting, exploitation
Xsser
Cross Site "Scripter" (aka XSSer) is an automatic -framework- to detect, exploit and report XSS vulnerabilities in web-based applications.
Stars: ✭ 606 (+431.58%)
Mutual labels:  pentesting, xss
Atscan
Advanced dork Search & Mass Exploit Scanner
Stars: ✭ 817 (+616.67%)
Mutual labels:  exploitation, xss
Pentesting toolkit
🏴‍☠️ Tools for pentesting, CTFs & wargames. 🏴‍☠️
Stars: ✭ 1,268 (+1012.28%)
Mutual labels:  pentesting, web-security
Prismatica
Responsive Command and Control System
Stars: ✭ 81 (-28.95%)
Mutual labels:  pentesting, exploitation
Winpwn
Automation for internal Windows Penetrationtest / AD-Security
Stars: ✭ 1,303 (+1042.98%)
Mutual labels:  pentesting, exploitation

Shuriken | 手裏剣

logo

python license twitter

Shuriken was developed by Shogun Lab as an open source Cross-Site Scripting (XSS) command line utility to aid web security researchers who want to test a list of XSS payloads in a web application. It allows a tester to easily change payload lists, log results and take screenshots of successful payloads.

It should only be used on valid targets who have consented to pentesting, please ensure you have permission before using this tool against a web application.

Installation

Shuriken can be installed by downloading the zip file here or by cloning the Git repository:

git clone https://github.com/shogunlab/shuriken.git

Shuriken works with Python 2.7.x on any platform.

Features

  • Easily specify where in a URL the payload should be injected with the "{xss}" string.
  • Quickly change payload lists.
  • Take screenshots of successful XSS payloads.
  • Save logs of reflected XSS payloads.
  • Use fuzzy detection to log partial XSS reflections.

Usage

To get a list of options and switches, enter:

python shuriken_xss.py -h

To test a list of payloads against a target URL, specify where the payloads will go with "{xss}" and enter:

python shuriken_xss.py -u "http://example.com/target.php?name={xss}" -p "xss-payload-list.txt"

Taking screenshots

If you would like to screenshot and save all reflected XSS payloads, use the -s or --screen flag with a name for the screenshot images and enter:

python shuriken_xss.py -s ExampleTarget -u "http://example.com/target.php?name={xss}" -p "xss-payload-list.txt"

To wait a specific amount of time in between requests, use the -t flag with the amount of time to wait in seconds and enter:

python shuriken_xss.py -t 1.5 -u "http://example.com/target.php?name={xss}" -p "xss-payload-list.txt"

Fuzzy XSS payload detection

To enable partial or fuzzy detection of XSS payloads in HTML source code, use the -f or --fuzzy flag with the level of detection you want to log. For example, the following command will only log XSS payload reflections that have a 75% matching score or above in the HTML source code returned:

python shuriken_xss.py -f 75 -u "http://example.com/target.php?name={xss}" -p "xss-payload-list.txt"

The default matching score supplied is 50% and will be applied when a flag with no number is given (e.g. -f or --fuzzy):

python shuriken_xss.py -f -u "http://example.com/target.php?name={xss}" -p "xss-payload-list.txt"

Partial detection is applied through the use of SeatGeek's FuzzyWuzzy Python library token_set_ratio() method and additional information regarding this library can be found here.

Partial XSS reflections will be logged in a separate text file ending with "_partials.txt".

Misc. usage and performance notes

You must specify a payload and URL, if you don't then you'll get an error. For an example payload to test with, check out this list of common XSS payloads.

You also must have PhantomJS installed and configured in order for the tool to run in its default mode. See the next section for more details on this.

There may be a noticeable slowdown of the tool when it is being used in a virtual machine such as VirtualBox. For best performance, use Shuriken on a native machine. I am currently looking to address this virtual machine slowdown in a future update.

Third party libraries and dependencies

This tool depends on the proper configuration and installation of the following:

  • Python 2.7.x - Python 2 is needed to run the tool.
  • Splinter - Python library allowing use of a headless web browser for testing.
  • PhantomJS - Headless WebKit browser used by Splinter for testing.
  • Selenium 2.0 - WebDriver required by PhantomJS browser.
  • FuzzyWuzzy - Partial XSS logging using fuzzy detection methods.
  • python-Levenshtein - Python extension for computing string edit distances and similarities. Allows faster fuzzy detection from the FuzzyWuzzy library.

Python dependencies can be installed using pip: pip install -r requirements.txt. Use your platform-specific mechanism to install PhatomJS (e.g. brew on OSX, apt-get on Debian or Ubuntu, etc).

If you would prefer that this tool use a different browser for testing, you can read the Splinter docs and insert your preferred browser in the "inject_payload" method where it says browser = Browser("phantomjs"). Leaving it blank as browser = Browser() will default to Firefox.

Screenshots

Basic usage screen_1

With -s or --screen option to record screenshots and -t option to delay requests by specific amount screen_2

With -f or --fuzzy option to fuzzy detect and log partial XSS payload reflections screen_3

Legal

Shuriken was derived from the excellent XSS command line tool by Faizan Ahmad, called XssPy. The Shuriken XSS tool is under an MIT license, you can read it here.

The Shuriken logo is licensed under a Creative Commons Attribution 3.0 United States License. Authored by Monjin Friends.

Be responsible and use this tool at your own discretion, I cannot be held responsible for any damages caused.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].