麻花痒 发表于 2024-9-29 11:41:42

CTF Web信息搜集 25000字详解

前言

这段时间开始入门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
绕过方法

[*] 查询历史DNS记载

[*]IP History - ViewDNS.info
[*]DNSDB

[*] PHPinfo
如果目标网站存在phpinfo走漏等,可以在phpinfo中的
SERVER_ADDR或_SERVER["SERVER_ADDR"]找到真实ip
[*] 查询子域名
CDN的流量费还是不便宜的,以是很多站长大概只会对主站或者流量大的子站点做了 CDN,而很多小站子站点又跟主站在同一台服务器或者同一个C段内,此时就可以通过查询子域名对应的 IP 来辅助查找网站的真实IP。
具体查询子域名的方法会在接下来介绍
[*] 使用国外主机解析域名
国内很多 CDN 厂商因为各种原因只做了国内的线路,而没有针对国外的线路,此时我们使用国外的主机直接访问大概就能获取到真实IP。
[*] 网站邮件订阅查找
RSS邮件订阅,很多网站都自带 sendmail,会发邮件给我们,此时检察邮件源码里面就会包含服务器的真实 IP了。
子域名

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

[*] 使用搜索引擎在线收集

[*] FOFA搜索子域名
网络空间测绘,网络空间安全搜索引擎,网络空间搜索引擎,安全态势感知 - FOFA网络空间测绘体系
语法:domain=“主域名”
[*] 使用谷歌语法
Site:主域名

[*] 在线查询

[*]子域名查询 查子域名 查子站 子域名大全 二级域名查询 查子域 (chaziyu.com)
[*]DNSdumpster.com - dns recon and research, find and lookup dns records
[*]http://tool.chinaz.com/subdomain/

[*] 使用工具爆破发掘子域名

[*] 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文件,对其代码举行更改:
https://i-blog.csdnimg.cn/blog_migrate/8f1fdd3648f2d80b2b2f9f7a1060e063.png

[*] 使用证书反查
crt.sh | Certificate Search
解析记载

概述
查询域名的NS记载、MX记载、TXT记载等很有大概指向的是真实ip或同C段服务器。
同时flag也有大概藏在这些解析记载中
常见解析范例

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

[*] 使用本机的nslookup下令
nslookup -type=type domain
其中type为解析范例,domain为域名,dns服务器为可选项
下令详解:nslookup下令详解和实战例子(全)_老鸟墨客的博客-CSDN博客
[*] 在线查询

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

旁站

概述
旁站指的是同一服务器上的其他网站,一般是同一ip
收集方法

[*] 在线查询

[*] 同IP网站查询,同服务器网站查询 - 站长工具 (chinaz.com)
[*] ip查询 查ip 网站ip查询 同ip网站查询 iP反查域名 iP查域名 同ip域名 (ipchaxun.com)

[*] 搜索引擎
fofa
语法:ip=“xxx.xxx.xxx.xxx”
C段

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

[*] 在线查询
同IP网站查询,C段查询,IP反查域名,在线C段,旁站工具 - WebScan
[*] 搜索引擎
fofa
语法:ip=“xxx.xxx.xxx.0/24”
服务器信息

端口

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

[*] 在线端口检测

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

[*] 扫描工具

[*] 御剑
[*] 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
收集方法


[*] 手动组合文件名和后缀并尝试
[*] 使用后台扫描工具
[*] 使用BurpSuite
将访问目标站点的请求包转到Intruder模块
https://i-blog.csdnimg.cn/blog_migrate/df97be54e0ac0d4bd8ec47a083a54dd7.png
使用集束炸弹模式,并设置两个变量
https://i-blog.csdnimg.cn/blog_migrate/23e19ea5c0f01bb40dbdbf134a529a8a.png
设置payload为测试用的文件名和后缀
https://i-blog.csdnimg.cn/blog_migrate/5c4c4a7250771958a980b345a8ad7119.png
[*] 使用自定义python脚本
import requests

