Python开发Web扫描器实战

news2024/11/30 8:39:48

今天继续给大家介绍渗透测试相关知识,本文主要内容是Python开发Web扫描器实战。

免责声明:
本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负!
再次强调:严禁对未授权设备进行渗透测试!

一、传统扫描器不足

在上文信息收集过程WAF绕过详解中,我们介绍了使用信息收集工具存在的诸多问题。使用他人的信息收集或扫描工具,存在的很大的问题即不可控。例如有些工具不支持修改指纹信息,有些工具不支持设置代理等等,要解决这一问题,最好的方法就是自己写扫描脚本。

二、Python自开发Web扫描器实战

接下来,我们就使用Python脚本,来简单的实现针对目标站点路径扫描的功能。在这里,我们需要使用Python爬虫的相关知识,如果您对此还存在困惑,欢迎您先阅读:Python爬虫详解和简单Python爬虫编写——requests包使用初体验,相信您一定会有所收获。
在了解了Python爬虫的简单知识后,我们就需要自行开发扫描脚本了。脚本内容如下所示:

import requests
import time

headers={
"Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
"Accept-Encoding": "gzip, deflate, br",
"Accept-Language": "zh-CN,zh;q=0.9",
"Cache-Control": "max-age=0",
"Connection": "keep-alive",
"Host": "127.0.0.1",
"Sec-Fetch-Dest": "document",
"Sec-Fetch-Mode": "navigate",
"Sec-Fetch-Site": "none",
"Sec-Fetch-User": "?1",
"Upgrade-Insecure-Requests": "1",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36",
"sec-ch-ua": '"Not?A_Brand";v="8", "Chromium";v="108", "Google Chrome";v="108"',
"sec-ch-ua-mobile": "?0",
"sec-ch-ua-platform": "Windows"
}
with open(r"F:\基本测试工具\御剑后台扫描珍藏版\御剑后台扫描珍藏版\配置文件\PHP.txt","r",encoding="gbk") as fp:
    dir_list=fp.readlines()
# url="http://127.0.0.1/test.php"
# response=requests.get(url=url,headers=headers)
# print(response.status_code)
for dir in dir_list:
    base_url = "http://127.0.0.1"
    url=base_url+dir
    url=url.replace('\n','')
    #使用代理的写法:
    #response=requests.get(url=url,headers=headers,proxies={"https":"X.X.X.X:X"})
    response=requests.get(url=url,headers=headers)
    #延迟写法:
    #time.sleep(x)
    if response.status_code <400:
        print(url,response.status_code)

可以看出,我们使用上述代码,实现了自定义HTTP Header头、配置代理、延迟操作等等。
在上述代码中,在从文件中读取字典后,要尤其注意使用replace()函数,去除每个url最后面的换行符,否则URL请求就会出现问题。
上述代码执行结果如下所示:
在这里插入图片描述
这样,我们就实现了自行开发Web扫描器,而且还可以根据实际情况添加新的功能,比如如果需要更快的扫描速度,可以将上述代码转化为异步操作等等。
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/152363.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

机器学习--模型评估、过拟合和欠拟合、模型验证

目录 一、模型评估 模型指标 常见关于分类的指标 准确率 精确率(精确度) 召回率 F1 score PR曲线&#xff1a; ROC AUC 二、过拟合和欠拟合 训练与泛化误差的区别 什么样的情况会导致欠拟合与过拟合&#xff1f; 模型的复杂度&#xff08;能够拟合各种各样函…

分组加密模式 ECB CBC OFB CFB

多个分组加密互相之间如何关联 ECB模式 每个分组之间单独加密&#xff0c;互不关联 2个分组明文一样&#xff0c;结果也一样&#xff0c;那么只需爆破其中1个就可以了 每个分组互不关联&#xff0c;可以分段同时来爆破&#xff0c;不安全 可以通过替换某段密文来达到替换明…

11.Isaac教程--在docker中模拟训练姿势估计模型

在docker中模拟训练姿势估计模型 文章目录在docker中模拟训练姿势估计模型怎么运行的主机设置硬件要求软件要求NGC Docker 注册表设置第一次运行数据集生成配置您的工作区Jupyter 变量设置开始训练添加您自己的 3D 模型故障排除接下来物体检测和 3D 姿态估计在机器人技术中起着…

『精』EditorConfig 小老鼠 跨编辑器 | IDE 保持一致的编码风格

『精』EditorConfig 小老鼠 跨编辑器 | IDE 保持一致的编码风格 文章目录『精』EditorConfig 小老鼠 跨编辑器 | IDE 保持一致的编码风格一、什么是EditorConfig二、文件识别符三、风格属性控制四、不同规则参考1)、简洁通用2)、前端Vue项目3)、前端React项目4)、前端Angular项…

Linux常用命令——nm命令

