@@ -54,117 +54,117 @@ guide:
5454 ::┌┐:⠞⠓⠊⠎ ⠙⠊⠗⠑⠉⠞│⠞│⠞├⠞┌⠞┐─⠞┤ DJUNCH GUIDE ⠞⠓⠊⠎│└┘│├┤⠙⠊⠗⠑⠉⠞┌┐⠞.:└┘┌┐┘⠞
5555 ø----------------------------------------------------------------------o
5656
57- In the example below, we're starting djunch fuzzer against
58- the Django application running on http://mydjapp2.com:8887,
59- passing as scope the url.py used by the application. This
60- can be taken as a kind of gray box perspective:
57+ In the example below, we're starting djunch fuzzer against
58+ the Django application running on http://mydjapp2.com:8887,
59+ passing as scope the url.py used by the application. This
60+ can be taken as a kind of gray box perspective:
6161
62- $ vimana run \
63- --fuzzer \
64- --target mydjapp2.com \
65- --port 8887 \
66- --urlconf mydjapp2/urls.py
62+ $ vimana run \
63+ --fuzzer \
64+ --target mydjapp2.com \
65+ --port 8887 \
66+ --urlconf mydjapp2/urls.py
6767
6868 ø----------------------------------------------------------------------o
6969
70- In the following one, we're passing as scope a simple text
71- file with a list of URL patterns, enabling the fuzzer
72- debug and also informing the djunch to trigger just one
73- exception:
74-
75- $ vimana run \
76- --fuzzer \
77- --target mydjapp2.com \
78- --port 8887 \
79- --patterns urls.txt \
80- --exit-on-trigger \
81- --debug
70+ In the following one, we're passing as scope a simple text
71+ file with a list of URL patterns, enabling the fuzzer
72+ debug and also informing the djunch to trigger just one
73+ exception:
74+
75+ $ vimana run \
76+ --fuzzer \
77+ --target mydjapp2.com \
78+ --port 8887 \
79+ --patterns urls.txt \
80+ --exit-on-trigger \
81+ --debug
8282
8383 ø----------------------------------------------------------------------o
8484
85- The less personalized and straightforward way to run djunch
86- is by enabling brute force. In this way, you need to inform
87- just the target and port:
85+ The less personalized and straightforward way to run djunch
86+ is by enabling brute force. In this way, you need to inform
87+ just the target and port:
8888
89- $ vimana run \
90- --fuzzer \
91- --brute-force \
92- --target mydjapp2.com \
93- --port 8887
89+ $ vimana run \
90+ --fuzzer \
91+ --brute-force \
92+ --target mydjapp2.com \
93+ --port 8887
9494
9595 ø----------------------------------------------------------------------o
9696
9797 * Importing Djunch
9898
99- In Vimana Framework, one module can be constituted by
100- features instantiated from other modules. For example, DMT
101- (Django Misconfiguration Tracker) calls Prana, Sttinger,
102- and Djunch to fuzz the collected Django URL patterns.
103-
104- To create an instance of Djunch you need to
105- prepare a Python dictionary object containing
106- at least two mandatory parameters: `target_url`,
107- a string object containing the Django application
108- URL in the format `scheme:ip/domain:port`, like
109- "http://mydjangoapp.com:9984", and `patterns`, a Python
110- list object with the URL patterns to be used as an initial
111- scope by Djunch fuzzer. Bellow, there is an example of a
112- dictionary model used by DMT to start the fuzzing process:
113-
114- dju_input = {
115- 'fuzz_regex_flags': fuzz_regex_flags, #False/None
116- 'view_context': view_context, # False/None
117- 'raw_patterns': raw_patterns, # False/None
118- 'app_patterns': app_patterns, # False/None
119- 'patterns': list_of_patterns, # * required
120- 'target_url': 'http://mydjdash.com:8887', # * required
121- 'fingerprint': fingerprint # False/None
122- }
123-
124- Done that, you can now call Djunch like this:
125-
126- >> from siddhis.djunch.djunch import siddhi
99+ In Vimana Framework, one module can be constituted by
100+ features instantiated from other modules. For example, DMT
101+ (Django Misconfiguration Tracker) calls Prana, Sttinger,
102+ and Djunch to fuzz the collected Django URL patterns.
103+
104+ To create an instance of Djunch you need to
105+ prepare a Python dictionary object containing
106+ at least two mandatory parameters: `target_url`,
107+ a string object containing the Django application
108+ URL in the format `scheme:ip/domain:port`, like
109+ "http://mydjangoapp.com:9984", and `patterns`, a Python
110+ list object with the URL patterns to be used as an initial
111+ scope by Djunch fuzzer. Bellow, there is an example of a
112+ dictionary model used by DMT to start the fuzzing process:
113+
114+ dju_input = {
115+ 'fuzz_regex_flags': fuzz_regex_flags, #False/None
116+ 'view_context': view_context, # False/None
117+ 'raw_patterns': raw_patterns, # False/None
118+ 'app_patterns': app_patterns, # False/None
119+ 'patterns': list_of_patterns, # * required
120+ 'target_url': 'http://mydjdash.com:8887', # * required
121+ 'fingerprint': fingerprint # False/None
122+ }
123+
124+ Done that, you can now call Djunch like this:
125+
126+ >> from siddhis.djunch.djunch import siddhi
127127
128- >> fuzz = siddhi(**dju_input)
129- >> fuzz.start()
128+ >> fuzz = siddhi(**dju_input)
129+ >> fuzz.start()
130130
131131 ø----------------------------------------------------------------------o
132132
133- Djunch, at this stage, has its limitations, no doubt. On
134- the other hand, it creatively does its stuff and gives us
135- some findings. In some cases, such as DMT, the analysis
136- result will be handled by an interactive prompt where the
137- collected data will be presented in a set of contexts and
138- categories and searchable. At this point, you can also
139- run other plugins against the initial data as an automatic
140- scope with `run` command.
141-
142- The main focus of Djunch is the disruptive conditions
143- that can lead applications to leak critical and juicy
144- information to threat actors. In the case of Django
145- Applications, we're talking about unhandled exceptions,
146- generic misconfigurations, and insecure design.
147-
148- As you noticed, Djunch is not exactly looking for
149- vulnerabilities. Instead, it searches for exceptions and
150- anomaly conditions that can end up giving an attacker much
151- more than a single vulnerability, but the whole internal
152- logic, API Keys, secrets, environment variables, source
153- code, and so on.
154-
155- You can also check it out in detail with:
156- $ vimana guide -m dmt --labs
133+ Djunch, at this stage, has its limitations, no doubt. On
134+ the other hand, it creatively does its stuff and gives us
135+ some findings. In some cases, such as DMT, the analysis
136+ result will be handled by an interactive prompt where the
137+ collected data will be presented in a set of contexts and
138+ categories and searchable. At this point, you can also
139+ run other plugins against the initial data as an automatic
140+ scope with `run` command.
141+
142+ The main focus of Djunch is the disruptive conditions
143+ that can lead applications to leak critical and juicy
144+ information to threat actors. In the case of Django
145+ Applications, we're talking about unhandled exceptions,
146+ generic misconfigurations, and insecure design.
147+
148+ As you noticed, Djunch is not exactly looking for
149+ vulnerabilities. Instead, it searches for exceptions and
150+ anomaly conditions that can end up giving an attacker much
151+ more than a single vulnerability, but the whole internal
152+ logic, API Keys, secrets, environment variables, source
153+ code, and so on.
154+
155+ You can also check it out in detail with:
156+ $ vimana guide --plugin dmt --labs
157157
158158 lab_setup : |
159159 ø----------------------------------------------------------------------o
160160 │└┘=┌┐│└/└┘┌┐┌┘┌┬┐└┐┘│-└┘┌⠊⠗┌ LAB SETUP ┘└┐│└┘┌┐││⠊⠗┬│⠊⠗ └┘⠊⠗┌┐└┐⠊⠗┌│⠊
161161 ø----------------------------------------------------------------------o
162162
163- In this case, the setup is the same one recommended for DMT,
164- using a purposefully vulnerable Django application, like this
165- one provided by nVisium: https://github.com/nVisium/django.nV
163+ In this case, the setup is the same one recommended for DMT,
164+ using a purposefully vulnerable Django application, like this
165+ one provided by nVisium: https://github.com/nVisium/django.nV
166166
167- You can also check it out in detail with:
168- `vimana guide -m dmt --labs`
167+ You can also check it out in detail with:
168+ `vimana guide -m dmt --labs`
169169
170170
0 commit comments