ctfshow初学

ctfshow初学

CTFShow

无法查看源代码

解决方案:view-source:url

Robots

提示:总有人把后台地址写入robots,帮黑阔大佬们引路。

解决方案:url/robots.txt获取disallow路径flagishere.txt,再通过url/flagishere.txt获取flag

robots.txt

定义:robots.txt文件为网站根目录下的文本文件,用于告诉搜索引擎(比如baidu/google)可以爬取的路径和禁止爬取路径

位置:url/robots.txt

安全隐患:该文件必须公开,且往往包含敏感路径(禁止爬取路径)

phps源码泄露

某些php环境中,若访问某文件时加上.phps后缀.服务器不会执行该php代码,而是直接显示源码(给开发者调试用)

  • 访问index.php返回执行结果
  • 访问index.phps返回源代码内容

常见文件扩展名泄露有

1
2
3
4
5
.phps:PHP 源码高亮显示	
.swp / .swo:Vim 编辑器生成的临时文件
.bak / .old / .orig:程序员备份文件
.txt / .inc / .conf:配置或引入文件可能未被正确保护
.gitignore / .htaccess:配置文件暴露

www.zip源码泄露

程序员为了迁移/备份,把源码打包(www.zip)上传到服务器,但忘了删除

常见路径有

1
www.zip	www.tar.gz	website.rar	backup.zip	code.tar

.git配置文件泄露

版本控制工具泄露

1
2
3
4
.git/ → 可通过 git log, git show, git checkout 恢复源码
.svn/ → Subversion 信息泄露
.hg/ → Mercurial 信息泄露
.DS_Store (Mac 系统) → 目录结构信息

在vim下修改死机

提示:发现网页有个错别字?赶紧在生产环境vim改下,不好,死机了

解决方案:在Linux生产环境上使用vim或者vi做修改时,会生成swp为后缀的文件

  • 第一次意外退出生成的是.swp
  • 第二次意外退出生成的是.swo
  • 第三次为.swn

输入url/index.php.swp得到flag

DNS域名查询

提示:域名其实也可以隐藏信息,比如flag.ctfshow.com 就隐藏了一条信息

解决方案:通过nslookup查询域名解析(txt一般是某个主机名或域名设置的说明)

nslookup

命令行工具,通过与DNS服务器交互查询域名对应的IP,DNS记录的生存时间

  • nslookup -qt=a 域名: 查询该域名的A记录。如果返回多个IP地址,表示该域名对应多个IPV4地址
  • nslookup -qt=aaaa 域名: 查询该域名的AAAA记录。如果返回多个IP地址,表示该域名对应多个IPv6地址
  • nslookup -qt=mx 域名: 查询该域名的MX记录(处理该域名电子邮件的邮件服务器), 当有多个MX记录时,优先级数字越小,优先级越高
  • nslookup -qt=a 域名 DNS服务器IP或域名: 用指定的DNS服务器进行查询, 可判断是否是DNS服务器的问题导致域名无法解析
  • set type=xxx可以设置查询类型,其中xxx可以是a、mx、ns等。例如,“set type=mx”表示查询MX记录
  • nslookup查询当前使用的DNS服务器,然后输入“server 域名或IP”可以查看当前使用的DNS服务器
  • NS记录:NS记录用来指定该域名由哪个DNS服务器来进行解析。NS记录中的IP地址就是该域名的权威DNS服务器的地址。
  • CNAME记录:CNAME记录是别名记录,也称为规范名字。它允许将多个名字映射到同一台计算机。例如,www.example.com可以映射到www.example.com.edgekey.net。通过CNAME记录可以设置域名的别名。
  • PTR记录:PTR记录是反向记录,用于将IP地址映射到主机名或域名。通常用于DNS反向解析,即根据IP地址查找对应的域名或主机名。
  • SOA记录:SOA记录是起始授权记录,包含了关于该DNS区域的基本信息,如区域名称、区域管理员电子邮件地址、区域序列号、区域刷新时间等。
  • SRV记录:SRV记录是服务位置记录,用于标识提供特定服务的服务器地址和端口号。例如,SIP服务器的地址和端口号可以通过SRV记录来标识。
  • TXT记录:TXT记录用于存储任意文本信息,可以用于多种目的,如SPF记录、DKIM签名等。