Skip to content

Commit fef897d

Browse files
committed
Adds djunch plugin guide update
1 parent b5d2799 commit fef897d

File tree

1 file changed

+88
-88
lines changed

1 file changed

+88
-88
lines changed

siddhis/djunch/djunch.yaml

Lines changed: 88 additions & 88 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)