url1 = '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) + '/' + back
      print(back + '    ', end='')
      print(requests.get(url).status_code)


敏感目录

概述
通过扫描目录和文件,大致了解同站的的结构,获取突破点,好比后台,文件备份,上传点以及源码的目录
敏感文件常见的如.git文件走漏,.svn文件走漏,phpinfo走漏等
收集方法

[*] 后台扫描工具

[*] 御剑
链接: 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博客

[*] 检察robots.txt和sitemap.xml等文件
[*] 搜索引擎在线收集

[*]恣意文件下载: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
收集工具

[*] 在线辨认工具

[*]云悉: 云悉互联网WEB资产在线梳理|在线CMS指纹辨认平台 - 云悉安全平台 (yunsee.cn)
[*]潮汐:TideFinger 潮汐指纹 TideFinger 潮汐指纹 (tidesec.com)

[*] kali自带的whatweb
语法:whatweb xxx.com
探针走漏

概述
安装了LNMP后或者是配置了PHP情况后,我们一般习惯性地上传一个PHP探针来检测一下我们的PHP情况是否精确地配置,同时偶然遇到一些特殊的程序必要相干的PHP组件支持,我们也可以上传一个PHP探针来检测一下我们的Web情况是否符合要求。
收集方法

[*] 尝试手动添加常见的探针文件
常见探针文件有:
phpinfo.php
tz.php
monitor.php
l.php
[*] 在后台扫描字典中添加常见探针文件
谷歌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/entries及wc.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雷同。但资源只是临时被移动。客户端应继续使用原有URI303See 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调出页面源码
https://i-blog.csdnimg.cn/blog_migrate/2db6ec4697288409182884910ceccdd5.png
可以发现flag就放在html解释中
web2(JS禁用F12)

https://i-blog.csdnimg.cn/blog_migrate/c5195bb4648650f3d39cdb5b4df00db9.png
页面体现无法检察源代码,F12按键和右键均失效
思量到大概是被js给禁用了
方法一:
此处我们在url前加上view-source:直接检察页面源码
https://i-blog.csdnimg.cn/blog_migrate/ad57334fb96103865149dfda7d61474a.png
在源码中我们能看到js确实禁用了右键和f12等功能
flag仍然藏在解释中
方法二:
由于是JavaScript导致的禁用,那么我们可以直接在欣赏器中关闭JavaScript的功能
以edge欣赏器为例,在设置中搜索JavaScript,在制止栏中添加我们想检察源码的站点url
https://i-blog.csdnimg.cn/blog_migrate/9d7364129aef6e39d7e430f5d48ecb82.png
此时F12功能又规复了
https://i-blog.csdnimg.cn/blog_migrate/805b6cd03b558be7c9770adf33eb01de.png
web3(相应体)

根据题目提示,使用burpsuite举行抓包
https://i-blog.csdnimg.cn/blog_migrate/bc25434e9480de1d1e335b0c09f3b55f.png
发现flag藏在相应体中
web4(robots.txt)

题目提示robot,我们直接在网站地址后加/robots.txt
https://i-blog.csdnimg.cn/blog_migrate/9324b9badf953a779a22b8cf78838458.png
不让爬的文件中有一个flag命名的txt文件,flag应该就在其中
https://i-blog.csdnimg.cn/blog_migrate/de05055750dfa00c73e0d7e0de37ef53.png
web5(phps源码)

题目提示phps源码
phps文件就是php的源代码文件,通常用于提供给用户(访问者)直接通过Web欣赏器检察php代码的内容。
因为用户无法直接通过Web欣赏器“看到”php文件的内容,以是必要用phps文件代替。
在题目未给出提示时,我们也可以通过扫描后台来发现遗留的phps文件
在url后加上/index.phps下载phps源码
https://i-blog.csdnimg.cn/blog_migrate/691589e1324ef04c8c8a9f74829fc036.png
用vscode打开,flag就在phps源码中
https://i-blog.csdnimg.cn/blog_migrate/6815640d86a9720f715847f03520425a.png
web6(备份文件)

