python小工具连载-取代御剑 web目录爆破

admin 2022年1月3日05:13:24安全工具评论43 views2048字阅读6分49秒阅读模式


声明:该公众号大部分文章来自作者日常学习笔记,也有少部分文章是经过原作者授权和其他公众号白名单转载,未经授权,严禁转载,如需转载,联系昊辰。
请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与文章作者和本公众号无关。

python小工具连载

-取代御剑 web目录爆破-

应用场景

在上次,我们通过安装开源的cms来对网站进行目录的碰撞,但是这有一个前提,就是我们的目标是使用的开源cms,且我们可以找到他的源码,但是在实际的情况中,针对一些未开源的系统,我们往往没有不能完全掌握所有的网站可以访问的文件,如果使用爬虫,在很多情况下有大量的配置文件,残留的开发文件、调试文件,及其他琐碎的安全文件可以通过敏感的信息或者暴露出开发者不希望暴露出的功能。唯一能够发现这些内容的方法就是使用暴力破解工具获取常见的文件名和目录。

工具效果

利用工具对自己的网站进行目录爆破

使用方法 python3 目录爆破.py url 字典

python小工具连载-取代御剑 web目录爆破

当然,我在这里使用的字典是php字典,由于我已经知道了我的网站是php的站,假如不知道,你也可以使用无后缀的字典,让我们的脚本自动对各种常用的字典进行爆破。

实现原理

首先,我们先来实现一个用户文件读取的函数,首先根据我们的输入尝试去打开我们的字典文件,这里要根据字典文件的编码格式进行修改,我的字典的编码格式是gbk,所以可以看到,我使用了encoding='gbk'来定义要读取的文件的编码格式,如果你的文件是utf-8的,那么你可以直接不写这个参数,因为默认就是utf-8。

然后我们按行读取文件中的内容,生成一个队列,依次将我们字典中读取到的内容加入到我们的队列当中,最后将这个队列返回。

def build_wordlist(wordlist_file):
'''
文件读取函数
'''

# 打开文件
fd = open(wordlist_file,"r",encoding="gbk")
# 按行读取
raw_words = fd.readlines()
fd.close()

found_resume = False
words = queue.Queue()

for word in raw_words:
# 删除末尾置顶空行如rn等
word = word.rstrip()
if resume is not None:
if found_resume:
words.put(word)
else:
if word == resume:
found_resume = True
print("Resuming wordlist from : {} ".format(resume))
else:
words.put(word)
return words

然后我们需要完成一个用来扫描的函数,首先他回判断队列中的内容是否为空,如果不为空就拿出来一个进行使用,然后根据是否存在"."来判断其是目录还是文件,并且如果我们使用的是无后缀的字典,那么我们回根据传入的extensions参数中的内容去给我们的字典加入相应的后缀,并存入扫描使用的列表中,最后依次从这个列表中获取内容,加在我们的url后面,尝试去访问,根据访问的结果判断是否存在这个文件。

def dir_bruter(word_queue,extensions=None):
'''
网站目录扫描
'''

while not word_queue.empty():
attempt = word_queue.get()
attempt_list = []

# 如果字典中的数据是以/开头,则去除开头的/
if attempt[0] == '/':
attempt = attempt[1:]

# 判断是目录还是文件
if "." not in attempt:
attempt_list.append("/{}/".format(attempt))
else:
attempt_list.append("/{}".format(attempt))

# 如果没有后缀则添加后缀
if extensions and "." not in attempt:
for extension in extensions:
attempt_list.append("/{}{}".format(attempt,extension))

for brute in attempt_list:
url = "{}{}".format(target_url,brute)
try:
r = requests.get(url,headers=header)
if len(r.text) and r.status_code in code_list:
print("[{}] => {}".format(r.status_code,url))
except:

python小工具连载-取代御剑 web目录爆破

pass

关注公众号回复"web目录爆破"获取该工具

python小工具连载-取代御剑 web目录爆破



干货 | CS绕过vultr特征检测修改算法


 | GitLab未授权RCE(CVE-2021-22205)


 | 中科网威防火墙(NPFW)文件遍历漏洞





好文分享收藏赞一下最美点在看哦

原文始发于微信公众号(渗透安全团队):python小工具连载-取代御剑 web目录爆破

特别标注: 本站(CN-SEC.COM)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年1月3日05:13:24
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                  python小工具连载-取代御剑 web目录爆破 http://cn-sec.com/archives/715913.html

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: