前言
最近开始学习Pthon安全编程,记录一下。
思路
目录扫描器一般有几个功能点:输入url,字典,线程,所以说,我们要实现这3个功能点,差不多就做了一半了。我们再来看看目录扫描器的工作流程
画的有点丑,不过简而言之就是用户输入url和字典,然后把两者拼接起来,通过状态码来判断这个文件存不存在
代码实现
import sys
import os
import queue
import requests
import time
import threading
q=queue.Queue()
def scan():
while not q.empty(): ### 只要字典里不为空,就一直循环
dir=q.get() ### 把存储的payload取出来
urls=url+dir ### url+payload就是一个payload
urls=urls.replace('\n','') ### 利用回车来分割开来,不然打印的时候不显示
code=requests.get(urls).status_code ### 把拼接的url发起http请求
if code==200 or code==403: ### 如果返回包状态码为200或者403,就打印url+状态码
print(urls+'|'+str(code))
f=open('ok.txt','a+') ###
f.write(urls)
f.close()
然后把结果以追加的方式存储到ok.txt中,然后关闭文件
else:
print(urls+'|'+str(code))
time.sleep(1)
### 不然就打印url+状态码,并延时一秒
def show():
print(" _ _ ")
print(" __| |(_) _ __ ___ ___ __ _ _ __ ")
print(" / _` || || '__| / __| / __|/ _` || '_ \ ")
print(" | (_| || || | \__ \| (__| (_| || | | |")
print(" \__,_||_||_| |___/ \___|\__,_||_| |_|")
print("