使用dirsearch扫描,发现有备份文件
https://i-blog.csdnimg.cn/blog_migrate/b9310a92aadf446b242b83af528ea867.png
手动在url后添加www.zip
https://i-blog.csdnimg.cn/blog_migrate/fa1fb5ca5df780c33f7b519fb2cc90e6.png
得到备份文件
解压缩后得到flag文件,发现包含的flag格式不符,思量大概是提示文件名
https://i-blog.csdnimg.cn/blog_migrate/39b7a36392183e1077ef9f3508d0c38b.png
在url后加上fl000g.txt得到最终flag
web7(git走漏)

使用dirsearch扫描,发现/.git/走漏
https://i-blog.csdnimg.cn/blog_migrate/de591ae4f984de0eac47fd2e4d7edf6f.png
访问该地址后得到flag
https://i-blog.csdnimg.cn/blog_migrate/171b5dc6094d4d27e757c465683d13ed.png
web8(svn走漏)

使用dirsearch扫描,发现/.svn/走漏
https://i-blog.csdnimg.cn/blog_migrate/c926f689d38df9648f532cb15954d095.png
访问该地址后得到flag
https://i-blog.csdnimg.cn/blog_migrate/6cbd0dcd6233f8410a43c1a0c257f7da.png
web9(vim备份)

使用vim编辑器编写filename文件时,会有一个.filename.swp文件产生,它是隐藏文件。如果编写文件时正常退出,则该swp文件被删除,如果异常退出,该文件则会保存下来,该文件可以用来规复异常退出时未能保存的文件,同时多次意外退出并不会覆盖旧的.swp文件,而是会天生一个新的,例如.swo文件。
本题的形貌显然是暗示考点是Vim走漏
https://i-blog.csdnimg.cn/blog_migrate/c56de4d5c32d97cd673b9dc9f101094d.png
而必要修改网页,则必要修改index.php文件
尝试访问index.php.swp,下载得到swp文件,打开后得到flag:
https://i-blog.csdnimg.cn/blog_migrate/986fda02b5e00cd22f1579f6b9d6ad15.png
web10(cookie)

检察网页cookie的方式有以下几种:

[*] 在欣赏器的控制台中输入javascript:alert(document.cookie),打印 cookie信息
[*] 以本人使用的edge欣赏器为例
https://i-blog.csdnimg.cn/blog_migrate/cefa4c8145fdf4b9381200246e1b22cf.png
点击url栏旁的关于信息,即可检察当前网页使用的Cookie
https://i-blog.csdnimg.cn/blog_migrate/9a4d0b0ecbc94af8be9162113c881c8d.png
本题直接在控制台打印cookie信息
https://i-blog.csdnimg.cn/blog_migrate/32e01494d57e9fffa1ff6fe1b89c2668.png
得到flag的url编码
web11(域名解析记载)

本题使用在线工具查询相应站点的域名解析记载
https://i-blog.csdnimg.cn/blog_migrate/feb9eb3c0b1a41159c84e7a0d31988c2.png
在TXT记载中得到flag
web12(社工)

用dirsearch扫到admin这个目录,应该是有登录界面
https://i-blog.csdnimg.cn/blog_migrate/fb91357af4eff71182033234860ef57e.png
根据题目提示,密码应该就藏在页面当中
尝试页面下方的电话号码
https://i-blog.csdnimg.cn/blog_migrate/948343b4b91d77462ec40b72384f1e56.png
成功登录
web13(技术文档)

页面底部留有技术文档document
https://i-blog.csdnimg.cn/blog_migrate/c35d34bc723b1d39999d67947f82b738.png
按照指示登录http://http://f78fddce-9ace-4612-a3d3-82c302c63f6e.challenge.ctf.show/system1103/login.php得到flag
web14(网页编辑功能走漏)

