侯体宗的博客
  • 首页
  • Hyperf版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

利用python实现对web服务器的目录探测的方法

Python  /  管理员 发布于 7年前   287

一、python

Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。

python 是一门简单易学的语言,并且功能强大也很灵活,在渗透测试中的应用广泛,让我们一起打造属于自己的渗透测试工具

二、web服务器的目录探测脚本打造

1、在渗透时如果能发现web服务器中的webshell,渗透是不是就可以变的简单一点尼

通常情况下御剑深受大家的喜爱,但是今天在测试的时候webshell不知道为什么御剑扫描不到

仔细查看是webshell有防爬功能,是检测User-Agent头,如果没有就回返回一个自己定义的404页面 

 

1、先来看看工具效果 

2、利用python读取扫描的目录字典

def get_url(path):    with open(path, "r", encoding='ISO-8859-1') as f:        for url in f.readlines():url_list.append(url.strip())        return url_list

3、利用 python 的 requests 库对web目标服务器进行目录探测

def Go_scan(url):  while not queue.empty():    url_path = queue.get(timeout=1)    new_url = url + url_path    res = requests.get(new_url, headers=headers, timeout=5)    #print(res.status_code)    status_code = "[" + str(res.status_code) + "]"    if str(res.status_code) != "404":      print(get_time(), status_code, new_url)

4、利用 python 的 threading 库对探测进行线程的设置

def thread(Number,url):  threadlist = []  for pwd in url_list:    queue.put(pwd)   for x in range(Number):    t = threading.Thread(target=Go_scan, args=(url,))    threadlist.append(t)   for t in threadlist:    t.start()

5、利用 python 的 argparse 库进行对自己的工具进行封装

def main():  if len(sys.argv) == 1:    print_banner()    exit(1)   parser = argparse.ArgumentParser(    formatter_class=argparse.RawTextHelpFormatter,    epilog='''\use examples: python dir_scan.py -u [url]http://www.test.com[/url] -d /root/dir.txt python dir_scan.py -u [url]http://www.test.com[/url] -t 30 -d /root/dir.txt ''')  parser.add_argument("-u","--url", help="scan target address", dest='url')  parser.add_argument("-t","--thread", help="Number of threads", default="20", type=int, dest='thread')  parser.add_argument("-d","--Dictionaries", help="Dictionary of Blasting Loading",     dest="Dictionaries")

总结

各位大哥有意见或者建议尽管提,文章哪里不对的话会改的,小弟定会虚心学习最后附上全部源码供大佬指教

#!/usr/bin/python# -*- coding: utf-8 -*- import requestsimport threadingimport argparse,sysimport time,osfrom queue import Queue url_list = []queue = Queue() headers = {  'Connection':'keep-alive',  'Accept':'*/*',  'Accept-Language': 'zh-CN',  'User-Agent':'Mozilla/5.0 (Windows NT 6.2; rv:16.0) Gecko/20100101 Firefox/16.0'} def print_banner():  banner = r"""  .___.__      __________________   _____  _______   __| _/|__|_______  /  _____/\_  ___ \  / _ \  \   \  / __ | | |\_ __ \ \_____ \ /  \ \/ / /_\ \ /  |  \ / /_/ | | | | | \/ /    \\   \____/  |  \/  |  \\____ | |__| |__|  /_______ / \______ /\____|__ /\____|__ /   \/           \/     \/     \/     \/  [*] Very fast directory scanning tool.[*] try to use -h or --help show help message  """  print(banner) def get_time():  return '[' + time.strftime("%H:%M:%S", time.localtime()) + '] ' def get_url(path):  with open(path, "r", encoding='ISO-8859-1') as f:    for url in f.readlines():      url_list.append(url.strip())    return url_list  def Go_scan(url):  while not queue.empty():    url_path = queue.get(timeout=1)    new_url = url + url_path    res = requests.get(new_url, headers=headers, timeout=5)    #print(res.status_code)    status_code = "[" + str(res.status_code) + "]"    if str(res.status_code) != "404":      print(get_time(), status_code, new_url) def thread(Number,url):  threadlist = []  for pwd in url_list:    queue.put(pwd)   for x in range(Number):    t = threading.Thread(target=Go_scan, args=(url,))    threadlist.append(t)   for t in threadlist:    t.start()  def main():  if len(sys.argv) == 1:    print_banner()    exit(1)   parser = argparse.ArgumentParser(    formatter_class=argparse.RawTextHelpFormatter,    epilog='''\use examples: python dir_scan.py -u [url]http://www.test.com[/url] -d /root/dir.txt python dir_scan.py -u [url]http://www.test.com[/url] -t 30 -d /root/dir.txt ''')  parser.add_argument("-u","--url", help="scan target address", dest='url')  parser.add_argument("-t","--thread", help="Number of threads", default="20", type=int, dest='thread')  parser.add_argument("-d","--Dictionaries", help="Dictionary of Blasting Loading",     dest="Dictionaries")  args = parser.parse_args()  Number =args.thread  url = args.url  url_path = args.Dictionaries  print_banner()  get_url(url_path)  print(get_time(), "[INFO] Start scanning----\n")  time.sleep(2)  thread(Number,url) if __name__ == '__main__':  main()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


  • 上一条:
    使用python itchat包爬取微信好友头像形成矩形头像集的方法
    下一条:
    python selenium 弹出框处理的实现
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • 在python语言中Flask框架的学习及简单功能示例(0个评论)
    • 在Python语言中实现GUI全屏倒计时代码示例(0个评论)
    • Python + zipfile库实现zip文件解压自动化脚本示例(0个评论)
    • python爬虫BeautifulSoup快速抓取网站图片(1个评论)
    • vscode 配置 python3开发环境的方法(0个评论)
    • 近期文章
    • 智能合约Solidity学习CryptoZombie第三课:组建僵尸军队(高级Solidity理论)(0个评论)
    • 智能合约Solidity学习CryptoZombie第二课:让你的僵尸猎食(0个评论)
    • 智能合约Solidity学习CryptoZombie第一课:生成一只你的僵尸(0个评论)
    • 在go中实现一个常用的先进先出的缓存淘汰算法示例代码(0个评论)
    • 在go+gin中使用"github.com/skip2/go-qrcode"实现url转二维码功能(0个评论)
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(0个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 欧盟关于强迫劳动的规定的官方举报渠道及官方举报网站(0个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf文件功能(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2016-10
    • 2016-11
    • 2018-04
    • 2020-03
    • 2020-04
    • 2020-05
    • 2020-06
    • 2022-01
    • 2023-07
    • 2023-10
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客