Skip to content
A tool that help you to guess how your shell was renamed after the server-side script of the file uploader saved it
Python
Branch: master
Clone or download
Michele Cisternino
Michele Cisternino Update README.md
Latest commit b3b733f Sep 15, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Create FUNDING.yml Aug 5, 2019
Helpers Version 0.3 Sep 14, 2019
Modules Version 0.3 Sep 14, 2019
txt Version 0.3 Sep 14, 2019
LICENSE Version 0.3 Sep 14, 2019
README.md Update README.md Sep 14, 2019
fileGPS.py Version 0.3 Sep 14, 2019

README.md


fileGPS
fileGPS

HTTP filename upload guesser

Introduction

When you upload a shell on a web-server using a file upload functionality, usually the file get renamed in various ways in order to prevent direct access to the file, RCE and file overwrite.

fileGPS is a tool that uses various techniques to find the new filename, after the server-side script renamed and saved it.

Some of the techniques used by fileGPS are:

  • Various hash of the filename
  • Various timestamps tricks
  • Filename + PHP time() up to 5 minutes before the start of the script
  • So many more

screen1

Features

  • Easy to use
  • Multithreaded
  • HTTP(s) Proxy support
  • User agent randomization
  • Over 100.000 filenames combinations

screen2

Installation

On ParrotOS:

sudo apt install filegps

On BlackArch Linux:

pacman -S filegps

On other distros:

git clone https://github.com/0blio/filegps

How to write a module

Writing a module is fairly simple and allows you to implement your custom ways of generating filename combinations.

Below is a template for your modules:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
  Module name: test
  Coded by: Your name / nickname
  Version: X.X
  
  Description:
    This module destroy the world.
"""
output = []

# Do some computations here

output = ["filename1.php", "filename2.asp", "filename3.jar"]

The variables url and filename are automatically imported from the core script, so you can call them in your module.

Once you finished to write your module, you have to save it in Modules/, and it will be automatically imported once the main script is started.

You can use the module shame as a template for your modules.

Contribute to the project

Do you want to help? Here's some ways you can do it:

  • Suggest a feature
  • Write a module
  • Report a bug

Contacts

Email: michele.cisternino@protonmail.com

Special thanks

Special thanks to Panfilo Salutari for sharing with me ideas about the project.

Thanks to Claudio Sala for the logo.

Save an hacker from starvation by making a donation

Foo

You can’t perform that action at this time.