用dirsearch扫出editor目录
https://i-blog.csdnimg.cn/blog_migrate/ac86252443867dd554fd11be990e460b.png
访问editor,进入一个提交页面
https://i-blog.csdnimg.cn/blog_migrate/1853b7e462dd5ecca9c03a417c97a64f.png
发现有插入文件的功能,那我们就可以直接服务器上的文件了
https://i-blog.csdnimg.cn/blog_migrate/2b7dcfad80672a8dff3731e8690d64cf.png
linux下的特殊目录:/var/www/html,把静态网页文件放到这个目录下就可以通过IP很方便的访问,
如果要访问 /var/www/html/myfolder/test.html
我在欣赏器地址栏输入 http:///myfolder/test.html就行了。
不外这个便利的功能并不是linux操纵体系自带的,必要启用httpd服务才行。
推测本题的网页在var文件夹下
顺利按/var/www/html的路径找到源代码
https://i-blog.csdnimg.cn/blog_migrate/b738bbe3ce3468ce4d8a9aaffcb4ab1a.png
在nothinghere下找到flag
web15(社工)

用dirsearch扫完发现存在管理员登录入口
https://i-blog.csdnimg.cn/blog_migrate/950b865350f0013ded07fd010f31bea6.png
该后台登录体系存在忘记密码功能
同时页面底部也走漏了具体邮箱
第一个题目是在哪个城市
https://i-blog.csdnimg.cn/blog_migrate/1581c5477429904f2c19adfdbd61069c.png
搜索QQ号,通过QQ上的资料确定所在地在西安
提交后体现密码已重置
https://i-blog.csdnimg.cn/blog_migrate/f84a493d032a9a91921f99a78cc87344.png
重新登录并得到flag
web16(php探针)

根据题目的提示,网站应该是遗留了php探针
经过尝试成功访问/tz.php
https://i-blog.csdnimg.cn/blog_migrate/29f0621caf9c5585e35f204870af775c.png
发现phpinfo处是灰色链接,点击进入phpinfo
https://i-blog.csdnimg.cn/blog_migrate/db15b22299dde093a59f6c1e2448c090.png
查找flag属性并找到flag
https://i-blog.csdnimg.cn/blog_migrate/f57aff020fceb65d4ef764e2a61705a2.png
web17(sql备份)

用dirsearch扫出sql备份文件
https://i-blog.csdnimg.cn/blog_migrate/4bb2a8eef0257157d822f2746334923d.png
下载后打开,找到flag
https://i-blog.csdnimg.cn/blog_migrate/dbf6cd05b208d965b7365c4e3ae077cd.png
web18(查阅js源码)

看到这种游戏范例的题目,大概率是不能手动过关的,只能从修改规则上入手
打开js源码,找到游戏过关相干的代码
https://i-blog.csdnimg.cn/blog_migrate/a677d7853b37cd3f9a71257643d33327.png
发现如果到达100分,会弹窗一段Unicode编码
https://i-blog.csdnimg.cn/blog_migrate/d37b92aebf0d96c53912c1f40264190e.png
解码后得到你赢了,去幺幺零点皮爱吃皮看看
在url后加上/110.php得到flag
web19(密码走漏)

https://i-blog.csdnimg.cn/blog_migrate/07701fbbf3dd65ee29578496e7af11e0.png
分享加密原理后,解密解释中走漏的密文
https://i-blog.csdnimg.cn/blog_migrate/ecd908f7ac4197bed86e7abfce9eeb4f.png
使用其登录后成功获得flag
web20(mdb走漏)

https://i-blog.csdnimg.cn/blog_migrate/20bcc2bd6242c405624b310fb153fd98.png
扫出/db/db.mdb数据库文件
下载后使用记事本打开并查找flag
从0到1

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

