当前位置: 首页 > news >正文

CTF Web信息搜集 25000字详解

目录

  • 前言
  • 信息收集
    • 常见信息
    • 分类
      • 域名信息
        • whois
        • 备案
        • CDN
        • 子域名
        • 解析记录
      • 旁站
      • C段
      • 服务器信息
        • 端口
        • 服务器类型
        • 数据库类型
        • waf防火墙
      • 网站信息
        • 备份文件
          • 备份文件常见的后缀名
          • 备份文件常见的文件名
          • gedit备份文件
          • vim备份文件
          • 收集方法
        • 敏感目录
        • CMS类型(指纹识别)
        • 探针泄漏
      • 谷歌hacker
      • 源码泄露
        • git 源码泄露
        • SVN 源码泄露
        • hg源码泄漏
        • CVS泄露
        • Bazaar/bzr泄露
        • DS_Store 文件泄露
    • http状态码
  • ctfshow web1-20
    • web1(注释)
    • web2(JS禁用F12)
    • web3(响应体)
    • web4(robots.txt)
    • web5(phps源码)
    • web6(备份文件)
    • web7(git泄漏)
    • web8(svn泄漏)
    • web9(vim备份)
    • web10(cookie)
    • web11(域名解析记录)
    • web12(社工)
    • web13(技术文档)
    • web14(网页编辑功能泄漏)
    • web15(社工)
    • web16(php探针)
    • web17(sql备份)
    • web18(查阅js源码)
    • web19(密码泄露)
    • web20(mdb泄漏)
  • 从0到1
    • 常见的搜集(robots、vim、gedit)
    • 粗心的小李(git泄漏)
  • CTFHUB 信息泄漏
    • 目录遍历
    • PHPINFO
    • 备份文件下载
      • 网站源码
      • bak文件
      • vim缓存
      • .DS_Store
    • Git泄漏
      • Log
      • Stash
      • Index
    • SVN泄漏
    • HG泄漏

前言

这段时间开始入门Web,主要是为了在线下赛不那么坐牢

Web的知识还是挺多的,所以需要成体系的学习

每学完一个方面我会写一篇总结性文章,将知识点与例题放在一起,方便后面查阅

如果之后学的更加深入或者遇到什么有代表性的题目,也会添加到文章中

信息收集

渗透的本质是信息收集,信息收集也叫做资产收集。

信息收集是渗透测试的前期主要工作,是非常重要的环节,收集足够多的信息才能方便接下来的测试,信息收集主要是收集网站的域名信息、子域名信息、目标网站信息、目标网站真实IP、敏感/目录文件、开放端口和中间件信息等等。通过各种渠道和手段尽可能收集到多的关于这个站点的信息,有助于我们更多的去找到渗透点,突破口。

常见信息

搜集方面作用
whois得到域名注册人的信息:邮箱、电话号码、姓名
子域名可以扩大攻击范围,子域名一定是有关联的,很多时候基本上都同属一个公司
端口探测危险端口可以直接爆破入侵,一个Ip可能搭建了多个网站,分布在不同的端口
目录扫描目录扫描有的时候可以访问到压缩包源码、编辑器目录、废弃页面、其他站点
指纹识别识别CMS,寻找通杀漏洞
旁站查询旁站其实就是同IP站点,一定和目标站点在同一个内网或者是同一台服务器
C段查询C段可能是同一个内网,同一个公司
内容敏感信息泄露通过谷歌语法得到其他的东西

分类

域名信息

whois

概述

whois(读作“Who is”,非缩写)是用来查询域名的IP以及所有者等信息的传输协议。简单说,whois就是一个用来查询域名是否已经被注册,以及注册域名的详细信息的数据库(如域名所有人、域名注册商)

收集方法

  • http://whois.chinaz.com/
  • https://www.whois.com/
  • VirusTotal - Home
备案

概述

网站备案也算是中国互联网的一大特色了

非经营性网站备案(Internet Content Provider Registration Record),简称ICP备案,指中华人民共和国境内信息服务互联网站所需进行的备案登记作业。

如果某网站申请了ICP备案,那么就能通过查询备案可以获取备案人的大量信息

收集方法

  • ICP备案查询网 - 网站备案查询 - 工信部域名备案查询实时数据 (beianx.cn)
  • ICP备案查询_备案号查询_网站备案查询 - 天眼查 (tianyancha.com)

注意事项

一些个人网站底部贴的备案号很有可能是假的,或从其他站点复制过来的。所以查询备案信息时尽量通过域名来直接查询。

CDN

概述

內容分发网络(英语:Content Delivery Network或Content Distribution Network,缩写:CDN)是指一种透过互联网互相连接的电脑网络系统,利用最靠近每位用户的服务器,更快、更可靠地将音乐、图片、视频、应用程序及其他文件发送给用户,来提供高性能、可扩展性及低成本的网络内容传递给用户。

正好在我的博客R1ck’s Portal中,也使用到了这种内容分发网络服务,所以对它的作用的体会非常深刻。

在很大程度上,CDN能抵御像DDOS之类的攻击,同时还能让站点的真实IP “隐身”

但是这对于我们渗透测试时影响很大:无论我们对CDN的服务器有多大的控制权,也始终影响不到真实站点,也就是源站

此时需要我们绕过CDN,找到真正源站的IP

绕过方法

  1. 查询历史DNS记录

    • IP History - ViewDNS.info
    • DNSDB
  2. PHPinfo

    如果目标网站存在phpinfo泄露等,可以在phpinfo中的
    SERVER_ADDR_SERVER["SERVER_ADDR"]找到真实ip

  3. 查询子域名

    CDN的流量费还是不便宜的,所以很多站长可能只会对主站或者流量大的子站点做了 CDN,而很多小站子站点又跟主站在同一台服务器或者同一个C段内,此时就可以通过查询子域名对应的 IP 来辅助查找网站的真实IP。

    具体查询子域名的方法会在接下来介绍

  4. 使用国外主机解析域名

    国内很多 CDN 厂商因为各种原因只做了国内的线路,而没有针对国外的线路,此时我们使用国外的主机直接访问可能就能获取到真实IP。

  5. 网站邮件订阅查找

    RSS邮件订阅,很多网站都自带 sendmail,会发邮件给我们,此时查看邮件源码里面就会包含服务器的真实 IP了。

子域名

概述

收集子域名可以扩大测试范围,同一域名下的二级域名都属于目标范围。

