文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

< 渗透测试学习指南 > python编写目录遍历工具

2023-09-03 11:27

关注

转载请注明作者及出处:

        在编写目录遍历工具之前,我们首先要搭建一个WordPress框架环境,用以实践我们稍后编写出的工具。这里推荐大家通过在kali linux安装小皮面板搭建环境,毕竟用小皮搭环境是真方便(真香!)

一、环境搭建

打开终端,输入以下命令安装小皮面板

wget -O install.sh https://notdocker.xp.cn/install.sh && sudo bash install.sh

       在小皮面板安装完成后,会在最后的部分提示登录管理界面的URL,以及初始用户名和密码,大家记得保存

 

       如果重启设备之后发现小皮没有开机自启,可以在终端输入xp,打开小皮命令行管理界面进行开启,具体详情如下图

       然后浏览器登录小皮管理界面,开启MySQL和Apache,由于一会用来测试的WordPress5.4版本对PHP有依赖关系(php5.6以上),所以我们需要下载安装php5.6.40版本,并如图所示将网站php版本更换为5.6.40版本

注:如小皮面板未自动创建数据库,请手动创建数据库

 

 

       接下来我们前往WordPress官网,下载WordPress5.4版本并在小皮网站根目录解压,我的根目录是/www/admin/localhost_80/wwwroot

 

        然后进入WordPress解压目录修改如图所示配置文件,将数据库名、用户名、密码做相应配置(配置思路类似DVWA靶场搭建配置),修改完后将文件名修改为wp-config.php

 

 浏览器访问我们刚才搭建的WordPress,搭建成功

 

二、目录遍历工具编写

话不多说,上代码

import contextlibimport osimport queueimport requestsimport sysimport threadingimport timeFILTERED = [".jpg", ".gif", ".png", ".css"]TARGET = "http://localhost/wordpress/"THREADS = 10answers = queue.Queue()web_paths = queue.Queue()def gather_paths():    for root, _, files in os.walk('.'):        for fname in files:            if os.path.splitext(fname)[1] in FILTERED:                continue            path = os.path.join(root, fname)            if path.startswith('.'):                path = path[1:]            print(path)            web_paths.put(path)@contextlib.contextmanagerdef chdir(path):    """    在进入时将目录更改为指定路径.    在退出时,回到原始目录.    """    this_dir = os.getcwd()    os.chdir(path)    try:        yield    finally:        os.chdir(this_dir)if __name__ == '__main__':    with chdir("/www/admin/localhost_80/wwwroot/wordpress"):        gather_paths()    input('按下Enter键继续')

       首先,我们设置了目录遍历的URL(http://localhost/wordpress/),并且我们创建了一个列表,这个列表包含了我们想要在扫描时跳过的文件类型,因为这些类型的文件通常对我们的价值并不大。

      然后,我们使用os.walk函数遍历web应用安装目录中的所有文件和目录,在遍历过程中,我们会构建目标文件的完整路径,并且会通过FILTERED列表跳过我们不想要的文件类型。

       大家可能注意到,我们用作异常处理的代码块并没有使用try/except,而是使用了try/finally,它与前者的区别在于,不管try代码块出现什么问题,finally代码块都一定会被执行。

       在main代码块中,我们给定了WordPress的解压目录,也就是我们通过浏览器访问WordPress时访问的WordPress具体路径

让我们运行一下这个工具,看看它发挥的力量!

 

 

 

来源地址:https://blog.csdn.net/m0_68080066/article/details/128060563

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