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

admin 2022年1月5日01:50:13评论154 views字数 2548阅读8分29秒阅读模式


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

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:
pass

后台回复"web目录爆破"获取该工具

【往期推荐】

【内网渗透】内网信息收集命令汇总

【内网渗透】域内信息收集命令汇总

【超详细 | Python】CS免杀-Shellcode Loader原理(python)

【超详细 | Python】CS免杀-分离+混淆免杀思路

【超详细 | 钟馗之眼】ZoomEye-python命令行的使用

【超详细 | 附EXP】Weblogic CVE-2021-2394 RCE漏洞复现

【超详细】CVE-2020-14882 | Weblogic未授权命令执行漏洞复现

【超详细 | 附PoC】CVE-2021-2109 | Weblogic Server远程代码执行漏洞复现

【漏洞分析 | 附EXP】CVE-2021-21985 VMware vCenter Server 远程代码执行漏洞

【CNVD-2021-30167 | 附PoC】用友NC BeanShell远程代码执行漏洞复现

【奇淫巧技】如何成为一个合格的“FOFA”工程师

【超详细】Microsoft Exchange 远程代码执行漏洞复现【CVE-2020-17144】

【超详细】Fastjson1.2.24反序列化漏洞复现

  记一次HW实战笔记 | 艰难的提权爬坑

【漏洞速递+检测脚本 | CVE-2021-49104】泛微E-Office任意文件上传漏洞

免杀基础教学(上卷)

免杀基础教学(下卷)

走过路过的大佬们留个关注再走呗【自取】python小工具连载-取代御剑 web目录爆破

往期文章有彩蛋哦【自取】python小工具连载-取代御剑 web目录爆破

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

一如既往的学习,一如既往的整理,一如即往的分享【自取】python小工具连载-取代御剑 web目录爆破

如侵权请私聊公众号删文

原文始发于微信公众号(渗透Xiao白帽):【自取】python小工具连载-取代御剑 web目录爆破

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年1月5日01:50:13
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【自取】python小工具连载-取代御剑 web目录爆破http://cn-sec.com/archives/718578.html

发表评论

匿名网友 填写信息