Coder Social home page Coder Social logo

mittn's People

Contributors

anttivs avatar dependabot[bot] avatar kozmic avatar lokori avatar mathias-nyman avatar tuukkamustonen avatar ws-kimmo-helsing avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mittn's Issues

Add dependency handling

Currently there are only installation instructions under docs/. Using git subtree or docker to codify these dependencies would make testing, take-into-use and updating significantly easier than it is today.

httpfuzzer valid case collection sometimes fails

Writing collected fuzz valid cases to files for Radamsa sometimes fails with

File "/home/user/mittn/mittn/httpfuzzer/fuzzer.py", line 87, in get_fuzz
filehandle.write(bytearray(valid_string, "UTF-8"))
TypeError: encoding or errors without a string argument

Add support for OWASP ZAP

Just a suggestion ;)
But it might help your uptake as ZAP is completely free.
Note we have a fully functional API which should meet all of your needs, and if it doesnt then we'll be very happy to enhance it :)
I'll be happy to provide any help and guidance you need.
If you dont have the time to implement this yourself then perhaps we could offer it as a student project, if you're willing to advise on the mittn side?

Add python 3 support

Beware: speedbumps ahead at least in the http fuzzer's http request implementation.

Remove extra DB dependency using a DB abstraction layer

Currently, the tool requires both sqlite and postgres to be installed (or at least their respective Python libraries). The code will be refactored to use a DB abstraction layer that should enable use of any major DB, and cut away a lot of code.

Implement HTTP path fuzzer

One of the original features I did not yet get to implement is a fuzzer for URL paths. Each part of a URL path could be fuzzed and injected.

Radamsa permission

Hello, im having the next problem:

And a working Radamsa installation # ../../../../../../usr/local/lib/python2.7/dist-packages/mittn-0.0.0-py2.7.egg/mittn/httpfuzzer/steps.py:75 0.004s
Assertion Failed: Could not execute Radamsa from /home/sergio/Master/Auditoria/mittn-master/features/radamsa-master/bin: [Errno 13] Permission denied

I already gave chmod 777 permission to radamsa binary and full mittn folder

Requests sometimes rejects the fuzzed GET URI and the run fails

The requests library does not like all the fuzzer-generated URLs. This may result in a requests.exceptions.InvalidURL when sending a fuzzed GET request.

The solution would be to catch this exception and just skip that test case, or use something else than requests.

Rename authenticator cache variable

In the authentication template example, "cached_authenticator" is used for two different things: The cached Auth object, and self.cached_authenticator to hold e.g., a session token. To make it clearer, the latter should be renamed.

headless-scanner: Issues with scan states (abandoned, canceled, waiting)

The headless scanner cannot handle all scan states.

It terminates on an abandoned state (to avoid false negatives, i.e., a scan that does nothing), but this also terminates if a scan hits a host that is outside target scope. Not a problem for simple scans, but probably makes any complex Selenium tests impossible.

It also does not understand "waiting" and "cancelled" states correctly.

Hence, the scan state logic needs to be fixed.

Implement the HTTP fuzzer

Clean up the HTTP fuzzer for OSS release. Features:

  • Fuzz JSON and form submission parameters / values
  • Fuzz URI path parts
  • Static injection into JSON and form submission parameters / values
  • Auto-relogin
  • Valid case instrumentation

List of error strings to be matched causes false positives easily

Some example strings in the httpfuzzer feature file, used for matching server responses, cause a lot of false positives if the server reflects back the strings in the static injections library. A good example of these is the string "SQL".

The example strings in the example feature files should be pared down so that they don't trigger when injected content is reflected back.

Size limit specification for injectable bodies

Some load balancers drop bodies that are too large. They just close the HTTP connection resulting in a HTTP protocol error. These cases are false positives and crop up randomly in fuzzing, so it should be possible to eliminate those.

Remove Behave and give up on BDD

The BDD stuff is really mostly useless in the context of Mittn. For example, the use of Behave and Gherkin in the Burp scanning case is just syntactic sugar, which just makes you fat. BDD-Security (http://www.continuumsecurity.net/bdd-intro.html) is a more ideologically pure BDD-driven testing solution.

Many testers would just want to use whichever test runner they use now (e.g., nose) and see Mittn as a wrapper for test tools, with an interface that looks like the current Behave step library. Mittn should then be packaged to be installable with pip.

I see this is a fairly major pivot opportunity but it will also decrease dependencies and improve testability of the tool itself.

If anyone has opinions on how the tool should be:

  • packaged (remember there are non-free binary dependencies)
  • configurable
  • callable from unit/system tests,

please comment below.

Update supported SSLyze version

At the time of writing version 0.10 of sslyze is supported. Now 0.12 is released. Bump needed.

SSLyze version 0.11 introduced a backwards incompatible change to it's XML output which TLSChecker parses (https://github.com/nabla-c0d3/sslyze/releases). It also has an XML Schema now, so definitely implement that check.

Improving the dependency handling overall (issue #25) is also related, and could ease future maintenance. Also, maybe use sslyze tip-of-master instead of releases?

Use HAR format in failure case reports

Failing tests are now reported as fairly non-standard JSON blobs. An alternative would be to use HAR, a semi-standard format form HTTP request/response data. This is a low priority need and would probably be implemented using https://github.com/msabramo/pyhar but only if someone actually needs it. If you do, comment below.

Adding Support for Arachni integration

It will be certainly helpful for the people who want to follow security tests with CI tools, and without a doubt Arachni is the one of the best dynamic application testing suite on the market available and free.

I would be pleasure for me to work with you in this project also.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.