安全开发实战(1)--Cdn

目录

安全开发专栏

CDN介绍

1.信息收集阶段

1.1判断CDN是否存在

1.1.1, One

1.1.2,Two(改进)

1.1.3,进行整合

增加输入功能

1.1.4 批量读取+监测+存储(进行测试)

问题1:

问题2:

解决方案:

1.1.4 基本编写完成

命令框中:

cdn存在.txt

总结


这里我是根据整个渗透测试的流程进行安全开发,后期有时间,将所有写的整合为一个GUI工具或是web平台

安全开发专栏

                                                             安全开发实战icon-default.png?t=N7T8http://t.csdnimg.cn/25N7H

 

CDN介绍

        CDN,全称为内容分发网络(Content Delivery Network),是一种优化网络内容传输的技术手段

        CDN的工作原理主要是通过在多个地理位置部署服务器节点,将网站的内容如网页、图片、视频等缓存到这些节点上。当用户请求访问某个网站时,CDN会根据用户的地理位置,将请求重定向到距离用户最近的服务器节点,从而加快内容的加载速度,提高访问效率。

     当然在渗透中,网站存在cdn会影响我们判断网站的真实IP,会影响我们的进一步渗透 

1.信息收集阶段

1.1判断CDN是否存在

1.1.1, One

# 识别目标是否存在CDN
# 执行nslookup命令,通过返回结果的ip数目来判断
# os.system: 结果只能打印出来看
# cdn_data = os.system("nslookup www.baidu.com")
# print(cdn_data)
# cdn_cmd = os.popen("nslookup www.baidu.com")
import os
​
# nslookup: 这是一个标准的网络管理命令行工具,用于查询DNS记录,以确定给定域名的IP地址
cdn_cmd = os.popen("nslookup www.baidu.com")
cdn_data = cdn_cmd.read()
print(cdn_data) # 可以进行注释

输出的结果:发现存在乱码

��Ȩ��Ӧ��:
服务器:  UnKnown
Address:  fe80::2af7:d6ff:fe96:9e70
​
名称:    www.a.shifen.com
Addresses:  2409:8c20:6:1135:0:ff:b027:210c2409:8c20:6:1d55:0:ff:b09c:7d7736.155.132.7636.155.132.3
Aliases:  www.baidu.com

1.1.2,Two(改进)

        可以使用这个,也可以使用上面的,总的来说没有什么影响,只是会在后续的批量监测中,会出现很多杂乱的乱码数据