尝试通例的信息收集方法
首先是robots.txt
https://i-blog.csdnimg.cn/blog_migrate/a1a23fe2f310f7e6e5e5add0beb14f9f.png
得到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
https://i-blog.csdnimg.cn/blog_migrate/ecb39bdfbc922eb47c44b36685b4a682.png
得到源码index.html
打开后得到flag
CTFHUB 信息走漏

目录遍历

https://i-blog.csdnimg.cn/blog_migrate/b961fcbd3f85115c50f2b1a3a69c2e4a.png
点击开始探求flag,发现嵌套了非常多层目录
https://i-blog.csdnimg.cn/blog_migrate/c3dbe7f446cc8326220d8ff1e9028986.png
将flag_in_here添加到爆破字典中
使用dirsearch举行递归目录扫描,设置最多3层:python dirsearch.py -u http://challenge-f27080f1e67b7730.sandbox.ctfhub.com:10800 -i 200,300-399 -r -R 3
https://i-blog.csdnimg.cn/blog_migrate/1e591ae9991d0428ee1382fef5c656b4.png
扫到flag文件,访问/flag_in_here/2/4/flag
https://i-blog.csdnimg.cn/blog_migrate/a9e9c6077b556ab60a42d9e2e8d70c48.png
PHPINFO

https://i-blog.csdnimg.cn/blog_migrate/bfdc4d75a86967808e4e43d1e6f846a2.png
点击检察phpinfo,查找flag
https://i-blog.csdnimg.cn/blog_migrate/9775d5efc6217f46fbaed08ae04bfe1f.png
备份文件下载

网站源码

使用自定义脚本扫描备份文件
https://i-blog.csdnimg.cn/blog_migrate/11ce9e972e5656e2c97bad9cd9af09ba.png
下载www.zip,解压后得到如下文件
https://i-blog.csdnimg.cn/blog_migrate/50ffedca363a6eea0a6e5642a419a059.png
txt中体现where is flag ??
尝试在url添加/flag_115928996.txt,得到flag
https://i-blog.csdnimg.cn/blog_migrate/8fbaded2f70870bcb6877879e70a8b97.png
bak文件

使用自定义脚本扫描得到index.php.bak
https://i-blog.csdnimg.cn/blog_migrate/c2fe805ed68c58e3ff0632e82203c973.png
下载后得到flag
vim缓存

参考vim走漏原理,在url后加上/.index.php.swp
下载备份文件后得到flag
.DS_Store

在url后加上/.DS_Store,下载得到备份文件
https://i-blog.csdnimg.cn/blog_migrate/4fd5b5d88fc4282cf3f9a41565c1a214.png
根据提示在url后加上/1626d67afe2fee89348ecaaff46381dc.txt得到flag
Git走漏

Log

使用GitHacker扫描站点的.git文件,天生源码
https://i-blog.csdnimg.cn/blog_migrate/f600913a656e4c335f5679ead710627e.png
源代码目录如下
https://i-blog.csdnimg.cn/blog_migrate/4865e506d711c2d48a83d54f6cedfdf2.png
50x.html界面提示log日志
https://i-blog.csdnimg.cn/blog_migrate/88dc7fe6574e3c0dd661ad44179b3225.png
实验git log下令
https://i-blog.csdnimg.cn/blog_migrate/0943b1480e476afec29419566d8026a2.png
使用git diff 1355add0bcf41982c67f591f699f4296b311bd07举行回滚
得到flag
https://i-blog.csdnimg.cn/blog_migrate/d6c2c5d0e673bacaf1f1431427194d9a.png
Stash

