信息收集之子域名挖掘
域名可以分为顶级域名、一级域名、二级域名等。子域名(subdomain)是顶级域名(一级域名或父域名)的下一级。例如,mail.example.com和calendar.example.com是example.com的两个子域,而example.com则是顶级域.com的子域。在测试过程中,测试目标主站时如果未发现任何相关漏洞,此时通常会考虑挖掘目标系统的子域名。 1234567891011121314151617181920212223242526272829303132333435363738import requestsfrom bs4 import BeautifulSoupfrom urllib.parse import urlparsedef bing_search(site, pages): Subdomain = [] headers = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0...
信息收集之ping
如果需要知道当前某个IP段内有多少存活的机器,可以使用ping命令查看,虽然不是很准确,但是如果有IP响应了ping那么这个一定是一个存活的主机。 当IP数据包在对方计算机处理过程中出现未知的发送错误时,ICMP会向发送者传送错误事实以及错误原因等 信息查询由一个请求和一个应答构成的。只需要向目标发送一个请求数据包,如果收到了来自目标的回应,就可以判断目标是活跃主机,否则可以判断目标是非活跃主机 Ping命令是ICMP中较为常见的一种应用,经常使用这个命令来测试本地与目标之间的连通性,发送一个ICMP请求消息给目标主机,若源主机收到目标主机的应答响应消息,则表示目标可达,主机存在。 $\color{yellow}{但是该方法也存在一定的缺陷,就是当网络设备,例如路由器、防火墙等对ICMP采取了屏蔽策略时,就会导致扫描结果不准确。} $ 12345678910111213141516171819202122232425262728from scapy.layers.inet import IP, ICMP, sr1from random import randintfro...
管理员权限执行代码
在代码部署的过程当中往往需要使用管理员权限执行代码,这里涉及多种情况: LinuxLinux上使用管理员权限执行代码是最简单的,只需要使用root登录就可以直接使用管理员权限执行代码,代码具有调用系统资源的权限。 windows 编辑器上编辑器获得管理员权限其实情况很少,但是并不是没有。获得管理员权限的编辑器有三个好处: 直接打开管理员才能够打开的文件夹查看内容 打开管理员权限的文件 执行的代码都是管理员权限 快捷键拥有最高权限,不会与其他没有管理员权限的软件产生快捷键冲突 可能有更多功能提供(看编辑器情况) 个人现在最常遇到的问题是,我执行的代码需要管理员权限才能够正常执行,需要调用一些系统文件,但是编辑器不是,这就导致代码没有权限,不能够调试。但是打开也很简单: 右键编辑器->属性->兼容性->以管理员身份运行此程序 右键编辑器->管理员权限运行 windows 文件文件的执行有两种,第一种是以管理员权限启动cmd执行,第二种就是在代码当中获取管理员权限,保证程序从逻辑上一定是拥有管理员权限的。 代码如下: 12345678910111213...
代码混淆
很多时候开发者在给出自己的源代码的时候会考虑自己的代码太过容易被抄袭或者被阅读从而导致漏洞,对于前端来说,简单的代码与逻辑会给爬虫工程师逆向js加盐逻辑提供太简单的门槛,所以代码混淆操作逐渐变多,但是我个人作为一个普通开发,几乎用不到这样的技术。但是我觉得很有意思,因此记录了一些代码混淆的网站: JavaScript 混淆 : http://jshaman.com/#free https://www.bugku.com/tools/jsfuck/ PHP 混淆: https://www.phpjiami.com/phpjiami.html Java 混淆: https://zhuanlan.zhihu.com/p/272646403 python 混淆: https://pyob.oxyry.com/ 另附上一个加密网站,有很多好玩的加密: http://hi.pcmoe.net/
机器学习之简单线性回归
方程y = b₀ + b₁*X₁ 简单线性回归其实就是一个一元一次方程,在图像上呈现一个线性关系。 如何拟合这样一条线? 拟合的原理其实很简单,就是找到一条线,使得所有的点离这条线的距离之和是所有可能中最小的情况。当这条线满足这个要求的时候,这条线就是我们方程拟合的目标结果。我们将用这样的结果去预测与之类似的数据,查看预测效果。 数据集 YearsExperience Salary 1.1 39343.00 1.3 46205.00 1.5 37731.00 2.0 43525.00 2.2 39891.00 2.9 56642.00 3.0 60150.00 3.2 54445.00 3.2 64445.00 3.7 57189.00 3.9 63218.00 4.0 55794.00 4.0 56957.00 4.1 57081.00 4.5 61111.00 4.9 67938.00 5.1 66029.00 5.3 83088.00 5.9 81363.00 6.0 93940.00...
minio
对象存储MinIO入门介绍常见的对象存储方式对比 直接将图片保存到服务的硬盘 优点:开发便捷,成本低 缺点:扩容困难 使用分布式文件系统进行存储 优点:容易实现扩容 缺点:开发复杂度稍大(尤其是开发复杂的功能) 使用nfs做存储 优点:开发较为便捷 缺点:需要有一定的运维知识进行部署和维护 使用第三方的存储服务 优点:开发简单,拥有强大功能,免维护 缺点:付费 对象存储MinIOMinIO是世界上最快的对象存储服务器,在标准硬件上,读写速度分贝为183GB/s 和 171GB/s,对象存储可以作为主要存储层,用于Spark,Presto,TensorFlow,H20.ai 以及替代产品等各种工作负载用于Hadoop HDFS MinIO是一种高性能的分布式对象存储系统,它是软件定义的,可在行业标准硬件上运行,并且在Apache 2.0许可下,百分百开放源代码。 文档地址:https://docs.min.io/cn/ 下载set_your_key_here使用的是Docker的方式安装MinIO,首先拉取对应的镜像 1docker p...
(fastapi七)websocket
记录两段基础代码,分别来自官网与互联网。 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051from fastapi import FastAPI, WebSocketfrom fastapi.responses import HTMLResponseapp = FastAPI()html = """<!DOCTYPE html><html> <head> <title>Chat</title> </head> <body> <h1>WebSocket Chat</h1> <form action="" onsubmit="sendMessage(event)"> <inp...
知识的诅咒
知识的诅咒(Curse of Knowledge)在维基百科中是这样定义的:知识的诅咒,是一种认知偏差,指人在与他人交流的时候,下意识地假设对方拥有理解所需要的背景知识。 换句话说就是人们在沟通的时候,往往会因为自己被所掌握的知识“诅咒”了,潜意识里认为对方也是明白自己话里的背景知识,而没有主动讲出来,最终导致出现误解。 这个概念最初是在1989年发表在政治经济学杂志上的一篇文章提出,文中通过大量的试验数据说明了知识的诅咒对经济活动的影响,但实际上在生活的方方面面都有它的身影。 大部分人在青少年时期或多或少被家长训斥甚至“武力”教训过,当时对此都非常厌恶,但是当自己当上父母后,又会不知不觉甚至有时候无法抗拒的变成当初自己非常厌恶的人,很大的原因就是自己被知识诅咒了。 家长潜意识里是认为孩子和自己拥有一样的知识,所以难免会觉得孩子“笨”,特别是在辅导家庭作业的时候,但是孩子真的非常无辜。 教育行业一直以来都在和知识的诅咒抗争,教师们教学经验的积累很大程度上都在一步步打破自己的知识诅咒,让自己能更好的把知识传递给学生。教育理论和教学方法的研究则是更系统化的与知识的诅咒的战斗。 以...
python当中的回调函数是个啥?
在编程过程当中,一直在使用回调函数,但是自己却一直没有去深究回调函数究竟是个啥东西!因为使用的时候用就完事了。现在来深究一下! 回调函数的定义回调函数就是一个被作为参数传递的函数。在C语言中,回调函数只能使用函数指针实现,在C++、Python、ECMAScript等更现代的编程语言中还可以使用仿函数或匿名函数。 百度百科解释其机制: 定义一个回调函数; 提供函数实现的一方在初始化的时候,将回调函数的函数指针注册给调用者; 当特定的事件或条件发生的时候,调用者使用函数指针调用回调函数对事件进行处理。 简单来理解就是在最开始初始化一个函数,当需要使用到这个函数的时候调用这个函数指针对事件进行处理。这个解释其实也不简单,因为如果你使用的是python,没有指针会很难理解。 由于在python中已经没有指针的概念,所以函数名字将作为参数传递给另一个函数作为参数,在事件触发的时候调用。如下: 1234567def callbcak_func(args): print(*args)def caller(args, func): func(args)caller((1,2),...
docker基础
http://link.hhtjim.com/163/523658940.mp3 关于dockerDocker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。 翻简单来说就是可以可以打包环境而不需要打包整个虚拟机,只要其他电脑上有dockers,开发者就能让自己的项目在各种条件下执行起来 docker安装使用脚本安装 Docker: 1234$ sudo yum update$ curl -fsSL https://get.docker.com/ | sh$ sudo service docker start$ sudo docker run hello-world 镜像与容器docker的镜像其实就是模板,跟我们常见的ISO镜像类似,是一个样板。使用镜像常见的应用或者系统,称之为一个容器。镜像是docker容器运行时的只读模板,镜像可以用来创建docker容器。 Docker 利用容器...






websocket/封面.jpg)







