downloaded and extracted the web application we also create simple list of file extensions that we are not interested in fingerprinting this list can be different depending on the target application the web_paths variable is our queue object where we will store the files that we'll attempt to locate on the remote server we then use the os walk function to walk through all of the files and directories in the local web application directory as we walk through the files and directorieswe're building the full path to the target files and testing them against our filter list to make sure we are only looking for the file types we want for each valid file we find locallywe add it to our web_paths queue looking at the bottom of the script we are creating number of threads (as set at the top of the filethat will each be called the test_remote function the test_remote function operates in loop that will keep executing until the web_paths queue is empty on each iteration of the loopwe grab path from the queue add it to the target website' base pathand then attempt to retrieve it if we're successful in retrieving the filewe output the http status code and the full path to the file if the file is not found or is protected by an htaccess filethis will cause urllib to throw an errorwhich we handle so the loop can continue executing