1- # websecprobe/websecprobe/cli.py
2-
31import argparse
42import requests
53import json
@@ -27,8 +25,20 @@ def send_request(self, payload):
2725 full_url = f"{ self .url } /{ payload } "
2826 response = requests .get (full_url ) # Remove verify=False to enable SSL certificate verification
2927 status_code = response .status_code
28+ colored_code = self .color_status_code (status_code ) # Added this line to colorize status codes
3029 content_length = len (response .content )
31- self .results .append ([full_url , status_code , content_length ])
30+ self .results .append ([full_url , colored_code , content_length ])
31+
32+ def color_status_code (self , code ):
33+ if code >= 200 and code < 300 :
34+ return f'\033 [32m{ code } \033 [0m' # Green
35+ elif code >= 300 and code < 400 :
36+ return f'\033 [33m{ code } \033 [0m' # Yellow
37+ elif code >= 400 and code < 500 :
38+ return f'\033 [31m{ code } \033 [0m' # Red
39+ else :
40+ return f'\033 [35m{ code } \033 [0m' # Magenta
41+
3242
3343 def run (self ):
3444 # Validate the URL
@@ -65,7 +75,7 @@ def run(self):
6575 f"-H X-Host: { self .path } 127.0.0.1" ,
6676 f"{ self .path } ..;/" ,
6777 f" { self .path } ;/" ,
68- f"{ self .path } /path" , #new payloads from here
78+ f"{ self .path } /path" ,
6979 f"{ self .path } %2Fpath" ,
7080 f"{ self .path } %252Fpath" ,
7181 f"{ self .path } /path;parameter" ,
@@ -74,7 +84,106 @@ def run(self):
7484 f"{ self .path } %u002Fpath" ,
7585 f"{ self .path } %252E" ,
7686 f"{ self .path } %00{ self .path } " ,
77- f"{ self .path } /path%2Ehtml"
87+ f"{ self .path } /path%2Ehtml" ,
88+ # New payloads
89+ f"{ self .path } /?" ,
90+ f"{ self .path } //" ,
91+ f"{ self .path } ??" ,
92+ f"{ self .path } ??/" ,
93+ f"{ self .path } ..;" ,
94+ f"{ self .path } %23" ,
95+ f"{ self .path } %26" ,
96+ f"{ self .path } /~" ,
97+ f"{ self .path } /%7E" ,
98+ f"{ self .path } /%C0%AF" ,
99+ f"{ self .path } /%C0%AE" ,
100+ f"{ self .path } /%252E%252E/" ,
101+ f"{ self .path } /%252F" ,
102+ f"{ self .path } /%255C" ,
103+ f"{ self .path } %3f" ,
104+ f"{ self .path } %3F" ,
105+ f"{ self .path } /%252e/" ,
106+ f"{ self .path } /%252e%252e/" ,
107+ f"{ self .path } /%252f" ,
108+ f"{ self .path } /%2e/" ,
109+ f"{ self .path } /%2e%2e/" ,
110+ f"{ self .path } /%2f" ,
111+ f"{ self .path } /%09" ,
112+ f"{ self .path } /%09/" ,
113+ f"{ self .path } /%0A" ,
114+ f"{ self .path } /%0A/" ,
115+ f"{ self .path } /%0D" ,
116+ f"{ self .path } /%0D/" ,
117+ f"{ self .path } /%0C" ,
118+ f"{ self .path } /%0C/" ,
119+ f"{ self .path } /.json" ,
120+ f"{ self .path } /.json/" ,
121+ f"{ self .path } /.xml" ,
122+ f"{ self .path } /.xml/" ,
123+ f"{ self .path } /.html" ,
124+ f"{ self .path } /.html/" ,
125+ f"{ self .path } /.php" ,
126+ f"{ self .path } /.php/" ,
127+ f"{ self .path } /.asp" ,
128+ f"{ self .path } /.asp/" ,
129+ f"{ self .path } /.aspx" ,
130+ f"{ self .path } /.aspx/" ,
131+ f"{ self .path } /.cgi" ,
132+ f"{ self .path } /.cgi/" ,
133+ f"{ self .path } /.jsp" ,
134+ f"{ self .path } /.jsp/" ,
135+ f"{ self .path } /.exe" ,
136+ f"{ self .path } /.exe/" ,
137+ f"{ self .path } /.dll" ,
138+ f"{ self .path } /.dll/" ,
139+ f"{ self .path } /.bat" ,
140+ f"{ self .path } /.bat/" ,
141+ f"{ self .path } /.bin" ,
142+ f"{ self .path } /.bin/" ,
143+ f"{ self .path } /.phtml" ,
144+ f"{ self .path } /.phtml/" ,
145+ f"{ self .path } /.htaccess" ,
146+ f"{ self .path } /.htaccess/" ,
147+ f"{ self .path } /.htpasswd" ,
148+ f"{ self .path } /.htpasswd/" ,
149+ f"{ self .path } /web.config" ,
150+ f"{ self .path } /web.config/" ,
151+ f"{ self .path } /robots.txt" ,
152+ f"{ self .path } /robots.txt/" ,
153+ f"{ self .path } /admin" ,
154+ f"{ self .path } /admin/" ,
155+ f"{ self .path } /administrator" ,
156+ f"{ self .path } /administrator/" ,
157+ f"{ self .path } /login" ,
158+ f"{ self .path } /login/" ,
159+ f"{ self .path } /wp-admin" ,
160+ f"{ self .path } /wp-admin/" ,
161+ f"{ self .path } /wp-login" ,
162+ f"{ self .path } /wp-login/" ,
163+ f"{ self .path } /config" ,
164+ f"{ self .path } /config/" ,
165+ f"{ self .path } /.git" ,
166+ f"{ self .path } /.git/" ,
167+ f"{ self .path } /.svn" ,
168+ f"{ self .path } /.svn/" ,
169+ f"{ self .path } /.hg" ,
170+ f"{ self .path } /.hg/" ,
171+ f"{ self .path } /.bzr" ,
172+ f"{ self .path } /.bzr/" ,
173+ f"{ self .path } /test" ,
174+ f"{ self .path } /test/" ,
175+ f"{ self .path } /demo" ,
176+ f"{ self .path } /demo/" ,
177+ f"{ self .path } /backup" ,
178+ f"{ self .path } /backup/" ,
179+ f"{ self .path } /tmp" ,
180+ f"{ self .path } /tmp/" ,
181+ f"{ self .path } /temp" ,
182+ f"{ self .path } /temp/" ,
183+ f"{ self .path } /.env" ,
184+ f"{ self .path } /.env/" ,
185+ f"{ self .path } /.DS_Store" ,
186+ f"{ self .path } /.DS_Store/" ,
78187 ]
79188
80189 for payload in payloads :
@@ -121,7 +230,7 @@ def main():
121230 blog = 'https://spyboy.blog/'
122231 github = 'https://github.com/spyboy-productions/WebSecProbe'
123232
124- VERSION = '0.0.11 '
233+ VERSION = '0.0.12 '
125234
126235 R = '\033 [31m' # red
127236 G = '\033 [32m' # green
@@ -162,4 +271,4 @@ def main():
162271 probe .run ()
163272
164273if __name__ == "__main__" :
165- main ()
274+ main ()
0 commit comments