上回说到
听说你想用免费的FOFA?
记得那是一个阳光正好的午后,我刚更新了导出文件类型,到了晚上就发现fofa hack下载不了了,看了一下最新的规则,FOFA取消了永久会员,并且把注册用户的每月查询上限限制了
跟朋友讨论一番后觉得原有的爬取方式嗝屁了
然后发布了一个终版
过了几天在等待又老师跟我视频的时候突然灵光乍现(爱老婆会发财
既然注册用户被限制了,那直接使用未登录用户不就行了,同时时间戳语法是对未登录用户开放的
然后就更新了 2.0.0版本
蒽...无意冒犯,希望工作人员不要被气笑
该方法的缺点也很明显,那就是遗漏的数据会很多,因为时间戳的方式太粗狂了
然后有个朋友(我有个朋友系列)提了ISSUE,跟我的想法不谋而合
后面加了个好友讨论了好久....
针对第二个问题,每页结果增加到20条,这个确实在web页面上可以做到的,即未登录用户能够通过fofa api接口获得20条数据,而不是10条,但是整体的逻辑我还没有具体去分析,所以还没有应用进来,该方法在一定程度上可以缓解10条数据的局促
第一个方法现在首先是通过细粒度关键字来进行细化搜索的,即
比如说,输入的关键字是 host="edu.cn"
进行到上述的红框代码时,就会变成
host="edu.cn" && country="CN"
然后再进行时间戳的获取,即
host="edu.cn" && country="CN" && before="2023-04-03"
当然还有很多个关键字,依次细化,递归获取就能够最大化结果
上述的方式还是会有一定的遗漏,所以准备在V2.1.x系列最后添加 != 符号来获取反转数据(现在还在鸽着
例如
host="edu.cn" && country!="CN" && port!=8080 && before="2023-04-03"
用一点小trick来更大化获取结果
建了一个微信的安全交流群,欢迎添加我微信备注进群
,一起来聊天吹水哇,以及一个会发布安全相关内容的公众号,欢迎关注 ?
一、GET和POSTGET用于获取信息,是无副作用的,是幂等的,且可以缓存的。POST用于修改服务器上的数据,有副作用,非幂等的,不可缓存。二、报文的区别GET和POST没有实质的区别,只是报文格式的不同GET和POST只是HTTP协议中的两种请求方式,而HTTP协议是基于TCP/IP的应用层协议,无论是GET还是POST,用的都是同一个传输层协议,所以在传输上没有区别。报文格式上,不带参数时,最大的却别是第一行方法名不同。POST方法请求报文第一行是:POST/uriHTTP/1.1\r\n,而GET方法请求报文第一行是:GET/uriHTTP/1.1\r\n。所以,不带参数的时候,它们的区别仅仅就是报文前面几个字符不同而已,至于带参数的报文的区别就是:约定GET方法的参数应该放在url中,POST方法参数应该放在body中。例如:如果参数是:page=2,name=bitbo,那么GET方法的报文头部前面可能是:GET/book?page=2&name=bitboHTTP/1.1 Host:localhost复制POST方法简约版报文可能是:POST/bookHTTP/1.
松哥给最近连载的SpringSecurity系列也录制了视频教程,感兴趣的小伙伴请戳这里->SpringBoot+Vue+微人事视频教程(SpringBoot第十章就是SpringSecurity)。关于密码加密的问题,松哥之前已经和大家聊过了,参考:SpringBoot中密码加密的两种姿势!这篇文章中,松哥给大家介绍了两种密码加密方案,但是两种都是独立使用的!能不能在同一个项目中同时存在多种密码加密方案呢?答案是肯定的!今天松哥就来和大家聊一聊,如何在SpringSecurity中,让多种不同的密码加密方案并存。为什么要加密?常见的加密算法等等这些问题我就不再赘述了,大家可以参考之前的:SpringBoot中密码加密的两种姿势!,咱们直接来看今天的正文。1.PasswordEncoder在SpringSecurity中,跟密码加密/校验相关的事情,都是由PasswordEncoder来主导的,PasswordEncoder拥有众多的实现类:这些实现类,有的已经过期了,有的用处不大。对于我们而言,最常用的莫过于BCryptPasswordEncoder。PasswordEncod
当突发事件来临时,当绝佳idea闪现时,如何快速搞定开发和部署,使之变身为产品?快,则应万变!Serverless是当今炙手可热的技术,被认为是云计算发展的未来方向,如何利用ServerlessFramework实现快速上云?本文是王俊杰老师在「腾讯云开发者社区沙龙online」的分享整理,详细阐述了Serverless上云的基本思路、框架原理、组件架构等,带大家揭开Serverless的神秘面纱。应对突发需求,如何借助Serverless快速上云?_腾讯视频一、Serverless上云基本概念感谢腾讯云开发者社区组织这次“技术应变力”的线上专题活动,并邀请我来进行分享,我将从Serverless的角度来进行解读。Serverless是最近非常热门的词,中文翻译为“无服务器”。有人认为既然是无服务器,就意味着不再需要运维,完全是按需付费的模式......其实这些理解都比较片面,描述的都只是Serverless的某个方面。从2014~2020年,这几年Serverless关键词的谷歌搜索指数与日攀升,现在已经成为了非常火爆的技术名词。其实早在2006年就有人提出Payasyougo的概
命令需要在bash下运行,windows系统可使用git客户端附带的“gitbashhere”右键菜单进入bash命令行统计所有代码行数gitlog--pretty=tformat:--numstat|awk'{add+=$1;subs+=$2;loc+=$1-$2}END{printf"addedlines:%s,removedlines:%s,totallines:%s\n",add,subs,loc}'复制命令详解: 使用指定格式输出日志gitlog--pretty=tformat:--numstat复制输出形式为添加行数删除行数文件路径 读取每一行日志并分成数个字段进行处理,并在处理完成后执行END指定的命令输出汇总信息awk'{add+=$1;subs+=$2;loc+=$1-$2}END{printf"addedlines:%s,removedlines:%s,totallines:%s\n",add,subs,loc}'复制统计一定时间内产生的代码行数gitlog--since=2019-01
UOJ#424.【集训队作业2018】count 如果一个序列满足序列长度为\(n\),序列中的每个数都是\(1\)到\(m\)内的整数,且所有\(1\)到\(m\)内的整数都在序列中出现过,则称这是一个挺好序列。 对于一个序列\(A\),记\(fA(l,r)\)为\(A\)的第\(l\)个到第\(r\)个数中最大值的下标(如果有多个最大值,取下标最小的)。 两个序列\(A\)和\(B\)同构,当且仅当\(A\)和\(B\)长度相等,且对于任意\(i≤j\),均有\(fA(i,j)=fB(i,j)\)。 给出\(n,m\),求有多少种不同构的挺好序列。答案对\(998244353\)取模。 输入格式 一行两个正整数\(n,m\)。 输出格式 一行一个整数,表示有多少种不同构的挺好序列。 样例一 input 32 复制 output 4 复制 显然\(n<m\)时答案为\(0\)。 解决这种题的思路就是找一个“等价条件”来计数。关于区间最大值的问题,我们可以用笛卡尔树。 对于一个笛卡尔树的每个节点\(v\),\(ls_v<v,rs_v\leqv\)。所以,如果一个笛卡尔树的
在这个圈子里面已经摸爬滚打5年之久,但是一直都是逛园子,从来没有写过博客,最近突然想把自己的一些心得分享出来,第一次写博客,可能写的不好,希望大家不要喷,口下留情。 今天是我的第一篇博客,所以也没有好好的准备,就简单的写一些。因为目前工作的原因,接触了一些互联网金融方面的知识,之前我对比如说淘宝,滴滴打车等等这要的P2P平台到底是怎么挣钱的,开始的时候他们不仅不挣钱,而且还给钱(所以大家都说P2P是一个烧钱的项目),一直都是处于比较迷茫的阶段,不知道他们到底是怎么运营的,为什么马云突然间就那么有钱?就淘宝来说吧,他只是一个平台,只要在淘宝上开一个店铺,只要交一定的保证金,到你不开店的时候就会返回。可是这也看不出什么猫腻来,他们的钱到底从哪里来,为什么像马云这些人物,会有花不完的钱?他们到底是怎么钱生钱的?今天我就给大家系统的介绍一下,说的对与不对,大家参考就好,勿喷! 我们就拿淘宝来做一个例子吧,来说明他们是怎么挣钱的。在这里我先像大家普及一下T+N,自从2014年7月到2015年5月在股市中是一个傻子都能挣钱的时
当下,风控策略岗已经是金融科技圈里的热门岗位,随着各大厂布局金融领域,该岗位的需求方也从早些年的银行、消费金融公司扩展至如今的互联网渠道。 然而对于刚毕业的小白或者是意图转岗的“行外者”而言,却对这一岗位了解甚少。 知乎上“转行做风控,需要做哪些准备?”的问题,有6万的点击量,笔者也曾在豆瓣上回答过“收到美团的风险政策岗,该不该去?”的问题。 那么,风险策略分析师具体是做什么的?他的发展前途怎么样,需要必备的一些技能是什么呢? 01风险策略分析师的发展前途 风控策略分析师,是银行信贷按行业主导“价值实现”的核心岗位,负责构建风控策略体系,以量化分析为基础,有效识别欺诈风险与信用风险,制定不同类型产品的风控策略,同时负责监控各项风险指标,及时进行风控策略的调整与优化工作。 毫无疑问,风险策略分析师作为业务方的“数据分析”,在金融领域的吃香程度已不亚于普通的数据分析师,甚至高于普通的数据分析师,毕竟该岗位具备业务经验+数据技能的双重门槛。 一方面,从“钱途”上看,在一些招聘网站,我们可以看到1-3年经验的风险策略分析师基本月薪都在15-30k不等,在职场新人中属于“高薪一族”; 另一方面,
学生管理系统 功能:1添加学生 2删除学生 3修改学生信息 4查看所有学生 学生类 importjavax.print.DocFlavor; publicclassStudent{ privateStringID; privateStringname; privateStringage; privateStringaddress; publicStudent(){ } publicStudent(StringID,Stringname,Stringage,Stringaddress){ this.ID=ID; this.name=name; this.age=age; this.address=address; } publicStringgetID(){ returnID; } publicvoidsetID(StringID){ this.ID=ID; } publicStringgetName(){ returnname; } publicvoidsetName(Stringname){ this.name=name; } publ
通过JS检测WeChat、Android、iOS环境 代码块: //检测微信状态下的手机设备环境 functioncheckHJByWeChat(){ //设备变量区分 letweb=navigator.userAgent, isiOS=!!web.match(/\i[^;]+;(U;)?CPU.+MacOSX/), isAndroid=web.indexOf('Android')>-1||web.indexOf('Adr')>-1, isWeChat=web.toLocaleLowerCase().match(/MicroMessenger/i)=='micromessenger'; lettest=''; //WeChat环境下 if(isWeChat){ console.log('当前环境为WeChat'); if(isAndroid){//Android环境下 test='当前环境为WeChat-->Android'; }elseif(isiOS){//iOS环境下 test='当前环境为WeChat-->
1.配置Zookeeper 先Zookeeper配置 在要设置为zookeeper的各个节点 1.上传zookeeper-3.4.6.tar.gz安装包到slave1节点的/opt目录下 2.解压tar-zxf/opt/zookeeper-3.4.6.tar.gz-C/usr/local/ 3.进入/usr/local/zookeeper-3.4.6/conf,cd/usr/local/zookeeper-3.4.6/conf 4.复制zoo_sample.cfg重命名为zoo.cfg,cpzoo_sample.cfgzoo.cfg 配置内容如下: dataDir=/usr/lib/zookeeper dataLogDir=/var/log/zookeeper clientPort=2181 tickTime=2000 initLimit=5 syncLimit=2 server.1=slave1:2888:3888 server.2=slave2:2888:3888 server.3=slave3:2888:3888 复制 5.在各个子节点新建以下文件夹: mkdir/us
有一棵二叉树,如下图所示: 其中#表示空结点。 先序遍历:ABDEGCF 问题:怎么得到从根结点到任意结点的路径呢? 示例:输入G,怎么得到从结点A到结点G的路径呢? 很明显,我们一眼就能看出来路径是ABEG。如何通过程序得到这条路径就是我们接下来需要做的。 定义二叉树的链式存储结构如下: typedefstructBiTNode{ chardata; structBiTNode*lchild,*rchild; }BiTNode,*BiTree;//二叉树结点的存储结构 复制 二叉树的遍历有三种方式:即先序遍历,中序遍历,后序遍历。 先序遍历是先访问结点再递归子树。我们只需要访问到目标结点的时候就知道了路径就可以结束递归,因此正好符合要求。另外两个也可以得到路径,但是还要先访问子树,显然是没必要的。 先序遍历可以通过递归实现,我们只需要加个容器来保存路径即可。栈正好满足要求。由于不知道路径的长度,因此采用链栈来实现。 链栈结构如下: typedefstructStackNode{ chardata; structStackNode*next; }StackNode,*S
在服务器上安装bartender软件,创建一个新的标签模板 添加一个输入框 右键点击输入框,打开属性对话框 命名数据源的名字为Test,关闭对话框,然后保存模板 打开VS创建一个framework类库BTDemo,打开项目属性对话框,按下图进行更改(EA1BEC9E-833F-4227-8130-9AA0B68E611B) 添加引用 Camstar.AppServer.BusinessLogic.CustomProcImpl.dll,Camstar.AppServer.BusinessLogic.CustomProcParameters.dll,Newtonsoft.Json.dll在C:\ProgramFiles(x86)\Camstar\InSiteServer目录, Seagull.BarTender.Print.dll在C:\ProgramFiles\Seagull\BarTender2021\SDK\Assemblies 添加类BarTend usingSystem; usingSystem.Collections.Generic; usingSys
首先在idea中创建一个web项目,环境配置和项目依赖一系列配置完成后创建一个servlet进行测试输出,配置这里可以参考一篇博客:https://blog.csdn.net/herojuice/article/details/85209326 这里我创建的是helloservlet 然后在web.xml中配置一下,就可以/hello的方式访问到这个servlet 运行项目并在网址后面加上hello访问 运行测试成功,将登录网页的相关文件复制到项目文件夹web下 新建一个servlet实现连接数据库进行登录验证,并且通过cookie保存用户信息一段时间 这里数据库我使用的是SQLserver2018,表的信息如下 LoginServer信息: protectedvoiddoPost(HttpServletRequestrequest,HttpServletResp
以下是subversion官方推荐的备份方式。 关闭所有运行的进程,并确认没有程序在访问存储库(如httpd、svnserve或本地用户在直接访问)。 备份svn存储库 #压缩备份 svnadmindump/home/workhome/svn/repository|gzip>~/repository-backup.gz #不压缩备份 svnadmindump/home/workhome/svn/repository>~/repository-backup.svn 恢复svn存储库 #建立新的svn存储库 svnadmincreate/home/workhome/svn/newrepository #确认成功与否 ls-l/home/workhome/svn/newrepository #导入存储库数据 svnadminload/home/workhome/svn/newrepository<~/repository-backup.svn SVN数据库迁移方法一 称之为SVN全库操作,或称SVN全局备份并恢复,版本库数据的移植:svnadmindum
file 目的: 识别文件类型 格式:file 文件名 Linux下一切皆为文件 举例: file~/.bashrc 为ASCII 编码的文本文件 file~/.vimrc 为UTF-8Unicode编码的text类型 file/bin/pwd 出现ELF64-bitLSBexecutable,即为ELF可执行文件 file/dev/# 出现characterspecial(字符设备文件)、blockspecial(块设备文件)等。 which和whersis 目的:查找命令或应用程序的所在位置 格式:which命令名/应用程序名 whichpwd 定位到/bin/pwd whichgcc 定位到/usr/bin/gcc whereispwd 查找到可执行程序位置/bin/pwd和手册页的位置 压缩的概念:把文件缩小 压缩类型:无损压缩和有损压缩。 a.有损压缩:比如视频、,MP3。 b.有损压缩:普通文件的压缩,为了保证信息的正确传递。 常用压缩
原文链接:http://axuebin.com/articles/fe-solution/babel/first.html,转载请联系 前言 Babel对于前端开发者来说应该是很熟悉了,日常开发中基本上是离不开它的。 已经9102了,我们已经能够熟练地使用es2015+的语法。但是对于浏览器来说,可能和它们还不够熟悉,我们得让浏览器理解它们,这就需要Babel。 当然,仅仅是Babel是不够的,还需要polyfill等等等等,这里就先不说了。 What:什么是Babel BabelisatoolchainthatismainlyusedtoconvertECMAScript2015+codeintoabackwardscompatibleversionofJavaScriptincurrentandolderbrowsersorenvironments. 简单地说,Babel能够转译ECMAScript2015+的代码,使它在旧的浏览器或者环境中也能够运行。 我们可以在https://babel.docschina.org/repl尝试一下。 一个小?: //es2015的con
1、(1)定义一个汽车类Vehicle,要求如下:(知识点:类的继承 方法的覆盖)(a)属性包括:汽车品牌brand(String类型)、颜色color(String类型)和速度speed(double类型)。(b)至少提供一个有参的构造方法(要求品牌和颜色可以初始化为任意值,但速度的初始值必须为0)。(c)为属性提供访问器方法。注意:汽车品牌一旦初始化之后不能修改。(d)定义一个一般方法run(),用打印语句描述汽车奔跑的功能定义测试类VehicleTest,在其main方法中创建一个品牌为“benz”、颜色为“black”的汽车。(2)定义一个Vehicle类的子类轿车类Car,要求如下:(a)轿车有自己的属性载人数loader(int 类型)。(b)提供该类初始化属性的构造方法。(c)重新定义run(),用打印语句描述轿车奔跑的功能。(d)定义测试类Test,在其main方法中创建一个品牌为“Honda”、颜色为“red”,载人数为2人的轿车。 classhsy{ publicstaticvoidmain(String[]args){ Vehiclev=ne