收集方法

  1. 使用搜索引擎在线收集

    • FOFA搜索子域名

      网络空间测绘,网络空间安全搜索引擎,网络空间搜索引擎,安全态势感知 - FOFA网络空间测绘系统

      语法:domain=“主域名”

    • 使用谷歌语法

      Site:主域名

  2. 在线查询

    • 子域名查询 查子域名 查子站 子域名大全 二级域名查询 查子域 (chaziyu.com)
    • DNSdumpster.com - dns recon and research, find and lookup dns records
    • http://tool.chinaz.com/subdomain/
  3. 使用工具爆破挖掘子域名

    • Layer

      链接:https://pan.baidu.com/s/1QEYXjrGsARcXk6D-xLS64Q?pwd=1111
      提取码:1111

    • OneForAll

      shmilylty/OneForAll: OneForAll是一款功能强大的子域收集工具 (github.com)

      使用OneForAll时需要以管理员身份打开终端

      使用高版本python运行时可能会出现报错ImportError: cannot import name ‘sre_parse’ from ‘re’

      解决方法是找到python文件下的Lib\site-packages\exrex.py文件,对其代码进行更改:

      image-20230822210252449

  4. 使用证书反查

    crt.sh | Certificate Search

解析记录

概述

查询域名的NS记录、MX记录、TXT记录等很有可能指向的是真实ip或同C段服务器。

同时flag也有可能藏在这些解析记录中

