forked from Quitten/Autorize
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathinterception_filters.py
112 lines (93 loc) · 5 KB
/
interception_filters.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
sys.path.append("..")
from javax.swing import JComboBox
from javax.swing import JLabel
from javax.swing import JPanel
from javax.swing import JList
from javax.swing import JScrollPane
from javax.swing import JTextArea
from javax.swing import JButton
from javax.swing import DefaultListModel
from java.awt import Color
from javax.swing.border import LineBorder
from helpers.filters import addFilterHelper, delFilterHelper, modFilterHelper
import re
class InterceptionFilters():
def __init__(self, extender):
self._extender = extender
def draw(self):
""" init interception filters tab
"""
self._extender.savedHeaders = [{"title": "Temporary headers", "headers": "Cookie: Insert=injected; cookie=or;\nHeader: here"}]
# IFStrings has to contains : character
IFStrings = ["Scope items only: (Content is not required)",
"URL Contains (simple string): ",
"URL Contains (regex): ",
"URL Not Contains (simple string): ",
"URL Not Contains (regex): ",
"Request Body contains (simple string): ",
"Request Body contains (regex): ",
"Request Body NOT contains (simple string): ",
"Request Body Not contains (regex): ",
"Response Body contains (simple string): ",
"Response Body contains (regex): ",
"Response Body NOT contains (simple string): ",
"Response Body Not contains (regex): ",
"Header contains: ",
"Header doesn't contain: ",
"Only HTTP methods (newline separated): ",
"Ignore HTTP methods (newline separated): ",
"Ignore spider requests: (Content is not required)",
"Ignore proxy requests: (Content is not required)",
"Ignore target requests: (Content is not required)",
"Ignore OPTIONS requests: (Content is not required)",
"Drop proxy listener ports: (Separated by comma)"
]
self._extender.IFType = JComboBox(IFStrings)
self._extender.IFType.setBounds(80, 10, 430, 30)
self._extender.IFModel = DefaultListModel()
self._extender.IFList = JList(self._extender.IFModel)
scrollIFList = JScrollPane(self._extender.IFList)
scrollIFList.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED)
scrollIFList.setBounds(80, 175, 300, 110)
scrollIFList.setBorder(LineBorder(Color.BLACK))
# Adding some default interception filters
# self.IFModel.addElement("Scope items only: (Content is not required)") # commented for better first impression.
self._extender.IFModel.addElement("URL Not Contains (regex): (\\.js|\\.css|\\.png|\\.jpg|\\.svg|\\.jpeg|\\.gif|\\.woff|\\.map|\\.bmp|\\.ico)(?![a-z]+)[?]*[\S]*$")
self._extender.IFModel.addElement("Ignore spider requests: ")
self._extender.IFText = JTextArea("", 5, 30)
scrollIFText = JScrollPane(self._extender.IFText)
scrollIFText.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED)
scrollIFText.setBounds(80, 50, 300, 110)
IFLType = JLabel("Type:")
IFLType.setBounds(10, 10, 140, 30)
IFLContent = JLabel("Content:")
IFLContent.setBounds(10, 50, 140, 30)
IFLabelList = JLabel("Filter List:")
IFLabelList.setBounds(10, 165, 140, 30)
self._extender.IFAdd = JButton("Add filter", actionPerformed=self.addIFFilter)
self._extender.IFAdd.setBounds(390, 85, 120, 30)
self._extender.IFDel = JButton("Remove filter", actionPerformed=self.delIFFilter)
self._extender.IFDel.setBounds(390, 210, 120, 30)
self._extender.IFMod = JButton("Modify filter", actionPerformed=self.modIFFilter)
self._extender.IFMod.setBounds(390, 250, 120, 30)
self._extender.filtersPnl = JPanel()
self._extender.filtersPnl.setLayout(None)
self._extender.filtersPnl.setBounds(0, 0, 1000, 1000)
self._extender.filtersPnl.add(IFLType)
self._extender.filtersPnl.add(self._extender.IFType)
self._extender.filtersPnl.add(IFLContent)
self._extender.filtersPnl.add(scrollIFText)
self._extender.filtersPnl.add(self._extender.IFAdd)
self._extender.filtersPnl.add(self._extender.IFDel)
self._extender.filtersPnl.add(self._extender.IFMod)
self._extender.filtersPnl.add(IFLabelList)
self._extender.filtersPnl.add(scrollIFList)
def addIFFilter(self, event):
addFilterHelper(self._extender.IFType, self._extender.IFModel, self._extender.IFText)
def delIFFilter(self, event):
delFilterHelper(self._extender.IFList)
def modIFFilter(self, event):
modFilterHelper(self._extender.IFList, self._extender.IFType, self._extender.IFText)