[h1]前言[/h1]最近开始学习Pthon安全编程,记录一下。
[h1]思路[/h1]目录扫描器一般有几个功能点:输入url,字典,线程,所以说,我们要实现这3个功能点,差不多就做了一半了。我们再来看看目录扫描器的工作流程
画的有点丑,不过简而言之就是用户输入url和字典,然后把两者拼接起来,通过状态码来判断这个文件存不存在
代码实现
[code]import sysimport osimport queueimport requestsimport timeimport threadingq=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(" ") print("说明:网址+字典文件+线程,例如:filesan.py http://www.xxx.cn 1.txt 10") print("Author:KingHandles5")if __name__ == '__main__': path=os.path.dirname(os.path.realpath(__file__)) ### 这里的功能是获取当前的路径 if len(sys.argv) |
|