Welcome to My Blog KYXRECON Plus+ , My blog is database of Tool's Hacking & all stuff security things & great recource for beginner's & professionals too . . our admins aim collecting exploit's & tools and posting hacking security tutorials & concentrate them in one easy navigate on this database This site written by Kyxrecon .Use it at your own risk. And i am not responsible for any damage /// My Hacking Service Price List -> pastebin.com/raw/3kTqdK0T
[!] tor blog is down -> http://kyxroj5ziov3ic7.onion

PyJFuzz - Python JSON Fuzzer


PyJFuzz is a small, extensible and ready-to-use framework used to fuzz JSON inputs , such as mobile endpoint REST API, JSON implementation, Browsers, cli executable and much more. 
Version1.1.0
Homepagehttp://www.mseclab.com/
Githubhttps://github.com/mseclab/PyJFuzz
AuthorDaniele Linguaglossa @dzonerzy )
LicenseMIT - (see LICENSE file)

Installation 
Dependencies 
In order to work PyJFuzz need a single dependency, bottle , you can install it from automatic setup.py installation. 
Installation 
You can install PyJFuzz with the following command 


git clone https://github.com/mseclab/PyJFuzz.git && cd PyJFuzz && sudo python setup.py install


Documentation and Examples 
CLI tool 
Once installed PyJFuzz will create both a python library and a command-line utility called pjf (screenshot below) 

Library 
PyJFuzz could also work as a library, you can import in your project like following 
from pyjfuzz.lib import *
Classes 
The available object/class are the following: 
  • PJFServer - User to start and stop built-in HTTP and HTTPS servers
  • PJFProcessMonitor - Used to monitor process crash, it will automatically restart proccess each time it crash
  • PJFTestcaseServer - The testcase server is used in conjunction with PJFProcessMonitor, whenever a process crash the testcase server will register and store the JSON which cause the crash
  • PJFFactory - It's the main object used to do the real fuzz of JSON objects
  • PJFConfiguration - It's the configuration file for each of the available objects
  • PJFExternalFuzzer - Used by PJFactory is a auxiliary class which provide an interface to other command line fuzzer such as radamsa
  • PJFMutation - Used by PJFFactory provide all the mutation used during fuzzing session
  • PJFExecutor - Provides an interface to interact with external process


Examples 
Below some trivial example of how-to implement PyJFuzz powered program 
simple_fuzzer.py 
from argparse import Namespace
from pyjfuzz.lib import *

config = PJFConfiguration(Namespace(json={"test": ["1", 2, True]}, nologo=True, level=6))
fuzzer = PJFFactory(config)
while True:
    print fuzzer.fuzzed
simple_server.py 
from argparse import Namespace
from pyjfuzz.lib import *

config = PJFConfiguration(Namespace(json={"test": ["1", 2, True]}, nologo=True, level=6, debug=True, indent=True))
PJFServer(config).run()
Sometimes you may need to modify standard non customizable settings such as HTTPS or HTTP server port, this can be done in the following way 
from argparse import Namespace
from pyjfuzz.lib import *

config = PJFConfiguration(Namespace(json={"test": ["1", 2, True]}, nologo=True, level=6, indent=True))
print config.ports["servers"]["HTTP_PORT"]   # 8080
print config.ports["servers"]["HTTPS_PORT"]  # 8443
print config.ports["servers"]["TCASE_PORT"]  # 8888
config.ports["servers"]["HTTPS_PORT"] = 443  # Change HTTPS port to 443
Remember When changing default ports, you should always handle exception due to needed privileges! 
Below a comprehensive list of all available settings / customization of PJFConfiguration object: 
Configuration table 
NameTypeDescription
jsondictJSON object to fuzz
json_filestrPath to a JSON file
parameterslist<str>List of parameters to fuzz (taken from JSON object)
techniqueslist<int>List of polyglot attack, used to generate fuzzed JSON, such as XSS, LFI etc. They are in the range 0-13 (Look techniques table )
levelintFuzzing level in the range 0-6
utf8boolIf true switch from unicode encode to pure byte representation
indentboolSet whenever to indent the result object
url_encodeboolSet whenever to URLEncode the result object
strong_fuzzboolSet whenever to use strong fuzzing (strong fuzzing will not maintain JSON structure, usefull for parser fuzzing)
debugboolSet whenever to enable debug prints
excludeboolExclude from fuzzing parameters selected by parameters option
notifyboolSet whenever to notify process monitor when a crash occurs only used with PJFServer
htmlstrPath to an HTML directory to serve within PJFServer
ext_fuzzboolSet whenever to use binary from "command" as an externale fuzzer
cmd_fuzzboolSet whenever to use binary from "command" as fuzzer target
content_typestrSet the content type result of PJFServer (default application/json )
commandlist<str>Command to execute each paramester is a list element, you could use shlex.split from python
Techniques table 
IndexDescription
0XSS injection (Polyglot)
1SQL injection (Polyglot)
2LFI attack
3SQL injection polyglot (2)
4XSS injection (Polyglot) (2)
5RCE injection (Polyglot)
6LFI attack (2)
7Data URI attack
8LFI and HREF attack
9Header injection
10RCE injection (Polyglot) (2)
11Generic templace injection
12Flask template injection
13Random character attack

Screenshots 
Below some screenshot just to let you know what you should expect from PyJFuzz





1 comments:

Rajinder said...

1337x unblocked

Post a Comment

CHATBOX



Cont@ct

Name

Email *

Message *