事实:“站长+”时代百度对SEO态度的三大变化
优采云 发布时间: 2022-11-11 14:18事实:“站长+”时代百度对SEO态度的三大变化
在百度高端沙龙会议的最后,百度站长平台提出了“站长+”时代,阐述了百度SEO优化和态度的三大变化:
1.在网页爬取方面,链接提交更加开放。通过实时提交、插件提交、JS提交等方式,将链接提交权限完全赋予站长。
2、在搜索展示方面,由于referer取消,百度站长平台将陆续为站长提供更深入、更精准的专属数据。
3、在“优化和维护”方面,外部链接在搜索排名中的权重下降了很多,其他很多数据起到了更关键的作用。在“拒绝外链”方面,百度已经具备识别垃圾外链的能力。大部分站长都去这方面浪费人力财力。
最后,官方工作人员告诉大家,百度站长平台的下一个方向是移动,无论是自己的移动还是帮助网站移动化,都会有很大的变化;同时,不断改进工具的易用性和稳定性。后期将吸引大量APP入驻,并陆续推出相关工具和产品,帮助APP在搜索渠道商中获得更多用户。
世界的真相:上帝视角:寻找网站源码
优雅地搜索网站源代码(一)0x0 前言
如果在渗透过程中能得到网站的源代码,无疑会打开上帝的视野。虽然有很多通过搜索引擎找到类似网站然后批量扫描备份的想法,但是没有人分享它的具体过程,这里笔者整理了一下自己开发分布式扫描器的目录扫描模块的一些尝试,同时分享了一些其他的找源码的方法, 希望能给读者带来一些新的体验。
0x1搜索提示 0x1.1 代码托管平台国外的GitHub
和国内的GitHub都是第三方代码托管平台,通过一些搜索技术,我们可以找到很多泄露的敏感信息,包括一些程序的源代码。
这里笔者平时用代码云不多,所以只是简单提一下这个,下面我就重点介绍一下 github 的使用:
学习这种用法对我个人最大的好处是,当我遇到返回大量数据时,我可以根据一些特征过滤掉一些垃圾数据。
Github的搜索页面:
(1) 快速备忘单
基本查询:
搜索存储库:
搜索代码:
搜索用户:
(2)关于Dork的个人咨询
filename:config.php dbpasswdfilename:.bashrc passwordshodan\_api\_key language:pythonpath:sites datab ases password"baidu.com" ssh language:yamlfilename:file.php admin in:pathorg:companyname "AWS\_ACCESS\_KEY_ID:"
(3)查询某关键词
用双引号将其括起来,例如 “”
(4)可以使用 GitDorker 自定义 dork,实现自动化查询。
git clone https://github.com/obheda12/GitDorker.gitcd GitDorkerdocker build -t gitdorker .docker run -it gitdorkerdocker run -it -v $(pwd)/tf:/tf gitdorker -tf tf/TOKENSFILE -q tesla.com -d dorks/DORKFILE -o tesladocker run -it -v $(pwd)/tf:/tf xshuden/gitdorker -tf tf/TOKENSFILE -q tesla.com -d dorks/DORKFILE -o tesla
免安装使用:
python3 GitDorker.py -tf ./TF/TOKENSFILE -q ximalaya.com -d ./Dorks/alldorksv3 -o x mly
参考:
0x1.2 搜索引擎
谷歌:
XX源码XX完整包xx安装程序xx备份xx代码xx开源xx源程序xx框架xx ext:rar | ext:tar.gz |ext:zip
0x1.3 网盘搜索
这个网站做了一个采集,比较完整。
0x2曲线的想法
如果如0x1所述,仍然无法找到源代码,则意味着目标系统是利基或商业类型,因此在互联网上没有广泛流传,因此无法搜索。
这时候我们就可以用曲线思路,通过在这个网站的根目录下查找备份文件,下载源码包,如果还是找不到,那么寻找同一系统的其他网站,扫描这些网站目录中的备份文件和源码包,从而得到系统源码。
我们不能在思想上成为巨人,在行动上成为侏儒,那么如何有效地完成这个过程呢?可以分为以下步骤来完成。
0x2.1 提取特征关于功能,
重点是采集主页功能,即
直接访问域名显示的页面,因为首页最容易被搜索引擎爬虫抓取,其次,采集首页可以访问的其他标志性页面特征。
(1) 标志特征
询问图标.ico获取哈希值
(2) 关键词功能
网站标题,网站版权信息,Javas脚本关键字信息,HTML源代码结构信息,HTTP返回标头功能。
0x2.2 资产集合
关于资产采集,除了调度自己的脚本来整合fofa、shodan和zoomeye三个平台外,我还喜欢使用工具,因为它功能更丰富,更稳定——-fofaviewer。
下载地址:
0x2.3 简单模糊
采集资产后,我喜欢在早期使用 httpx 进行一些简单的路径探测
cat targets.xt|deduplicate|httpx -path '/wwwroot.zip' -status-code
相当于做了一层简单的过滤,帮助 nuclei 减少请求量。
0x2.4 编写核心插件
阅读并学习编写插件的官方文档: 指南:
编写插件的第一步:插件信息
创建备份文件.yaml 文件并写入以下内容
参考:#template细节可以知道
id 是必需的,不能收录空格,并且通常与文件名相同
信息区域是动态的,除了名称、作者、名称、严重性和标签外,还可以添加其他key:value,标签都支持核检索调用,可以参考类似的插件来写。
id: back-up-filesinfo: name: Find Resource Code Of Target Template author: xq17 severity: medium tags: exposure,backup
编写插件的第二步:发送请求
参考:可知
1.HTTP 请求以请求块开头,该请求块指定模板请求的开始时间。
2.请求方法可以根据需要获取,发布,放置,删除等。
3.可以为每个模板指定重定向条件。默认情况下,不遵循重定向。但是,如果需要,可以使用重定向启用它们:在请求 d 尾部中为 true。
4.请求的下一部分是请求路径的路径。可以将动态变量放置在路径中以修改其在运行时的行为。变量以 {
{ 开头,以 }} 结尾,区分大小写。{
{b aseURL}} - 这将在运行时将请求中的原创 URL 替换为目标文件中指定的原创 URL。{
{主机名}} - 主机名变量在运行时替换为目标的主机名。
5.还可以指定标头与请求一起发送。标头以键/值对的形式放置。示例标头配置如下所示:
# headers contains the headers for the requestheaders: # 自定义用户代理标头 用户代理:一些随机用户代理 # 自定义请求来源 起源:
6.正文指定要与请求一起发送的正文。(发送开机自检数据包时需要)。
7.To 维护多个请求之间的cookie b ased浏览器之类的会话,您只需在模板中使用cookie-reuse:true,在您想要维护一系列请求之间的会话以完成漏洞利用链并执行经过身份验证的扫描的情况下很有用。(会话复用,作用是连接攻击链,实现登录验证再攻击)
.)# cookie-reuse
接受布尔输入和 falseas 默认 cookie-reuse: true
8.请求条件允许在多个请求之间检查条件,以编写复杂的检查和涉及多个HTTP请求的漏洞利用,以完成漏洞利用链。
使用DSL匹配器,可以通过添加req-condition:true和数字作为后缀来使用它,例如status_code_1,status_code_3 andbody_2。(编写一个复杂的攻击链)。
要求条件: 真匹配器: - 类型: DSL DSL: - “状态\_code\_1 == 404 &&状态\_code\_2 == 200 &&收录((正文\_2), '秘密\_string')”
。还有许多高级用法,例如支持原创http,种族等,但这里不使用,文档就足够了。
requests: - method: GET path: - "{{b aseURL}}/wwwroot.zip" - "{{b aseURL}}/www.zip"
编写插件的第三步:判断返回的内容
参考:知道
可以在请求中指定多个匹配器。基本上有6种类型的匹配器:状态(
状态代码)大小 (
返回包大小) 字(字符串) 正则表达式(常规匹配) 二进制(二进制文件)。还有一个DSL,对返回的内容
进行高度可定制的验证,它可以对返回的内容进行一些操作(这里暂时不使用)。
可用的帮助程序函数: ,
对于单词和正则表达式,返回内容的多个匹配条件可以与 AND 或 OR 组合。
可以在单个匹配器中指定多个单词和正则表达式,并且可以配置不同的条件,如 AND 和 OR
您可以选择返回包的匹配区域,默认为 body,还可以选择标头和其他任意位置。
响应的多个部分也可以为请求匹配,如果未定义,则默认匹配部分为正文。
支持条件否定是反证明方法的魔力。
所有类型的匹配器也支持负条件,这在查找具有排除项的匹配项时最有用。这可以通过在匹配器块中添加负数:true来使用。
支持多个匹配器
可以在单个模板中使用多个匹配器,以通过单个请求对多个条件进行指纹识别。
支持匹配器条件
使用多个匹配器时,默认条件是在所有匹配器之间遵循 OR 操作,AND 操作可用于确保在所有匹配器返回 true 时返回结果。
结合上述文件的介绍,可以写出以下判断。
matchers-condition: and matchers: - type: binary binary: - "504B0304" # zip part: body - type: dsl dsl: - "len(body)>0" - type: status status: - 200
编写插件的第 4 步:链接各部分
以上代码内容按顺序链接,具体如下:
id: back-up-filesinfo: name: Find Resource Code Of Target Template author: xq17 severity: medium tags: exposure,backuprequests: - method: GET path: - "{{b aseURL}}/wwwroot.zip" - "{{b aseURL}}/www.zip" matchers-condition: and matchers: - type: binary binary: - "504B0304" # zip part: body - type: dsl dsl: - "len(body)>0" - type: status status: - 200
0x2.5 测试插件
在本地启动目标计算机进行调试:
python3 -m http.server 9091
然后调试:
echo 'http://127.0.0.1:9091' | nuclei -t back-up-files.yaml -debug -timeout 2 -stats -proxy-url http://127.0.0.1:8080/
合同授予流程:
您可以看到,插入 nuclei 应用程序后,您可以快速模糊网站备份文件。
0x3 总结
第一篇文章
主要介绍一些编写 nuclei 插件的思路和简单思路,帮助新手快速上手,第二篇是关于如何增强插件,增加扫描目录列表,更精准的判断返回值等内容(这里建议读者先自己阅读 nuclei 模板文档, 这样学习效果更好!),第三篇是利用前两篇文章的知识点和增强插件,完成一次真正的搜索网站源码之旅。