Giter VIP home page Giter VIP logo

hakuin's People

Contributors

aquynh avatar pruzko 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

Watchers

 avatar  avatar  avatar  avatar

hakuin's Issues

Optimize extraction of non-textual columns

Hakuin currently extracts non-textual data types with binary search. This can be done more efficiently.

Int:

  • guessing
  • check if all positive
  • model the values with Gaussian distribution and set initial lower and upper bounds to -2 and +2 sigma respectively
  • dynamic

Float:

  • guessing
  • check if all positive
  • dynamic

Bytes:

  • guessing
  • dynamic just like for text, i.e., unigram/fivegram predictions

Tool on top of Hakuin - hk.py

Implement a wrapper tool hk.py that can be quickly used to call Hakuin's basic functionality without the need to write your own python scripts.

Support Unicode

Currently, Hakuin supports only ASCII extraction. Extending the implementation to include Unicode characters requires only minor changes to the extraction logic and few new queries.

Automatic DBMS fingerprinting

Hakuin now requires users to specify which DBMS engine is used by the target. This is not practical, because users have to obtain this information manually prior to extraction. Hakuin should include a set of test queries that detect the DBMS automatically.

Support extraction of advanced data types

Hakuin currently extracts texts, ints, floats, and blobs. There are, however, other (possibly DBMS-specific) data types, such as polygon, json, and more. If possible, Hakuin should cast them to text and extract them.

Support more DBMS

Hakuin currently supports only SQLite and MySQL DBMSs, but there are other popular engines.

Hakuin should support:

  • SQLite
  • MySQL
  • Oracle
  • Microsoft SQL Server
  • PostgreSQL
  • Microsoft Access
  • IBM DB2

Support concurency

Hakuin blocks on sending requests. This is not necessary. Instead, there should be multiple tasks extracting column rows independently.

Implementing this feature will require some sync code as the tasks share the same language models.

Check NULL values

Hakuin does not check NULL values before attempting to extract columns. This may lead to wrong results.

Hakuin should check NULL values in a similar fashion as it checks ASCII values, i.e., first on the column level and then on the row level.

Extract all schemas, not just the default one

It is (typically) possible to extract all schemas from vulnerable web applications, but Hakuin now only extracts the default one, the one that the application is connected to. Supporting extraction of all schemas should only require rewriting the injected queries to take the DB name into consideration. For instance, users will become dbo.users.

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.