Giter VIP home page Giter VIP logo

identywaf's People

Contributors

dquitmann-op avatar heyitsmikeyv avatar kost avatar lukasikic avatar sasqwatch avatar stamparm 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

identywaf's Issues

[Suggestion] Use "Levenshtein distance" for blind signature matching

Hi there,

I really liked the idea behind this project. Kudos!

There's a thing that can come in handy while comparing signatures to the result of the test, it's called Levenshtein distance.
In simple words, it's the measure of edits required to change one string to another.

For example, The Levenshtein Distance between cat and bat is 1 because we just need to change one character to change cat into bat.
Similarly, we can calculate the Levenshtein Distance between the result and the signatures.

fuzzywuzzy module returns the similarty between two strings using this principle and it's very easy to use.

Implementation
from fuzzywuzzy import process
signatures = ["x..xxx....", "..x..xxxxx.x", "xxx....xxx", "...x...x..x."]
result = "x...x.x.x..."
process.extract(result, signatures, limit=2) # limit = top n matches

Output: [('..x..xxxxx.x', 95), ('...x...x..x.', 95)]

I would like to implement this with a PR if you like the idea.

指定文件输出

您好,请问可以指定输出文件嘛,比如说json格式的文件?

[Suggestion] Add custom headers for authenticated scan

I some webapp you can find custom headers like:
X-api-token or similar.
But to check for WAF at the moment there is no option.
This could help a lot.
I can add a PR if you like this idea, when i have some free time.
Awesome project!

Bug with python3.7.3

Hi,
I got this with my python 3.7.3, it's works well with python2

root@docker:~/toolbox/identifywaf$ python3 identYwaf.py --random-agent https://example.com                                    __ __ 
 ____  ___      ___  ____   ______ |  T  T __    __   ____  _____ 
l    j|   \    /  _]|    \ |      T|  |  ||  T__T  T /    T|   __|
 |  T |    \  /  [_ |  _  Yl_j  l_j|  ~  ||  |  |  |Y  o  ||  l_
 |  | |  D  YY    _]|  |  |  |  |  |___  ||  |  |  ||     ||   _|
 j  l |     ||   [_ |  |  |  |  |  |     ! \      / |  |  ||  ] 
|____jl_____jl_____jl__j__j  l__j  l____/   \_/\_/  l__j__jl__j  (1.0.119)

Traceback (most recent call last):
  File "identYwaf.py", line 581, in <module>
    main()
  File "identYwaf.py", line 574, in main
    init()
  File "identYwaf.py", line 362, in init
    print(colorize("[o] initializing handlers..."))
  File "/usr/lib/python3.7/codecs.py", line 378, in write
    self.stream.write(data)

TypeError: write() argument must be str, not bytes

why move flags to the beginning of the WAF_RECOGNITION_REGEX?

WAF_RECOGNITION_REGEX = "(?%s)%s" % (flags, re.sub(r"\(\?\w+\)", "", WAF_RECOGNITION_REGEX)) # patch for "DeprecationWarning: Flags not at the start of the expression" in Python3.7

i don't understand why move the flags to the beginning of the WAF_RECOGNITION_REGEX?
i just want to match a keyword that case sensitive,but if a waf regex has (?i), it will work to all regex, so why?

thanks.
best wishes for you.

about chinese waf products

You may want to add some Chinese words as a condition to recognize WAF, since many Chinese websites are only for Chinese people, they are set to display only Chinese.

like this one: aliyundun (from alibaba's aliyun)
很抱歉,由于您访问的URL有可能对网站造成安全威胁,您的访问被阻断 or ( 您的请求ID是 and ( http status=405 or title=405 )
image
image
image

"regex": "Sorry, your request has been blocked as it may cause potential threats to the server's security|//errors\\.aliyun\\.com/",

I think you might want to know this, so...~

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.