Python 目录扫描脚本

本文记录了作者学习Python安全编程的过程,重点介绍了如何编写一个目录扫描脚本。脚本具备输入URL、字典、线程等功能,并通过状态码判断文件是否存在。文章提到了代码的优化点,包括界面美化、增加线程数选项、User Agent处理及多线程进度显示。代码示例针对Metasploitable Linux进行扫描。
摘要由CSDN通过智能技术生成

前言

最近开始学习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("                                          
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值