使用GitHacker规复源码githacker --url http://challenge-ceb412434853a026.sandbox.ctfhub.com:10800/.git/ --output-folder G:\CTF\Web\工具\GitHacker\result
https://i-blog.csdnimg.cn/blog_migrate/51798807c19855371c648b300bd2a6a1.png
得到源码目录如下
https://i-blog.csdnimg.cn/blog_migrate/c93d59104c84f9fdd4d3fc14cffb6d96.png
实验git log检察版本
https://i-blog.csdnimg.cn/blog_migrate/ca2964ce99ef8fe3b5abb1a0b5405dc9.png
实验 git diff HEAD 5aff97711513ad7db6c19d6222860240e91e7491对比与add flag版本的区别
https://i-blog.csdnimg.cn/blog_migrate/de57cb1c7607a31b05c72eed283fe334.png
此时有两种解题方法:

[*] 按照题意使用git stash pop规复文件
https://i-blog.csdnimg.cn/blog_migrate/c573c0349039b5e695e1b0731f2339a6.png
[*] 实验git reset HEAD^回到上一个add flag的版本,此时删掉的文件也回来了
https://i-blog.csdnimg.cn/blog_migrate/2755d4eddacc6a8914b43ee9791ea985.png
flag就在规复的txt文件中
Index

使用GitHacker规复源码githacker --url http://challenge-1f42ffb3a63e3f3b.sandbox.ctfhub.com:10800/.git/ --output-folder G:\CTF\Web\工具\GitHacker\result
源码目录如下
https://i-blog.csdnimg.cn/blog_migrate/d86a082df23dde010f9016ac253a62c4.png
flag在txt文件中
SVN走漏

在kali中使用dvcs-ripper工具
在result目录下实验../rip-svn.pl -v -u http://challenge-461ad970cc7dbf6b.sandbox.ctfhub.com:10800/.svn/
https://i-blog.csdnimg.cn/blog_migrate/98b22fb907d5542482689994bf389cbb.png
得到的源码在新建的result文件夹中
https://i-blog.csdnimg.cn/blog_migrate/2a42237c96cb52ad6ced7311011d7031.png
扫描后发现.svn文件夹
进入后再次扫描,发现数据库文件wc.db
https://i-blog.csdnimg.cn/blog_migrate/166aa9a1f6c968eff5945b6ee1908c6e.png
实验cat wc.db | grep -a flag在其中探求flag
https://i-blog.csdnimg.cn/blog_migrate/b44478df3b049236bbbc1a12d2fcbc35.png
   grep指令
grep 指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设 grep
指令会把含有范本样式的那一列体现出来。若不指定任何文件名称,或是所给予的文件名为 -,则 grep 指令会从标准输入装备读取数据。
shell grep pattern


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


[*]-a 或 --text: 不要忽略二进制的数据。


[*]-i:忽略大小写举行匹配。
[*]-v:反向查找,只打印不匹配的行。
[*]-n:体现匹配行的行号。
[*]-r:递归查找子目录中的文件。
[*]-l:只打印匹配的文件名。
[*]-c:只打印匹配的行数。
并未发现有用信息后开始手动遍历目录,并在以下目录发现flag
https://i-blog.csdnimg.cn/blog_migrate/32957f9b83ee88cf36a9acca6418ddb9.png
HG走漏

在result目录下实验../rip-hg.pl -v -u http://challenge-461ad970cc7dbf6b.sandbox.ctfhub.com:10800/.hg/
https://i-blog.csdnimg.cn/blog_migrate/8e140acc0b13ad45504061ccc77fed28.png
发现报错,使用ls -al扫描发现.hg文件夹依然下载成功
https://i-blog.csdnimg.cn/blog_migrate/c5b6eee75c226e6b6f56af85dc79c32d.png
使用tree列出.hg的目录
https://i-blog.csdnimg.cn/blog_migrate/e703cac0367429feb64f0dfcb629a26a.png
使用grep匹配flag相干信息
https://i-blog.csdnimg.cn/blog_migrate/0b2d32272e68933c79a17e45c2d646d7.png
发现历史版本中存在flag_211812339.txt文件
在url后加上/flag_211812339.txt后得到flag

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: CTF Web信息搜集 25000字详解