# 通过指定编码方式为gbk解决存在乱码
import subprocess
​
# nslookup: 这是一个标准的网络管理命令行工具,用于查询DNS记录,以确定给定域名的IP地址
cdn_cmd = subprocess.Popen(["nslookup", "www.baidu.com"], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
cdn_data, error = cdn_cmd.communicate()
cdn_data = cdn_data.decode("gbk")
print(cdn_data) 
服务器:  UnKnown
Address:  fe80::2af7:d6ff:fe96:9e70
​
名称:    www.a.shifen.com
Addresses:  2409:8c20:6:1d55:0:ff:b09c:7d772409:8c20:6:1135:0:ff:b027:210c36.155.132.336.155.132.76
Aliases:  www.baidu.com

        

1.1.3,进行整合

        这里为了输出结果更加显眼也为了后续能够为写批量监测方便,使用了第三方库,将目标存在CDN输出的颜色为红色

import os
# 用于打印带颜色的文字
from colorama import init
from colorama import Fore
​
# nslookup: 这是一个标准的网络管理命令行工具,用于查询DNS记录,以确定给定域名的IP地址
cdn_cmd = os.popen("nslookup www.baidu.com")
cdn_data = cdn_cmd.read()
print(cdn_data)  # 测试时使用,测试完后,直接注释,具体看个人操作
# 通过.的个数;来判断,如果没有cdn,那么.的个数是8-10个,.超过10个基本判断有cdn
# 当然如果出现网络问题.也会超过10个具体需要增加一些其他的判断
point_count = cdn_data.count(".")
if point_count > 10:print(Fore.RED + "目标存在CDN")# print("目标存在CDN")
else:print("目标不存在CDN")

增加输入功能
import os
# 用于打印带颜色的文字
from colorama import Fore
​
# nslookup: 这是一个标准的网络管理命令行工具,用于查询DNS记录,以确定给定域名的IP地址
url = str(input("请输入要监测cdn的url:"))
cdn_cmd = os.popen(f"nslookup {url}")
cdn_data = cdn_cmd.read()
print(cdn_data)
# 通过.的个数;来判断,如果没有cdn,那么.的个数是8-10个,.超过10个基本判断有cdn
# 当然如果出现网络问题.也会超过10个具体需要增加一些其他的判断
point_count = cdn_data.count(".")
if point_count > 10:print(Fore.RED + f"{url}存在CDN")# print("目标存在CDN")
else:print(f"{url}不存在CDN")

1.1.4 批量读取+监测+存储(进行测试)

        这里会因为第一次写的那个会输出乱码数据,这里,还是使用第二种,解决乱码,并进行初试

url.txt

www.baidu.com
www.bing.com
import subprocess
# 用于打印带颜色的文字
from colorama import Fore
​
with open("url.txt", "r") as f:for url in f.readlines():  # 读取每一行# nslookup: 这是一个标准的网络管理命令行工具,用于查询DNS记录,以确定给定域名的IP地址cdn_cmd = subprocess.Popen(["nslookup", "www.baidu.com"], stdout=subprocess.PIPE, stderr=subprocess.PIPE)cdn_data, error = cdn_cmd.communicate()cdn_data = cdn_data.decode("gbk")# print(url)# print(cdn_data)
# 通过.的个数;来判断,如果没有cdn,那么.的个数是8-10个,.超过10个基本判断有cdn
# 当然如果出现网络问题.也会超过10个具体需要增加一些其他的判断point_count = cdn_data.count(".")if point_count > 10:with open("cdn存在.txt", "a") as w:cdn_url = f"{url}存在CDN"
​w.write(cdn_url+"\n")print(Fore.RED + f"{url}存在CDN")# print(f"{url}存在CDN")else:with open("cdn不存在.txt", "a") as w:n_cdn_url = f"{url}不存在CDN"
​w.write(n_cdn_url+"\n")print(f"{url}不存在CDN")
问题1:

写入数据时,不能增加颜色,不然会出现写入数据中出现

[31mwww.baidu.com
存在CDN[31mwww.bing.com存在CDN
问题2:

        存储数据以及输出数据时,第一行读入的数据总是会出现,如图所示的状况,并且存入数据后也会出现如图所示的状况

        第一次尝试解决,是将在读入数据时,指定数据从第二行数据读起并将url.txt第一行设置为空行,结果返回了数组,并且返回了失败数据,但是发现了换行符,考虑到是因为自动增加换行符的原因

解决方案:

                                在拼接之前,先去掉换行符,在写入数据时重新加上换行符

            
with open("cdn存在.txt", "a") as w:url = str(url).rstrip()cdn_url = f"{url}存在CDN"
​w.write(cdn_url+"\n")print(Fore.RED + f"{url}存在CDN")

1.1.4 基本编写完成

import subprocess
# 用于打印带颜色的文字
from colorama import Fore
​
with open("url.txt", "r") as f:for url in f.readlines():  # 读取每一行# nslookup: 这是一个标准的网络管理命令行工具,用于查询DNS记录,以确定给定域名的IP地址cdn_cmd = subprocess.Popen(["nslookup", "www.baidu.com"], stdout=subprocess.PIPE, stderr=subprocess.PIPE)cdn_data, error = cdn_cmd.communicate()cdn_data = cdn_data.decode("gbk")# print(url)# print(cdn_data)
# 通过.的个数;来判断,如果没有cdn,那么.的个数是8-10个,.超过10个基本判断有cdn
# 当然如果出现网络问题.也会超过10个具体需要增加一些其他的判断point_count = cdn_data.count(".")if point_count > 10:with open("cdn存在.txt", "a") as w:url = str(url).rstrip()cdn_url = f"{url}存在CDN"
​w.write(cdn_url+"\n")print(Fore.RED + f"{url}存在CDN")# print(f"{url}存在CDN")else:with open("cdn不存在.txt", "a") as w:url = str(url).rstrip()n_cdn_url = f"{url}不存在CDN"
​w.write(n_cdn_url+"\n")print(f"{url}不存在CDN")
命令框中:

cdn存在.txt

                        这里因为是以追加(a+)的方式写入,所以会出现第一行为空行

总结

    渗透学习过程中,不仅需要学习实战技巧,更要懂得开发实战工具,来辅助自己学习和进行进一步渗透利用,这里是围绕整个渗透测试的流程来进行开发,整体适合小白,当然我现在也在学习阶段,还是会出现很多开发过程中的问题,需要进行进一步解决.

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

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

相关文章

C语言数据结构-双链表

双链表是什么 双向链表,又称为双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。 我们…

使用mapinfo软件的在线地图插件运行错误解决

使用mapinfo软件的在线地图插件运行错误解决 一、如何解决win10/win11家庭版运行MapInfo中的在线地图插件报错【unexpected error;quitting】问题?二、如何解决在线地图切换地图源时的报错问题? 一、如何解决win10/win11家庭版运行MapInfo中的…

原牛角源码(修罗bbs)全站程序打包带数据库备份

原牛角源码(修罗bbs)全站程序打包带数据库备份,牛角源码全站数据全站文件、插件打包分享给大家,有兴趣的可以搭建玩玩! conf文件夹中自己配置conf.php里面的数据库链接文件,默认管理账号:admin,密码&#…

代码随想录算法训练营Day60|LC84 柱状图中最大的矩形

一句话总结:完结撒花! 原题链接:84 柱状图中最大的矩形 与接雨水的单调栈做法类似。代码如下: class Solution {public int largestRectangleArea(int[] heights) {int[] newHeight new int[heights.length 2];System.arrayco…

Ansible初识以及安装

1. Ansible应用简述: Ansible基于python语言实现,由Paramiko和PyYAML两个关键模块构建。具有独特的设计理念: 1)安装部署简单 2)管理主机便捷,支持多主机并行管理 3)避免在被管理主机上安装客户…

SpringBoot集成Sharding-jdbc(水平分表)

SpringBoot集成Sharding-jdbc(水平分表) 1.Sharding-jdbc的应用场景2.实际使用2.0 项目层级2.1 导入依赖2.2 application.yml配置2.3 dao层2.4 对应的mybatis的xml文件2.5 Service层2.6 pojo2.7 controller2.8 多线程配置 1.Sharding-jdbc的应用场景 其…

【管理咨询宝藏78】MBB大型城投集团核心能力建设分析报告

本报告首发于公号“管理咨询宝藏”,如需阅读完整版报告内容,请查阅公号“管理咨询宝藏”。 【管理咨询宝藏78】MBB大型城投集团核心能力建设分析报告 【格式】PDF版本 【关键词】战略规划、商业分析、管理咨询、MBB顶级咨询公司 【强烈推荐】 这是一套…

什么是CPU与GPU,它们之间有什么关系

什么是CPU与GPU,它们之间有什么关系一、CPU1. 核心功能2. 工作原理3. 组成部分4. 发展历程5. 性能指标6. 架构种类7. 发展趋势8. 应用领域 二、GPU三、CPU与GPU的关系 什么是CPU与GPU,它们之间有什么关系 一、CPU CPU,全称是“Central Proc…

吃鸡游戏msvcp140.dll丢失的解决方法

msvcp140.dll 是一个与 Microsoft Visual C Redistributable 相关的动态链接库(DLL)文件,是 Windows 操作系统中众多应用程序正常运行所必需的关键组件之一。以下是对 msvcp140.dll 文件的总体介绍和msvcp140.dll丢失的多个解决方案分享。 *…

ROS仿真小车(一)—— urdf模型+rviz可视化

文章目录 前言一、创建功能包二、urdf文件三、launch文件四、图形化显示五、RVIZ可视化总结参考文献 前言 ROS学习过程记录,从零开始仿真一辆小车,之后会实现运动控制、雷达、相机等 部分代码已上传至本人的GitHub,如果需要请自行下载&…

算法题解记录18+++搜索二维矩阵Ⅱ

本题可以说是运用二分查找的典例,即使是面对矩阵,只要是它保持“排序好”这样的结构,就一定能采用二分查找法。【你知道的,对于排序好的数组,二分查找几乎是最优秀的算法】 当然,答案提供的是“Z字形查找法…

实在Agent:超自动化智能体的革命(附导引指南)

在自动化技术的浪潮中,实在智能推出了实在Agent(智能体),一款基于大语言模型和屏幕语义理解技术的超自动化智能体。它通过自然对话交互,将复杂工作简化为一句话指令,自动规划并执行工作任务,极大…

C++奇迹之旅:深入理解赋值运算符重载

文章目录 📝赋值运算符重载🌠 运算符重载🌉特性 🌠 赋值运算符重载🌠传值返回:🌠传引用赋值:🌉两种返回选择🌉赋值运算符只能重载成类的成员函数不能重载成全…

unity学习(86)——细节优化

东西已经做出来了,现在需要的是优化,说得简单,做起来难。 1.122包的优化,避免重复创建! 2.为何会出现一边动,一边不动的情况。重复登录后依旧是unity可以看到移动,但是exe那边看不到移动&#…

关于图像YUV格式分类和排布方式的全学习

【学习笔记】关于图像YUV格式分类和排布方式的全学习_yuv图像-CSDN博客 下图是将多个yuv420p图像(A和B),拼接成一个画面的思路 A大小:416*64 B大小:416*208 将A和B合并到一个416*416的尺寸上,代码如下 //整合char * ptd;ptd (char * ) malloc (416*41…

C#通用类库封装实战

数据库查询 特性方式获取数据库列的别名 数据库更新 使用简单工厂配置的方式

矽塔SA8321 单通道 2.7-12.0V 持续电流 3.0A H 桥驱动芯片

描述 SA8321是为消费类产品,玩具和其他低压或者电池供电的运动控制类应用提供了一个集成的电机驱动器解决方案。此器件能够驱动一个直流无刷电机,由一个内部电荷泵生成所需的栅极驱动电压电路和4个功率 NMOS组成H桥驱动,集成了电机正转/反…

2024上海国际半导体制造设备材料与核心部件展览会

2024上海国际半导体制造设备材料与核心部件展览会 2024 Shanghai International Semiconductor Manufacturing Equipment Materials and Core Components Exhibition 时间:2024年11月18日-20日 地点:上海新国际博览中心 详询主办方陆先生 I38&#…

2024蓝桥杯嵌入式模板代码详解

文章目录 一、STM32CubeMx配置二、LED模板代码三、LCD模板代码 一、STM32CubeMx配置 打开STM32CubeMx,选择【File】->【New Project】,进入芯片选择界面,搜索到蓝桥杯官方的芯片型号,并点击收藏,下次直接点击收藏就…

【LeetCode: 39. 组合总和 + 递归】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…