常见解析类型

  1. A记录(Address Record):A记录将域名解析为IPv4地址。这是最常见的DNS记录类型,用于将主机名(例如:http://example.com)指向一个IPv4地址(例如:192.0.2.1)。
  2. AAAA记录(IPv6 Address Record):AAAA记录将域名解析为IPv6地址。与A记录类似,AAAA记录用于将主机名(例如:http://example.com)指向一个IPv6地址(例如:2001:0db8:85a3:0000:0000:8a2e:0370:7334)。
  3. CNAME记录(Canonical Name Record):CNAME记录用于将一个域名指向另一个域名。通常用于别名或子域名的情况,例如将http://www.example.com指向http://example.com。
  4. MX记录(Mail Exchange Record):MX记录用于指定处理域名电子邮件的邮件服务器。通常,MX记录会指向一个邮件服务器的域名,如:http://mail.example.com。
  5. NS记录(Name Server Record):NS记录指定了负责解析域名的DNS服务器。通常,在注册域名时,域名注册商会为您分配默认的NS记录。这些记录可以更改,以便将域名的解析委托给其他DNS服务器。
  6. TXT记录(Text Record):TXT记录用于存储与域名相关的任意文本信息。这些记录通常用于验证域名所有权(如Google网站验证)或实现电子邮件验证技术(如SPF,DKIM和DMARC)。

收集方法

  1. 使用本机的nslookup命令

    nslookup -type=type domain [dns-server]

    其中type为解析类型,domain为域名,dns服务器为可选项

    命令详解:nslookup命令详解和实战例子(全)_老鸟诗人的博客-CSDN博客

  2. 在线查询

    • 在线域名解析记录检测-在线Nslookup域名解析查询工具 (jsons.cn)
    • 域名解析查询 | DNS查询 | IPv6解析 | 在线dig | IP查询(ipw.cn)

旁站

概述

旁站指的是同一服务器上的其他网站,一般是同一ip

收集方法

  1. 在线查询

    • 同IP网站查询,同服务器网站查询 - 站长工具 (chinaz.com)

    • ip查询 查ip 网站ip查询 同ip网站查询 iP反查域名 iP查域名 同ip域名 (ipchaxun.com)

  2. 搜索引擎

    fofa

    语法:ip=“xxx.xxx.xxx.xxx”

C段

概述

对目标主机无计可施时,我们可以尝试一下从C段入手。C段入侵是拿下同一C段下的服务器,也就是说是D段1-255中的一台服务器,然后直接从被端掉的服务器出发进行其他测试

收集方法

  1. 在线查询

    同IP网站查询,C段查询,IP反查域名,在线C段,旁站工具 - WebScan

  2. 搜索引擎

    fofa

    语法:ip=“xxx.xxx.xxx.0/24”

服务器信息

端口

概述

当确定了目标大概的ip段后,可以先对ip的开放端口进行探测,一些特定服务可能开起在默认端口上,探测开放端口有利于快速收集目标资产,找到目标网站的其他功能站点。通过扫描服务器开放的端口以及从该端口判断服务器上存在的服务。

收集方法

  1. 在线端口检测

    • 端口扫描 - 站长工具 (chinaz.com)
    • 在线端口检测,端口扫描,端口开放检查-在线工具-postjson (coolaf.com)
  2. 扫描工具

    • 御剑

    • Nmap

      教程:https://blog.csdn.net/weixin_54977781/article/details/123852687

服务器类型

网站服务器有不同的操作系统:windows、Linux、mac os

windows对大小写不敏感,其他两个对大小写敏感

数据库类型

目前比较常用的数据库有:MySQL、SQL server、Oracle等。SQL server开放的默认端口:1433,MySQL开放的默认端口:3306、Oracle开放的默认端口:1521。

waf防火墙

收集方法

kali自带Wafw00f

语法:wafw00f xxx.com

网站信息

备份文件

除了F12查看源代码,有时网站的备份文件也会泄漏源代码

备份文件是常见的源码泄露的方式,实践中往往是开发者的疏忽而忘记删除备份文件,从而导致服务器中残留源码。我们可以通过访问这些备份文件来审计代码,一般情况下可以用后台扫描工具扫描。

备份文件常见的后缀名

备份文件基本上都是压缩包

.rar .zip .7z .tar .gz .bak
对于bak类的备份文件,可以直接输入文件名称+.bak访问例如:
index.php.bak
.txt .old .temp _index.html .swp .sql .tgz

备份文件常见的文件名

web website backup back www wwwroot temp db data code test admin user
sql

gedit备份文件

在Linux下,用gedit编辑器保存后,当前目录下会生成一个后缀为~的文件,其文件内容就是刚编辑的内容。假设刚才保存的文件名为flag,则该文件名为flag~。

通过浏览器访问这个带有~的文件,便能得到源代码

vim备份文件

使用vim编辑器编写filename文件时,会有一个.filename.swp文件产生,它是隐藏文件。如果编写文件时正常退出,则该swp文件被删除,如果异常退出,该文件则会保存下来,该文件可以用来恢复异常退出时未能保存的文件,同时多次意外退出并不会覆盖旧的.swp文件,而是会生成一个新的,例如.swo文件。

针对swp备份文件,我们可以用vim -r命令恢复文件的内容

例如当前目录下假如存在.flag.swp文件,则恢复命令为vim -r flag

收集方法
  1. 手动组合文件名和后缀并尝试

  2. 使用后台扫描工具

  3. 使用BurpSuite

    将访问目标站点的请求包转到Intruder模块

    image-20230824160319872

    使用集束炸弹模式,并设置两个变量

    image-20230824161726084

    设置payload为测试用的文件名和后缀

    image-20230824162745213

  4. 使用自定义python脚本

    import requestsurl1 = 'http://example.com'		# url为被扫描地址,后不加‘/’# 常见的网站源码备份文件名
    list1 = ['web', 'website', 'backup', 'back', 'www', 'wwwroot', 'temp','data','db','code','admin','user','sql','index.php']
    # 常见的网站源码备份文件后缀
    list2 = ['tar', 'tar.gz', 'zip', 'rar', 'bak','old' ,'temp','_index.html','.swp','.sql','.tgz']for i in list1:for j in list2:back = str(i) + '.' + str(j)url = str(url1) + '/' + backprint(back + '    ', end='')print(requests.get(url).status_code)
敏感目录

概述

通过扫描目录和文件,大致了解同站的的结构,获取突破点,比如后台,文件备份,上传点以及源码的目录

敏感文件常见的如.git文件泄露,.svn文件泄露,phpinfo泄露等

收集方法

  1. 后台扫描工具

    • 御剑

      链接: https://pan.baidu.com/s/1uvnBpzTvp7GLhIoivnIN0w?pwd=1111

      提取码: 1111

      御剑工具的字典非常重要,平时做题遇到没见过的的后台都可以加进去

    • dirsearch

      这里安装dersearch后可能会出现扫描慢的情况(正常扫描速度应该在200/s左右)

      解决方法参考这篇文章:dirsearch扫描速度慢的bug修复 | LiangMaxwell’s Blog

      语法:python dirsearch.py -u http://example.com:10800

      指定响应码可以加上-i

      例如若要指定200和300-399之间的响应码,可以加上-i 200,300-399

      递归目录扫描,可以加上-r -R 层数

      详细使用教程:dirsearch用法大全_kit_1的博客-CSDN博客

  2. 查看robots.txt和sitemap.xml等文件

  3. 搜索引擎在线收集

    • 任意文件下载:site:域名 filetype:zip|rar|zip|xml
    • 敏感信息(目录):site:域名 index of、intitle:"Index of /admin"
    • 未授权访问:inurl:php? intext:CHARACTER_SETS,COLLATIONS, ?intitle:phpmyadmin
    • 后台:site:xxx.com inurl:login|admin|manage|member|admin_login|login_admin|system|login|user
CMS类型(指纹识别)

概述

收集好网站信息之后,应该对网站进行指纹识别,通过识别指纹,确定目标的cms及版本,方便制定下一步的测试计划

CMS内容管理系统的缩写。它是一种软件工具,用于创建、编辑和发布内容。CMS系统可以帮助用户创建和管理他们的网站,帮助网站管理员管理构成现代网站的许多不同资源,内容类型和各种数据。CMS系统分为四种不同类型:企业内容管理系统(ECM / ECMS),Web内容管理系统,Web组内容管理系统和组件内容管理系统。CMS最擅长的就是建设网站,最流行的CMS有:Wordpress,Drupal,Joomla

收集工具

  1. 在线识别工具

    • 云悉: 云悉互联网WEB资产在线梳理|在线CMS指纹识别平台 - 云悉安全平台 (yunsee.cn)
    • 潮汐:TideFinger 潮汐指纹 TideFinger 潮汐指纹 (tidesec.com)
  2. kali自带的whatweb

    语法:whatweb xxx.com

探针泄漏

概述

安装了LNMP后或者是配置了PHP环境后,我们一般习惯性地上传一个PHP探针来检测一下我们的PHP环境是否正确地配置,同时有时遇到一些特殊的程序需要相关的PHP组件支持,我们也可以上传一个PHP探针来检测一下我们的Web环境是否符合要求。

收集方法

  1. 尝试手动添加常见的探针文件

    常见探针文件有:

    phpinfo.php

    tz.php

    monitor.php

    l.php

  2. 在后台扫描字典中添加常见探针文件

谷歌hacker

谷歌语法

  • site:

    • 指定域名
  • filetype:

    • 指定文件类型
  • inurl:

    • 指定URL
  • link:

    • 包含指定网页的链接的网页
  • intitle:

    • 指定title
  • intext:

    • 指定内容

详细教程

信息收集之Google Hacking的简单用法_index of /admin_谢公子的博客-CSDN博客

源码泄露

git 源码泄露

git是一个主流的分布式版本控制系统,开发人员在开发过程中经常会遗忘.git文件夹,导致攻击者可以通过.git文件夹中的信息获取开发人员提交过的所有源码,进而可能导致服务器被攻击而沦陷

  • 常规git泄漏

    利用.get文件恢复源码

    使用工具GitHacker:WangYihang/GitHacker

    语法:githacker --url http://example.com/.git/ --output-folder G:\CTF\Web\工具\GitHacker\result

    或者使用工具dvcs-rippper

    rip-git.pl -v -u http://www.example.com/.git/

  • git回滚

    git会记录每次提交(commit)的修改

    git回滚可以让我们复原之前commit的版本

    git log --stat可以查看每个commit修改了哪些文件

    git diff HEAD commit-id可以查看当前版本与指定commit之间的区别

    使用git stash pop恢复文件

    使用命令git reset HEAD^可以回到上一个版本

  • git分支

    git中常用的是master分支,但也可能存在其他的时间线分支

    在恢复的源码文件夹中执行git branch -v查看分支信息

    执行git reflog查看checkout记录

    下载分支的head信息

    再使用工具恢复

SVN 源码泄露

SVN是一个开放源代码的版本控制系统,和Git类似。在使用SVN管理本地代码过程中,会自动生成一个名为.svn的隐藏文件夹,其中包含重要的源代码信息。

主要利用**.svn/entrieswc.db文件**

可以使用工具dvcs-ripper

dvcs-ripper需要在linux系统使用

rip-svn.pl -v -u http://www.example.com/.svn/

hg源码泄漏

Mercurial 是一种轻量级分布式版本控制系统,使用 hg init的时候会生成.hg,其中包含代码和分支修改记录等信息。

可以使用工具dvcs-ripper

rip-hg.pl -v -u http://www.example.com/.hg/

CVS泄露

CVS是一个C/S系统,多个开发人员通过一个中心版本控制系统来记录文件版本,从而达到保证文件同步的目的。

针对 CVS/Root以及CVS/Entries目录,直接就可以看到泄露的信息。

利用工具dvcs-ripper

rip-cvs.pl -v -u http://www.example.com/CVS/

Bazaar/bzr泄露

bzr是个版本控制工具, 虽然不是很热门, 但它也是多平台支持, 并且有不错的图形界面。

使用工具dvcs-ripper

rip-bzr.pl -v -u http://www.example.com/.bzr/

DS_Store 文件泄露

.DS_Store是Mac下Finder用来保存如何展示 文件/文件夹 的数据文件,每个文件夹下对应一个。如果将.DS_Store上传部署到服务器,可能造成文件目录结构泄漏,特别是备份文件、源代码文件。

使用工具ds_store_exp

python ds_store_exp.py http://www.example.com/.DS_Store

http状态码

响应分为五类:信息响应(100–199),成功响应(200–299),重定向(300–399),客户端错误(400–499)和服务器错误 (500–599):

分类分类描述
1**信息,服务器收到请求,需要请求者继续执行操作
2**成功,操作被成功接收并处理
3**重定向,需要进一步的操作以完成请求
4**客户端错误,请求包含语法错误或无法完成请求
5**服务器错误,服务器在处理请求的过程中发生了错误

HTTP状态码列表:

状态码状态码英文名称中文描述
100Continue继续。客户端应继续其请求
101Switching Protocols切换协议。服务器根据客户端的请求切换协议。只能切换到更高级的协议,例如,切换到HTTP的新版本协议
200OK请求成功。一般用于GET与POST请求
201Created已创建。成功请求并创建了新的资源。这通常是在 POST 请求,或是某些 PUT 请求之后返回的响应。
202Accepted已接受。已经接受请求,但未处理完成
203Non-Authoritative Information非授权信息。请求成功。但返回的meta信息不在原始的服务器,而是一个副本
204No Content无内容。服务器成功处理,但未返回内容。在未更新网页的情况下,可确保浏览器继续显示当前文档
205Reset Content重置内容。服务器处理成功,用户终端(例如:浏览器)应重置文档视图。可通过此返回码清除浏览器的表单域
206Partial Content部分内容。服务器成功处理了部分GET请求
300Multiple Choices多种选择。请求的资源可包括多个位置,相应可返回一个资源特征与地址的列表用于用户终端(例如:浏览器)选择
301Moved Permanently永久移动。请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI。今后任何新的请求都应使用新的URI代替
302Found临时移动。与301类似。但资源只是临时被移动。客户端应继续使用原有URI
303See Other查看其它地址。与301类似。使用GET和POST请求查看
304Not Modified未修改。所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。客户端通常会缓存访问过的资源,通过提供一个头信息指出客户端希望只返回在指定日期之后修改的资源
305Use Proxy使用代理。所请求的资源必须通过代理访问
306Unused已经被废弃的HTTP状态码
307Temporary Redirect临时重定向。与302类似。使用GET请求重定向
400Bad Request客户端请求的语法错误,服务器无法理解
401Unauthorized请求要求用户的身份认证
402Payment Required保留,将来使用
403Forbidden服务器理解请求客户端的请求,但是拒绝执行此请求
404Not Found服务器无法根据客户端的请求找到资源(网页)。通过此代码,网站设计人员可设置"您所请求的资源无法找到"的个性页面
405Method Not Allowed客户端请求中的方法被禁止
406Not Acceptable服务器无法根据客户端请求的内容特性完成请求
407Proxy Authentication Required请求要求代理的身份认证,与401类似,但请求者应当使用代理进行授权
408Request Time-out服务器等待客户端发送的请求时间过长,超时
409Conflict服务器完成客户端的 PUT 请求时可能返回此代码,服务器处理请求时发生了冲突
410Gone客户端请求的资源已经不存在。410不同于404,如果资源以前有现在被永久删除了可使用410代码,网站设计人员可通过301代码指定资源的新位置
411Length Required服务器无法处理客户端发送的不带Content-Length的请求信息
412Precondition Failed客户端请求信息的先决条件错误
413Request Entity Too Large由于请求的实体过大,服务器无法处理,因此拒绝请求。为防止客户端的连续请求,服务器可能会关闭连接。如果只是服务器暂时无法处理,则会包含一个Retry-After的响应信息
414Request-URI Too Large请求的URI过长(URI通常为网址),服务器无法处理
415Unsupported Media Type服务器无法处理请求附带的媒体格式
416Requested range not satisfiable客户端请求的范围无效
417Expectation Failed服务器无法满足Expect的请求头信息
500Internal Server Error服务器内部错误,无法完成请求
501Not Implemented服务器不支持请求的功能,无法完成请求
502Bad Gateway作为网关或者代理工作的服务器尝试执行请求时,从远程服务器接收到了一个无效的响应
503Service Unavailable由于超载或系统维护,服务器暂时的无法处理客户端的请求。延时的长度可包含在服务器的Retry-After头信息中
504Gateway Time-out充当网关或代理的服务器,未及时从远端服务器获取请求
505HTTP Version not supported服务器不支持请求的HTTP协议的版本,无法完成处理

ctfshow web1-20

web1(注释)

按F12调出页面源码

image-20230822233537054

可以发现flag就放在html注释中

web2(JS禁用F12)

image-20230822233903624

页面显示无法查看源代码,F12按键和右键均失效

考虑到可能是被js给禁用了

方法一:

此处我们在url前加上view-source:直接查看页面源码

image-20230822234638787

在源码中我们能看到js确实禁用了右键和f12等功能

flag仍然藏在注释中

方法二:

由于是JavaScript导致的禁用,那么我们可以直接在浏览器中关闭JavaScript的功能

以edge浏览器为例,在设置中搜索JavaScript,在阻止栏中添加我们想查看源码的站点url

image-20230822235233238

此时F12功能又恢复了

image-20230822235306809

web3(响应体)

根据题目提示,使用burpsuite进行抓包

image-20230822235930989

发现flag藏在响应体中

web4(robots.txt)

题目提示robot,我们直接在网站地址后加/robots.txt

image-20230823000254654

不让爬的文件中有一个flag命名的txt文件,flag应该就在其中

image-20230823000401098

web5(phps源码)

题目提示phps源码

phps文件就是php的源代码文件,通常用于提供给用户(访问者)直接通过Web浏览器查看php代码的内容。

因为用户无法直接通过Web浏览器“看到”php文件的内容,所以需要用phps文件代替。

在题目未给出提示时,我们也可以通过扫描后台来发现遗留的phps文件

在url后加上/index.phps下载phps源码

image-20230823123851826

用vscode打开,flag就在phps源码中

image-20230823123944208

web6(备份文件)

使用dirsearch扫描,发现有备份文件

image-20230824165250185

手动在url后添加www.zip

image-20230824163043277

得到备份文件

解压缩后得到flag文件,发现包含的flag格式不符,考虑可能是提示文件名

image-20230824163126450

在url后加上fl000g.txt得到最终flag

web7(git泄漏)

使用dirsearch扫描,发现/.git/泄露

image-20230824165840414

访问该地址后得到flag

image-20230824170238593

web8(svn泄漏)

使用dirsearch扫描,发现/.svn/泄露

image-20230824170701799

访问该地址后得到flag

image-20230824170741244

web9(vim备份)

使用vim编辑器编写filename文件时,会有一个.filename.swp文件产生,它是隐藏文件。如果编写文件时正常退出,则该swp文件被删除,如果异常退出,该文件则会保存下来,该文件可以用来恢复异常退出时未能保存的文件,同时多次意外退出并不会覆盖旧的.swp文件,而是会生成一个新的,例如.swo文件。

本题的描述显然是暗示考点是Vim泄漏

image-20230824171932488

而需要修改网页,则需要修改index.php文件

尝试访问index.php.swp,下载得到swp文件,打开后得到flag:

image-20230824172248701.png

web10(cookie)

查看网页cookie的方式有以下几种:

  1. 在浏览器的控制台中输入javascript:alert(document.cookie),打印 cookie信息

  2. 以本人使用的edge浏览器为例

    image-20230824180722858

    点击url栏旁的关于信息,即可查看当前网页使用的Cookie

    image-20230824180814189

本题直接在控制台打印cookie信息

image-20230824180955706

得到flag的url编码

web11(域名解析记录)

本题使用在线工具查询相应站点的域名解析记录

image-20230824183447166

在TXT记录中得到flag

web12(社工)

用dirsearch扫到admin这个目录,应该是有登录界面

image-20230824184637831

根据题目提示,密码应该就藏在页面当中

尝试页面下方的电话号码

image-20230824184719968

成功登录

web13(技术文档)

页面底部留有技术文档document

image-20230824195405357

按照指示登录http://http://f78fddce-9ace-4612-a3d3-82c302c63f6e.challenge.ctf.show/system1103/login.php得到flag

web14(网页编辑功能泄漏)

用dirsearch扫出editor目录

image-20230824200612347

访问editor,进入一个提交页面

image-20230824200749543

发现有插入文件的功能,那我们就可以直接服务器上的文件了

image-20230824201030486

linux下的特殊目录:/var/www/html,把静态网页文件放到这个目录下就可以通过IP很方便的访问,

如果要访问 /var/www/html/myfolder/test.html

我在浏览器地址栏输入 http://[ip]/myfolder/test.html就行了。

不过这个便利的功能并不是linux操作系统自带的,需要启用httpd服务才行。

猜测本题的网页在var文件夹下

顺利按/var/www/html的路径找到源代码

image-20230824201641383

在nothinghere下找到flag

web15(社工)

用dirsearch扫完发现存在管理员登录入口

image-20230824204443207

该后台登录系统存在忘记密码功能

同时页面底部也泄露了具体邮箱

第一个问题是在哪个城市

image-20230824204648479

搜索QQ号,通过QQ上的资料确定所在地在西安

提交后显示密码已重置

image-20230824205004461

重新登录并得到flag

web16(php探针)

根据题目的提示,网站应该是遗留了php探针

经过尝试成功访问/tz.php

image-20230824211804059

发现phpinfo处是灰色链接,点击进入phpinfo

image-20230824212029045

查找flag属性并找到flag

image-20230824212017652

web17(sql备份)

用dirsearch扫出sql备份文件

image-20230824215859540

下载后打开,找到flag

image-20230824220020864

web18(查阅js源码)

看到这种游戏类型的题目,大概率是不能手动过关的,只能从修改规则上入手

打开js源码,找到游戏过关相关的代码

image-20230824220847569

发现如果达到100分,会弹窗一段Unicode编码

image-20230824221505621

解码后得到你赢了,去幺幺零点皮爱吃皮看看

在url后加上/110.php得到flag

web19(密码泄露)

image-20230824223141008

分享加密原理后,解密注释中泄漏的密文

image-20230824223207659

使用其登录后成功获得flag

web20(mdb泄漏)

image-20230824224302056

扫出/db/db.mdb数据库文件

下载后使用记事本打开并查找flag

从0到1

常见的搜集(robots、vim、gedit)

尝试常规的信息收集方法

首先是robots.txt

image-20230825133458156

得到flag目录

获得flag1前半段n1book{info_1

测试是否存在vim备份文件,尝试/.index.php.swp

下载得到_index.php.swp文件

其中有后半段flagp0rtant_hack}

测试是否存在gedit备份文件,尝试/index.php~

得到flag中段s_v3ry_im

粗心的小李(git泄漏)

题目提示git泄漏,考虑git泄露时的三种场景

首先是常规git泄漏

使用GitHacker恢复源码

githacker --url http://2f16f0e7-c2bf-4ca1-95dd-37e0cf03bd0a.node4.buuoj.cn:81/.git/ --output-folder G:\CTF\Web\工具\GitHacker\result

image-20230827161744780

得到源码index.html

打开后得到flag

CTFHUB 信息泄漏

目录遍历

image-20230826224503145

点击开始寻找flag,发现嵌套了非常多层目录

image-20230826224537449

将flag_in_here添加到爆破字典中

使用dirsearch进行递归目录扫描,设置最多3层:python dirsearch.py -u http://challenge-f27080f1e67b7730.sandbox.ctfhub.com:10800 -i 200,300-399 -r -R 3

image-20230826225758115

扫到flag文件,访问/flag_in_here/2/4/flag

image-20230826225859690

PHPINFO

image-20230826230208430

点击查看phpinfo,查找flag

image-20230826230259777

备份文件下载

网站源码

使用自定义脚本扫描备份文件

image-20230826231038358

下载www.zip,解压后得到如下文件

image-20230826231124216

txt中显示where is flag ??

尝试在url添加/flag_115928996.txt,得到flag

image-20230826231713234

bak文件

使用自定义脚本扫描得到index.php.bak

image-20230826232431817

下载后得到flag

vim缓存

参考vim泄漏原理,在url后加上/.index.php.swp

下载备份文件后得到flag

.DS_Store

在url后加上/.DS_Store,下载得到备份文件

image-20230826233812659

根据提示在url后加上/1626d67afe2fee89348ecaaff46381dc.txt得到flag

Git泄漏

Log

使用GitHacker扫描站点的.git文件,生成源码

image-20230827162001359

源代码目录如下

image-20230827162030953

50x.html界面提示log日志

image-20230827002323089

执行git log命令

image-20230827005434467

使用git diff 1355add0bcf41982c67f591f699f4296b311bd07进行回滚

得到flag

image-20230827005719871

Stash

使用GitHacker恢复源码githacker --url http://challenge-ceb412434853a026.sandbox.ctfhub.com:10800/.git/ --output-folder G:\CTF\Web\工具\GitHacker\result

image-20230827162444014

得到源码目录如下

image-20230827162513656

执行git log查看版本

image-20230827162658641

执行 git diff HEAD 5aff97711513ad7db6c19d6222860240e91e7491对比与add flag版本的区别

image-20230827162924216

此时有两种解题方法:

  1. 按照题意使用git stash pop恢复文件

    image-20230827163722208

  2. 执行git reset HEAD^回到上一个add flag的版本,此时删掉的文件也回来了

    image-20230827163605196

flag就在恢复的txt文件中

Index

使用GitHacker恢复源码githacker --url http://challenge-1f42ffb3a63e3f3b.sandbox.ctfhub.com:10800/.git/ --output-folder G:\CTF\Web\工具\GitHacker\result

源码目录如下

image-20230827164306940

flag在txt文件中

SVN泄漏

在kali中使用dvcs-ripper工具

在result目录下执行../rip-svn.pl -v -u http://challenge-461ad970cc7dbf6b.sandbox.ctfhub.com:10800/.svn/

image-20230827170209722

得到的源码在新建的result文件夹中

image-20230827170310567

扫描后发现.svn文件夹

进入后再次扫描,发现数据库文件wc.db

image-20230827170422106

执行cat wc.db | grep -a flag在其中寻找flag

image-20230827172604750

grep指令

grep 指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设 grep
指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为 -,则 grep 指令会从标准输入设备读取数据。

shell grep [options] pattern [files]

  • pattern - 表示要查找的字符串或正则表达式。
  • files - 表示要查找的文件名,可以同时查找多个文件,如果省略 files 参数,则默认从标准输入中读取数据。

常用option参数

  • -a --text: 不要忽略二进制的数据。
  • -i:忽略大小写进行匹配。
  • -v:反向查找,只打印不匹配的行。
  • -n:显示匹配行的行号。
  • -r:递归查找子目录中的文件。
  • -l:只打印匹配的文件名。
  • -c:只打印匹配的行数。

并未发现有用信息后开始手动遍历目录,并在以下目录发现flag

image-20230827172247519

HG泄漏

在result目录下执行../rip-hg.pl -v -u http://challenge-461ad970cc7dbf6b.sandbox.ctfhub.com:10800/.hg/

image-20230827182308097

发现报错,使用ls -al扫描发现.hg文件夹依然下载成功

image-20230827182438579

使用tree列出.hg的目录

image-20230827182529441

使用grep匹配flag相关信息

image-20230827182923705

发现历史版本中存在flag_211812339.txt文件

在url后加上/flag_211812339.txt后得到flag

相关文章:

CTF Web信息搜集 25000字详解

目录 前言信息收集常见信息分类域名信息whois备案CDN子域名解析记录 旁站C段服务器信息端口服务器类型数据库类型waf防火墙 网站信息备份文件备份文件常见的后缀名备份文件常见的文件名gedit备份文件vim备份文件收集方法 敏感目录CMS类型(指纹识别)探针泄…...

MSPM0G3507之电赛小车

一、前言 本文没什么技术分享,纯聊天。以下内容均为笔者的浅薄理解,有不对的地方还请多多包涵。 二、相关配置 主控单元:MSPM0G3507SPTR(48角) 编译环境:Keil5.33、5.39(推荐)都可 …...

linux运维一天一个shell命令之vmstat详解

概念 vmstat 是 Linux 系统中一个非常有用的工具,主要用于报告系统的虚拟内存、进程、CPU 活动和 IO 性能等信息。以下是对 vmstat 工具的详细解释: 基本语法 vmstat [options] [delay [count]]delay:更新的时间间隔(以秒为单…...

前端开发调试工具推荐分类整理

具体前往:前端调试工具分类整理汇总...

http协议与nginx

动态页面与静态页面的差别: (1)URL不同 静态⻚⾯链接⾥没有“?” 动态⻚⾯链接⾥包含“?” (2)后缀不同 (开发语⾔不同) 静态⻚⾯⼀般以 .html .htm .xml 为后缀 动态⻚⾯⼀般以 .php .jsp .py等为后…...

一款国外开发的高质量WordPress下载站模板主题

5play下载站是由国外站长开发的一款WordPress主题,主题简约大方,为v1.8版本, 该主题模板中包含了上千个应用,登录后台以后只需要简单的三个步骤就可以轻松发布apk文章, 我们只需要在WordPress后台中导入该主题就可以…...

Laravel为什么会成为最优雅的PHP框架

Laravel之所以成为最优雅的PHP框架之一,是因为它提供了一系列的优点,包括简洁的语法、强大的功能集、高度模块化和可扩展性、优雅的ORM、内置认证系统、丰富的社区支持和测试友好等。这些优点使得Laravel在PHP框架中脱颖而出,成为了很多开发者的首选框架。 官网:https://l…...

孤儿进程的例子

先让父进程死亡&#xff0c;子进程的父进程会被操作系统管理 先使用gcc编译代码, 执行代码后用 ps -p <进程号> -f 查看进程 #include <stdio.h> #include <stdlib.h> #include <sys/types.h> #include <unistd.h>int main() {pid_t pid;// 创建…...

CSS前端面试题——怎么用CSS实现一个宽高自适应的正方形?

方法一&#xff1a;使用 padding 方案 这种方法通过设置元素的 padding 属性来实现宽高比例相等的正方形。假设我们希望正方形的边长为相对于父容器的百分比值&#xff0c;比如50% .square {width: 50%; /* 可以是任意宽度&#xff0c;这里假设为父元素宽度的50% */padding-t…...

谷粒商城实战笔记-56~57-商品服务-API-三级分类-修改-拖拽功能完成

文章目录 一&#xff0c;56-商品服务-API-三级分类-修改-拖拽功能完成二&#xff0c;57-商品服务-API-三级分类-修改-批量拖拽效果1&#xff0c;增加按钮2&#xff0c;多次拖拽一次保存完整代码 在构建商品服务API中的三级分类修改功能时&#xff0c;拖拽排序是一个直观且高效的…...

Shader入门精要总结(二)矩阵

1. 矩阵乘法 一个rn的矩阵A和一个nc的矩阵B相乘&#xff0c;它们的结果AB将会是一个rc大小的矩阵&#xff0c;不满足此规则不能相乘 矩阵乘法满足一些性质 矩阵乘法不满足交换律 即AB≠BA矩阵乘法满足结合律 (AB)CA(BC) 2. 特殊矩阵 方块矩阵 指行和列数目相等的矩阵&#…...

基于CentOS Stream 9平台安装MySQL Community Server 9.0.1 Innovation

1. 安装之前 1.1 查看系统版本 cat /etc/redhat-releaseCentOS Stream release 9 1.2 查看cpu架构 lscpu架构&#xff1a; x86_64 CPU 运行模式&#xff1a; 32-bit, 64-bit 2. 官网下载 https://dev.mysql.com/downloads/mysql/ 要多看看 官方9.0文档&#xff1a;https://d…...

正则采集器之五——商品匹配规则

需求设计 实现分析 系统通过访问URL得到html代码&#xff0c;通过正则表达式匹配html&#xff0c;通过反向引用来得到商品的标题、图片、价格、原价、id&#xff0c;这部分逻辑在java中实现。 匹配商品的正则做成可视化编辑&#xff0c;因为不同网站的结构不同&#xff0c;同…...

一键切换阿里yum源(包括其他系统repo镜像查找方法)

一键切换阿里yum源 示例命令其他系统repo镜像GitHub文档 示例命令 # 备份旧源 mv CentOS-Base.repo CentOS-Base.repo.bak # 添加新源(阿里镜像源) wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo其他系统repo镜像 这里的示例是用…...

Fiddler学习笔记

目录 前言 简介 原理 界面 前言 测试可以使用fiddler工具&#xff0c;通过抓包的方式修改前端参数和模拟后端返回&#xff0c;快速定位缺陷。 简介 Fiddler是HTTP协议调试代理工具&#xff0c;可以记录并检查所有客户端和服务器之间的HTTP和HTTPS请求&#xff0c;允许监视…...

【Vue3】watch 监视多种类型数据

【Vue3】watch 监视多种类型数据 背景简介开发环境开发步骤及源码 背景 随着年龄的增长&#xff0c;很多曾经烂熟于心的技术原理已被岁月摩擦得愈发模糊起来&#xff0c;技术出身的人总是很难放下一些执念&#xff0c;遂将这些知识整理成文&#xff0c;以纪念曾经努力学习奋斗…...

【C++入门】虚函数与多态

文章目录 前言虚函数是什么&#xff1f;如何使用虚函数&#xff1f; 纯虚函数是什么&#xff1f;虚函数与普通函数的区别虚表虚表是什么&#xff1f;含有虚表的类内存结构图如何找到虚表的地址&#xff1f;示例代码代码解释 多态是什么&#xff1f;如何使用多态&#xff1f;为什…...

wpf中轮询显示图片

本文的需求是&#xff0c;在一个文件夹中&#xff0c;放一堆图片的集合&#xff0c;然后在wpf程序中&#xff0c;按照定时的方式&#xff0c;循序显示照片。 全部代码 1.声明一个PictureInfo类 namespace WpfApp1 {public class PictureInfo{public string? FileName { get; …...

CSA笔记9-磁盘管理(2)

分区挂载 挂载&#xff1a;将该文件系统中的内容与指定的目录关联起来&#xff0c;使得你可以通过该目录来访问文件系统中的文件和目录。 mount 命令用来挂载文件系统 #挂载/dev/sda1和/dev/sda2 [rootlocalhost ~]# mkdir test{1..2} [rootlocalhost ~]# ll test1 te…...

Python入门第三课

# 入门第三课 # 关键字 if and or in not in ! car g print(car g) print(car dd) if car ! hh:print("wlcome to here ") age 33 print(age 33) print(age 44) age1 44 if age >0 and age1 > 0:print("nihao") if age >0 or age1 > …...

java计算器,输入公式和对应变量的值

目标&#xff1a;最近想写个东西&#xff0c;本质就是一个计算器&#xff0c;我们可以输入公式&#xff08;例如&#xff1a;ab&#xff09;&#xff0c;然后把公式的值&#xff08;a:10,b:20&#xff09;也输入进去。最后得到结果。核心&#xff1a;这个想法核心部分就是给一个…...

加密货币赋能跨境电商:PayPal供应链金融服务如何引领行业新趋势

跨境电商行业近年来呈现出爆发式增长&#xff0c;随着全球化贸易壁垒的降低和数字经济的快速发展&#xff0c;越来越多的商家和消费者跨越国界进行交易。根据eMarketer的数据&#xff0c;全球跨境电商交易额在2023年已超过4万亿美元&#xff0c;并预计在未来几年内仍将保持两位…...

redis面试(二)List链表数据

list 列表 我们总是说List为列表&#xff0c;其实在真正的数据结构来说&#xff0c;redis是自己基于c语言来实现的双向链表数据结构&#xff0c;主要的逻辑就是每个节点都可以指向下一个节点&#xff0c;这个结构就属于链表数组结构。 每个节点中的属性如下&#xff1a; type…...

SpringDataJPA(三):多表操作,复杂查询

一、Specifications动态查询 有时我们在查询某个实体的时候&#xff0c;给定的条件是不固定的&#xff0c;这时就需要动态构建相应的查询语句&#xff0c;在Spring Data JPA中可以通过JpaSpecificationExecutor接口查询。相比JPQL,其优势是类型安全,更加的面向对象。 import …...

嵌入式硬件面试题集萃:从基础到进阶

基础问题 问题: 解释什么是微控制器&#xff0c;以及它与微处理器的区别。 答案: 微控制器是具有集成内存和输入/输出外设的微型计算机。与通用微处理器相比&#xff0c;微控制器通常用于控制特定应用&#xff0c;而不是执行通用计算任务。 问题: 什么是数字逻辑门&#xff0c…...

easyui-datebox 只显示月份选择,默认开启月份,隐藏日期选择框

如果你使用 ​​easyui-datebox​​​ 并希望隐藏日期选择框,只显示月份选择,可以通过一些自定义代码来实现。虽然 EasyUI 没有直接提供这种功能,但可以通过自定义 ​​formatter​​​ 和 ​​parser​​​ 方法,以及修改 ​​onShowPanel​​ 事件来实现这个功能。 以下…...

【数据结构】队列(链表实现 + 力扣 + 详解 + 数组实现循环队列 )

Hi~&#xff01;这里是奋斗的明志&#xff0c;很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~~ &#x1f331;&#x1f331;个人主页&#xff1a;奋斗的明志 &#x1f331;&#x1f331;所属专栏&#xff1a;数据结构 &#x1f4da;本系列文章为个人学…...

02 Go语言操作MySQL基础教程_20240729 课程笔记

概述 如果您没有Golang的基础&#xff0c;应该学习如下前置课程。 Golang零基础入门Golang面向对象编程Go Web 基础Go语言开发REST API接口_20240728 基础不好的同学每节课的代码最好配合视频进行阅读和学习&#xff0c;如果基础比较扎实&#xff0c;则阅读本教程巩固一下相…...

相交链表 - 力扣(LeetCode)C语言

160. 相交链表 - 力扣&#xff08;LeetCode&#xff09; (点击前面链接即可查看题目) 一、题目 给你两个单链表的头节点 headA 和 headB &#xff0c;请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点&#xff0c;返回 null 。 图示两个链表在节点 c1 开始…...

【Python】基础学习技能提升代码样例3:JSON文本处理

对json的处理&#xff0c;无非是编码和解码两部分 编码&#xff1a;将python数据结构转换为json字符串解码: 将json字符串转换为python数据结构 另外&#xff0c;还有.json文件的读写 一、编码 json.dumps(obj, *, skipkeysFalse, ensure_asciiTrue, check_circularTrue, a…...

最新Yiso智云搜索引擎系统源码/开源PHP源码/修复版

源码简介&#xff1a; 最新Yiso智云搜索引擎系统源码/开源PHP源码/修复版。Yiso 是一个性能非常好的搜索引擎&#xff0c;不仅免费开源&#xff0c;还能当作收录网址的平台来用呢&#xff01;只需要输入关键词&#xff0c;就能轻松找到相关的搜索结果内容。 1、Yiso 用的是自…...

Anconda 快速常用命令简洁版

目的&#xff1a;简单清楚的使用基本的conda 命令 可能需求 查看项目中的虚拟环境及依赖是否满足需求操作新环境来满足项目或者论文的实现 Anconda 常用命令 conda 查看基础命令1. 进入Anaconda 环境2. 查看版本3.查看有哪些虚拟环境4.激活虚拟环境5. 进入虚拟环境查看6. 退出…...

Android 系统启动动画

一、接着我们把 bootanimation.zip 动画文件 预制到 /system/media/ 目录下&#xff1a; 二、目录/system/media/bootanimation.zip PRODUCT_COPY_FILES \$(LOCAL_PATH)/bootanimation.zip:/system/media/bootanimation.zipPRODUCT_ARTIFACT_PATH_REQUIREMENT_WHITELIST \ /…...

解决antd打开modal时页面自动跳到顶部问题

问题原因&#xff1a;antd的样式中有一行&#xff0c;如下样式代码&#xff0c;这行代码导致了在本来有滚动条的页面底部触发modal弹出时&#xff0c;会自动滚动到页面顶部。 html {overflow-y: scroll; } 解决办法&#xff1a;删除这行代码、或者将html的overflow-y属性改成…...

什么是等保测评2.0,等保测评如何定级

在信息化时代&#xff0c;网络安全已成为国家安全的重要组成部分。为了应对日益复杂的网络安全形势&#xff0c;我国推出了网络安全等级保护制度&#xff0c;其中等保测评是评估信息系统安全防护能力的关键环节。本文将深入探讨等保2.0的测评流程和定级标准&#xff0c;以揭示其…...

【嵌入式英语教程--6】C语言中的数组与指针

C语言中的数组与指针 英文原文 Arrays and pointers are fundamental concepts in the C programming language. An array is a collection of elements of the same data type stored in contiguous memory locations. Arrays can be used to store and manipulate sequence…...

RocketMQ 中的同步发送

在现代分布式系统中&#xff0c;消息队列是实现异步通信和解耦的重要组件。Apache RocketMQ 是一款高性能、高吞吐量的分布式消息中间件&#xff0c;广泛应用于电商、金融等领域。本文将详细介绍 RocketMQ 中的同步发送&#xff0c;包括其原理、应用场景、代码示例及注意事项。…...

c语言指针2

文章目录 一、void * 指针二、const关键字1.const修饰变量2.const修饰指针变量2. 1 const放在*的右边2. 2 const放在*的左边2. 3 总结 三、指针的运算3. 1指针的加减运算3. 2 指针 - 指针3. 3 指针的关系运算 四、野指针4. 1 什么叫野指针&#xff1f;4. 1 野指针的成因4.1.1 指…...

十七、openCV教程 图像轮廓

一、图像轮廓 图像轮廓是具有相同颜色或灰度的连续点的曲线.轮廓在形状分析和物体的检测和识别中很有用。 轮廓的作用:.用于图形分析、物体的识别和检测 注意点: 为了检测的准确性&#xff0c;需要先对图像进行二值化或Canny操作。 画轮廓时会修改输入的图像,如…...

基于视觉的语义匹配见多了,那基于雷达的呢?

论文题目&#xff1a; LiDAR-based HD Map Localization using Semantic Generalized ICP with Road Marking Detection 论文作者&#xff1a; Yansong Gong, Xinglian Zhang, Jingyi Feng, Xiao He and Dan Zhang 作者单位&#xff1a;北京驭势科技有限公司 导读&#xff…...

01、爬虫学习入门

爬虫&#xff1a;通过编写程序&#xff0c;来获取获取互联网上的资源 需求&#xff1a;用程序模拟浏览器&#xff0c;输入一个网址&#xff0c;从该网址获取到资源或内容 一、入门程序 #使用urlopen来进行爬取 from urllib.request import urlopen url "http://www.ba…...

我与C语言二周目邂逅vlog——6.文件操作

1. 为什么使⽤⽂件&#xff1f; 如果没有⽂件&#xff0c;我们写的程序的数据是存储在电脑的内存中&#xff0c;如果程序退出&#xff0c;内存回收&#xff0c;数据就丢失 了&#xff0c;等再次运⾏程序&#xff0c;是看不到上次程序的数据的&#xff0c;如果要将数据进⾏持久…...

Hugo 部署与自动更新(Git)

文章目录 Nginx部署Hugonginx.confhugo.conf Hugo自动更新Hugo自动更新流程添加访问令牌添加web hookrust实现自动更新接口 Nginx部署Hugo nginx.conf user nginx; worker_processes auto;error_log /var/log/nginx/error.log notice; pid /var/run/nginx.pid;even…...

HTTP代理揭秘:这些场景你都用对了吗?

HTTP代理是网络中常见的一种工具&#xff0c;可以帮助我们提升网络安全性和隐私保护&#xff0c;优化网络访问速度。本文将详细介绍什么是HTTP代理及其适用的场景。 HTTP代理是介于客户端&#xff08;如浏览器&#xff09;和服务器之间的中间服务器。它接收客户端的HTTP请求&a…...

电动汽车充电技术及运营知识问答pdf

电动汽车充电技术及运营知识问答 作者:马银山编著 出版社:北京&#xff1a;中国电力出版社 ISBN:9787512320406 资源大小:16.99MB 目录&#xff1a; http://literalink.top/resource/detail/7181601144102195200 第一章 电动汽车基本知识 1 1-1什么是电动汽车&#xff1f; 11-…...

playbooks 分布式部署 LNMP

1、环境配置 ansible 服务器 192.168.10.10nginx 服务器 192.168.10.20mysql 服务器 192.168.10.21php 服务器 192.168.10.22 2、安装 ansble #192.168.10.10节点 yum install -y epel-release #先安装 epel 源 yum install -y ansible配置主机清单 …...

成为git砖家(8): 使用 git log 查询范围内的 commit

文章目录 1. 查询 git log 的文档2. 不带任何参数: git log 啥意思&#xff1f;3. git log 最主要功能是什么&#xff1f;4. git log <commit1>..<commit2> 什么意思5. 查看最近n次commit6. References 1. 查询 git log 的文档 git help log --web市面上针对 git …...

Win10出现错误代码0x80004005 一键修复指南

对于 Windows 10 用户来说&#xff0c;错误代码 0x80004005 就是这样一种迷雾&#xff0c;它可能在不经意间出现&#xff0c;阻碍我们顺畅地使用电脑。这个错误通常与组件或元素的缺失有关&#xff0c;它可能源自注册表的错误、系统文件的损坏&#xff0c;或者是软件的不兼容。…...

C++ 基础(类和对象下)

目录 一. 再探构造函数 1.1. 初始化列表&#xff08;尽量使用列表初始化&#xff09; 二. static成员 2.1static成员初始化 三.友元 3.1友元&#xff1a;提供了⼀种 突破类访问限定符封装的方式. 四.内部类 4.1如果⼀个类定义在另⼀个类的内部&#xff0c;这个内部类就叫…...

java RestClientBuilder es 集群 鉴权

在Java中使用RestClientBuilder连接到Elasticsearch集群并进行鉴权&#xff0c;可以通过设置HttpHosts、RequestConfig以及添加相应的Header来实现。 以下是一个示例代码&#xff1a; import org.apache.http.Header; import org.apache.http.HttpHost; import org.apache.htt…...