在线Linux命令查询工具(http://www.lzltool.com/LinuxCommand) nm 显示二进制目标文件的符号表 补充说明 nm命令被用于显示二进制目标文件的符号表。 语法 nm(选项)(参数)选项 -A&#xff1a;每个符号前显示文件名&#xff1b; -D&#xff1a;显示动态符号&#xff1b; …

成员变量-java循环机构

1.概念所谓的成员变量&#xff0c;是指在类中(不是方法或其他代码块)直接定义的变量。根据是否带有static关键字&#xff0c;成员变量又分为静态变量(类变量)、实例变量(对象变量)。成员变量在整个类的内部都有效&#xff0c;可以在当前类的任何方法中使用。另外如果成员变量不…

NFS介绍及服务器搭建

一、NFS 简介 NFS&#xff0c;英文全称 Network File System&#xff0c;主要功能&#xff1a;通过网络&#xff0c;让不同的机器、不同的操作系统可以共享文件。类似windows的共享文件夹 ​ NFS服务器共享本机目录&#xff0c;客户端机器挂载该目录后&#xff0c;就可以像自…

AI+OCR赋能古彝文数字化—让经典重新跳动

1️⃣ 彝文与古彝文概况文化是一个民族社会历史发展到一定程度的产物&#xff0c;代表着文明发展的程度&#xff0c;而文字是文化的一种载体&#xff0c;文字的出现是社会进入文明阶段的重要标志之一&#xff0c;其生动记录着一个民族的智慧成果&#xff0c;深刻反映着一个民族…

Unity 3D 环境特效||Unity 3D 游戏场景设计实例

Unity 3D 环境特效 一般情况下&#xff0c;要在游戏场景中添加雾特效和水特效较为困难&#xff0c;因为需要开发人员懂得着色器语言且能够熟练地使用它进行编程。 Unity 3D 游戏开发引擎为了能够简单地还原真实世界中的场景&#xff0c;其中内置了雾特效并在标准资源包中添加…

mmLab系列使用方法

mmLab系列使用方法环境搭建mmdetection检查数据集运行部署mmdeploy环境搭建使用mmOCRmmsegmentation环境搭建 Windows最推荐安装方法&#xff1a; 首先需要查好自己gpu的CUDA版本&#xff0c;根据版本到pytorch官方网站查找对应的pytorch版本(!!!只查找不下载&#xff01;)ht…

Mybatis源码分析(七)MapperMethod的INSERT分析

目录一 INSERT 语句1.1 参数的对应解析convertArgsToSqlCommandParam1.2 ID获取对应的MappedStatement1.3 MappedStatement交给执行器执行1.4 不同的执行器获取不同的StatementHandler1.5 根据参数获取BoundSql1.6 执行器配置参数处理器ParameterHandler1.7 拿到StatementHandl…

人工智能-http协议和静态服务器

目录1、HTTP协议1.1 网址1.2 http协议的介绍1.3 http请求报文1.&#xff14; http响应报文1.&#xff15;查看http协议的通信过程&#xff12;、静态web服务器程序开发2.1 搭建python自带的静态web服务器2.2 静态web服务器-返回固定页面数据1、HTTP协议 1.1 网址 网站又称为U…

【报错】assert failed: xQueueSemaphoreTake queue.c:1545 (( pxQueue ))

&#x1f331; hi&#xff0c;最近开始写嵌入式&#xff0c;碰到蛮多新的问题&#xff0c;也调bug到凌晨五点过。欢迎关注我&#xff0c;一起讨论交流 开发环境 在VScode中使用Arduino&#xff0c;开发板ESP32S3 报错代码 使用队列接收服务器消息&#xff0c;FIFO依次处理消…

ROS1学习笔记:参数的使用与编程方法(ubuntu20.04)

参考B站古月居ROS入门21讲&#xff1a; 参数的使用与编程方法 基于VMware Ubuntu 20.04 Noetic版本的环境 文章目录一、概念图讲解二、创建功能包三、参数命令行的使用方法&#xff1a;rosparam显示某个参数值&#xff1a;rosparam get设定某个参数值&#xff1a;rosparam set将…

linux小程序—进度条(动态演示)

文章目录1. \n与\r的区别1. linux环境下2. windows环境下2. 缓冲区问题1.\n的情况2.\r的情况3. \n与\r的情况对比4. 使用fflush函数观察\r情况5. 不为\n与\r的情况3.进度条的实现1. printf 打印字符问题1. 修改前2.修改后2 . 注意事项3. 整体实现1. makefile(自动化编译工具&am…

一篇文章教会你Linux下《常用操作指令》

基本指令首言ls&#xff08;查看目录&#xff09;pwds&#xff08;显示用户当前所在目录&#xff09;cd&#xff08;改变工作目录&#xff09;mkdir&#xff08;创建目录&#xff09;rmdir&#xff08;删除目录&#xff09;touch &#xff08;新建文件或更新文件时间&#xff0…

【Python】获取视频弹幕并生成词云

目录一、摘要二、获取目标视频cid三、获取视频弹幕xml文件四、处理弹幕文件五、生成词云六、完整参考代码一、摘要 就是那个大家都用的弹幕视频网站&#xff0c;不写名字了&#xff0c;写了老是不能通过。 获取视频的弹幕文件&#xff08;xml&#xff09;&#xff0c;并生成如图…

认真分享一个让我变厉害的小建议

很多朋友&#xff0c;加我好友之后&#xff0c;第一句话通常是&#xff1a;我想提高英语&#xff0c;有什么资料推荐&#xff1f; 这要看你学英语的目的了。 我们学英语是为了什么? 理由可能很多&#xff0c;我就说个最俗的目的吧&#xff0c;为了发财。 想发财应向谁学习&…

代码随想录第31天|● 455.分发饼干 ● 376. 摆动序列 ● 53. 最大子序和

455.分发饼干 大尺寸的饼干既可以满足胃口大的孩子也可以满足胃口小的孩子&#xff0c;那么就应该优先满足胃口大的。 这里的局部最优就是大饼干喂给胃口大的&#xff0c;充分利用饼干尺寸喂饱一个&#xff0c;全局最优就是喂饱尽可能多的小孩。 可以尝试使用贪心策略&#xf…

[ 数据结构 ] 最小生成树(MST)--------普里姆算法、克鲁斯卡尔算法

0 修路问题 有胜利乡有 7 个村庄(A, B, C, D, E, F, G) &#xff0c;现在需要修路把 7 个村庄连通各个村庄的距离用边线表示(权) &#xff0c;比如 A – B 距离 5 公里问&#xff1a;如何修路保证各个村庄都能连通&#xff0c;并且总的修建公路总里程最短? 思路: 将 10 条边&a…