ctf.show web入门

2023-11-17

目录

信息收集

web1:【where is flag】

web2:【无法查看源代码】

 web3:【where is flag】

web4:【robots】

web5:【phps文件泄露】

 web6:【网站源码泄露】

web7:【git】

 web8:【svn泄露】

web9:【vim缓存泄露】

 web10:【cookie】

 web11:【域名解析】

web12:【网站公开信息=管理员常用密码】

web13:【技术文档里的敏感信息】

web14:【editor】

 web15:【公开的邮箱】

 web16:【探针】

 web17:【sql备份文件】

web18:【unicode转码】

 web19:【密码放在前端】

 web20:【数据库文件泄露】


信息收集

web1:【where is flag】

打开开发者工具

web2:【无法查看源代码】

ctrl+u或者开发者工具·都可以

 web3:【where is flag】

直接抓包,查看响应包

web4:【robots】

Robots协议:也称为爬虫协议、机器人协议等,其全称为“网络爬虫排除标准",它通常是一个叫做robots.txt的文本文件,一般放在网站的根目录下。网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取。

先抓包,发现响应包里面并没有flag,查看网站下有没有robots.txt,发现有,并发现flag存放位置继续访问改文件即可得到flag

 

web5:【phps文件泄露】

.phps为后缀:phps文件就是php的源代码文件,通常用于提供给用户(访问者)查看php代码,因为用户无法直接通过Web浏览器看到php文件的内容,所以需要用phps文件代替。只要不用php等已经在服务器中注册过的MIME类型为文件即可,但为了国际通用,所以才用了phps文件类型。

直接访问url/index.phps可以下载网站的php源代码文件,打开即可。

MIME类型:MIME类型就是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式.

 web6:【网站源码泄露】

原因:一般网站管理员在日常维护中,总会把网站源码给备份一下,防止网站出现问题时,能马上的恢复使用,不过一般的管理员安全意识不高,在备份的时候,会使用一些常见的压缩备份名,而且不光使用常见的备份名字,大部分的管理还会把备份好的源码直接放在网站根目录里

常见备份文件后缀:.rar      .zip      .7z      .tar      .gz      .bak      .txt      .old       .temp

web7:【git】

1)git:Git是目前世界上最先进的分布式版本控制系统,可以记录文件的每一次改动

 2)版本库:简单理解为一个目录,这个目录里面的所有文件都能被git管理起来,每个文件的删除、修改都能被git追踪。

3)git版本控制主要作用

  • 记录文件的所有历史变化
  • 错误恢复到某个历史版本
  • 多人协作开发编辑同一个文件

3).git文件导致源码泄露原理:开发人员在开发时,常常会先把源码提交到远程托管网站(如github),最后再从远程托管网站把源码放到服务器的web目录下,攻击者可以利用这个目录,去下载.git如隐藏文件夹,如果忘记把.git文件删除,就造成此漏洞。利用.git文件恢复网站的源码,而源码里可能会有数据库的信息。

5)如果在文件夹中存在了index.php文件的情况,一般服务器会默认直接解析这个文件,删除index.php以后,就会出现该文件夹中全部的可访问文件目录了(??)

 web8:【svn泄露】

1)svnSVN是源代码版本管理软件。使用SVN管理本地代码过程中,会生成一个名为.svn的隐藏文件夹,其中包含重要的源码信息。原因:网站管理员在发布代码时,没有使用导出功能,直接进行复制粘贴。这就使.svn隐藏文件夹被暴露于外网环境,黑客可以借助其中包含的用于版本信息追踪的‘entries’文件,逐步摸清站点结构。”(可以利用.svn/entries文件,获取到服务器源码、svn服务器账号密码等信息)

2).svn漏洞利用:添加网站url在被利用的网址后面加 /.svn/entries,列出网站目录,甚至下载整站。

3)漏洞修复方法:在web服务器配置文件中增加一段代码,过滤到.svn文件,返回404

4)防御:开发人员在使用SVN时,严格使用导出功能。禁止直接复制代码。

查看隐藏的文件夹即可得到flag

web9:【vim缓存泄露】

1)vim:vim是linux自带且常用的文件编辑器,vim在编辑时会生成一个隐藏的临时文件
当vim异常退出时这个文件就会被保留下来,产生缓存文件,缓存会一直停留在服务器上,引起源码泄露,第一次产生的缓存文件后缀为.swp,后面会产生swo, vim中的swp即swap文件,在编辑文件时产生,它是隐藏文件,如果原文件名是submit,则它的临时文件——.submit.swp如果文件正常退出,则此文件自动删除。

2)index.php:入口文件

 web10:【cookie】

1)Cookie是在浏览器访问WEB服务器的某个资源时,由WEB服务器在HTTP响应消息头中附带传送给浏览器的一个小文本文件。上网时都是使用无状态的HTTP协议传输出数据,这意味着客户端与服务端在数据传送完成后就会中断连接。这时我们就需要一个一直保持会话连接的机制。在session出现前,cookie就完全充当了这种角色。也就是,cookie的小量信息能帮助我们跟踪会话。一般该信息记录用户身份

2)原理:客户端请求服务器时,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个Cookie。而客户端浏览器会把Cookie保存起来。当浏览器再请求服务器时,浏览器把请求的网址连同该Cookie一同提交给服务器。服务器通过检查该Cookie来获取用户状态

抓包查看响应头中的cookie,发现flag格式不太对,用url解码后得到flag[bp自带了编码解码工具]

 web11:【域名解析】

打开dbcha.com输入想要解析的域名即可

域名也可以隐藏信息!!!!!

 

dns域名解析中添加各项解析记录:

1)A记录/ip记录[只有IP]: 将域名指向一个IPv4地址

 2)CNAME记录: 如果将域名指向一个域名,实现与被指向域名相同的访问效果,需要增加CNAME记录。这个域名一般是主机服务商提供的一个域名

 ……………………………………………………………………

web12:【网站公开信息=管理员常用密码】

根据提示,查看robots.txt看到用户名为admin,页面最下方电话号码即为密码,登录即得到flag

web13:【技术文档里的敏感信息】

发现只有document有链接,点进去看看

打开登录地址连接发现无法访问,因为开发系统或者这个技术文档,并不是一个人用,他们面向的域名会不一样,your-domain代表部署后的地址

your-domain:网域,在这里应该是ctfshow的地址,故修改

 

web14:【editor】

绝对路径是指文件在硬盘上的真实路径,而相对路径指的是相对于另一个文件来书,本文件的路径。在做web项目时应该采用相对路径,绝对路径容易造成文件的寻找失败

根据题目提示,查看编辑器editor,点开插入文件发现有文目录………………………………………一系列操作,在tmp/html/nothinghere/fla000g.txt发现了flag

访问该文件(用绝对路径),发现并不是想要的flag,说明路径不是很正确,这里使用相对路径试试(?)

 web15:【公开的邮箱】

根据题目提示,访问admin,发现一个登陆界面,用户名admin,密码就是首页下面的QQ邮箱(前面的web12中做过,网站公开信息很可能就是管理员常用密码),登录后显示密码错误,返回点击忘记密码,就会进行一个问题验证——所在城市;用qq去加一下QQ邮箱上面QQ发现是西安,输入,得到重置密码,登录即得到flag

 

 

 web16:【探针】

php探针: php探针是用来探测空间、服务器运行状况和PHP信息用的,探针可以实时查看服务器硬盘资源、内存占用、网卡流量、系统负载、服务器时间等信息。

php探针的功能:
1、服务器环境探测:CPU、在线时间、内存使用状况、系统平均负载探测,操作系统、服务器域名、IP地址、解释引擎等 ;
2、PHP基本特征探测:版本、运行方式、安全模式及常规参数;
3、自定义探测:MYSQL连接测试、MAIL发信测试、函数支持情况及PHP配置参数。

……………………………………

根据提示,在url后面加/tz.php,发现在phpinfo初有个链接,打开,在出现的页面中查找flag即可

 web17:【sql备份文件】

根据提示,访问备份的sql文件(即url+backup.sql),打开文件即可看到flag…………

*.sql文件是mysql数据库导出的备份文件

web18:【unicode转码】

    unnicode编码:(统一码、万国码、单一码),Unicode是为了解决传统字符编码方案的局限而产生的,为每种语言中的每个字符都设定了统一唯一的二进制编码【计算机只能识别二进制数字】,以实现跨语言、跨平台进行文本转换、处理的要求。

根据提示,分析源码,查看js文件:Flappy_js.js,发现了一段不认识的编码[unicode编码]

 去菜鸟工具里面将这个Unicode编码转码看看,“去110.php看看”,

 web19:【密码放在前端】

根据提示,查看源码,发现需要提交两个参数——用户名和密码,只要参数符合要求,就会获得flag,抓包,修改参数值,用post请求提交符合条件参数,查看响应包即可获得flag

 

 

 

 

 web20:【数据库文件泄露】

1)mdb格式文件是一个数据库文件,它是Microsoft Access软件生成的一种存储格式

2) Access数据库的存储隐患是在ASP+Access应用系统中,如果获得或者猜到Access数据库的存储路径 和数据库名,则该数据库就可以被下载到本地。由于Access数据库的加密机制非常简单,所以即使数据库设置了密码,解密也很容易。由于ASP程序采用的是非编译性语言,这大大降低了程序源代码的安全性。任何人只要进入站点,就可以获得源代码,从而造成ASP应用程序源代码的泄露。

3)在数据库名称里加上#号,从URL上请求时#是请求地址和请求参数的一个分隔字符,如果知道了数据库名,直接请求的话,如:http://www.xx.com/access#.mdb,WEB服务器会认为请求的是access而不是access#.mdb,所以会提示找不到文件,但是URL中对于这些特殊的字符都会有一个特殊的表示方式,#的特殊表示就是%23,如http://www.xx.com/access%23.mdb,那么access#.mdb将会被下载。还有如果用FlashGet之类的下载工具也可以直接下载。

4)防止数据库被下载的方法:
1.在数据库新建一个表,表名为<%safe就可以了 ,这样iis在解析的时候会出现500错误,数据库也就下载不了了!

注:. 造成500错误常见原因有:

  • ASP语法出错
  • ACCESS数据库连接语句出错
  • 文件引用与包含路径出错(如未启用父路径)
  • 使用了服务器不支持的组件,如FSO等。

2.在你的数据库文件名后门加上# (不是扩展名,比如name#.mdb)这样iis就以为你是在请求该目录中默认的文件名,比如index.asp,如果iis找不到就会发出403禁止浏览目录的错误警告!

3.在iis中是把数据库所在的目录设为不可读,这样就可以防止被下载!这样做不会影响asp程序的正常使用

*4.直接使用数据源 (ODBC)这样数据库就可以不用在web目录里面,从而彻底防止被下载,但是这样做你必须拥有服务器的管理员权限,但是,大部分虚拟主机用户是不可能用数据源 (ODBC)的!  

4.1)IIS【建网站用的】是Internet Information Services英文全称的缩写,是一个World Wide Web server服务。IIS是一种Web(网页)服务组件,其中包括Web服务器、FTP服务器、NNTP服务器和SMTP服务器,分别用于网页浏览、文件传输、新闻服务和邮件发送等方面,它使得在网络(包括互联网和局域网)上发布信息成了一件很容易的事。

根据题目提示,访问db/db.mdb,下载文件用记事本打开并查找flag即可

 

 

 

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ctf.show web入门 的相关文章

  • vscode运行C语言踩坑记

    前言 本文对Vscode运行C语言代码报错进行整理 重点是头文件路径正确仍然报错找不到路径的解决办法 需要注意 VScode本身不具有编译运行代码能力 所以需要先安装对应的编译环境并下载插件 已安装编译器软件的可以参考如下连接进行配置 Vi
  • Kali之Web渗透-扫描工具-Burpsuite

    在学习Burpsuit之前 我先说一下什么是代理 就是代理网络用户去取得网络信息 作为一个在浏览器和目标应用程序之间的中间人 允许你拦截 查看 修改在两个方向上的原始数据流 形象地说 它是网络信息的中转站 一般情况下 我们使用浏览器直接去连
  • 无需破解,Python这个神器帮你免费获取资源,赶紧收藏!

    球鞋那么难抢 有没有抢限量版球鞋的神器 每当限量版球鞋开售的时候 几十万人一拥而入 能抽中的却是少数 朋友圈刷到别人中标的消息 心里又羡慕又有点酸 今年DUNK推出的时候 我表弟竟然中了两双 他跟女朋友一人一双 这运气太好了吧 他跟我炫耀的

随机推荐

  • 拯救者R7000P(R7 4800H + RTX 2060)安装ubuntu18.04时黑屏,无法进入安装界面

    问题描述 插入启动盘选择u盘启动后能进入GNU GRUB 选择Try ubunut或Install ubuntu后黑屏或报错 无法正常安装 常见于搭载nvidia系列显卡且无核显或集显的电脑 也发生在有核显但为AMD处理器的电脑上 原因分析
  • stata-描述性统计分析和回归指令

    文章目录 1 简单描述性统计分析 2 bootstrap统计量 有置信区间 前文中提到如何将xls格式的数据读入stata并且将其转换为dta格式的数据 向stata中加载数据并且转换为dta格式之后读取 1 简单描述性统计分析 在读入数据
  • python中if __name__ == '__main__': 的解析

    python中if name main 的解析 当你打开一个 py文件时 经常会在代码的最下面看到if name main 现在就来介 绍一下它的作用 模块是对象 并且所有的模块都有一个内置属性 name 一个模块的 name 的值取决于您
  • Spring-boot 结合Thymeleaf--拦截器--文件上传

    目录 Spring boot 结合Thymeleaf 官方文档 基本介绍 Thymeleaf 是什么 Thymeleaf 的优点 Thymeleaf 的缺点 Thymeleaf 机制说明 Thymeleaf 语法 表达式 1 表达式一览 2
  • 柏睿java实习一面面经分享

    说一下list下面的类都有哪些 ArrayList和LinkedList的特点 jvm堆内存模型 jvm的垃圾回收算法都有哪些 简单描述一下它们事务的特性你对sql的优化了解多少 它有哪些方法 数据库的锁都有哪些 分别叙述下它们说一下lin
  • 在共享dll中使用mfc_实战经验:在DLL中支持多语言

    在主程序中支持多语言 在主程序中建立不同的语言资源字符串 并调用API函数SetProcessPreferredUILanguages设置当前语言就可以实现多语言特性 在DLL中支持多语言 1 因为DLL是主程序加载阶段载入到进程地址空间的
  • node调用ffmpeg转流

    ffmpeg始终是音视频领域绕不过去的一个坎 也是一个特别好的工具 虽然再node库里面有根据ffmpeg编译的库 比如 libav js和fluent ffmpeg之类 但是调用原生的ffmpeg应用也是一种方法 这边先上代码再详解 H2
  • 蚁群算法解决TSP(旅行商)问题

    文章目录 一 前言 蚁群算法的基本原理 其中的基本过程 二 状态问题 1 城市被选择的概率由距离和信息素浓度共同决定 2 信息素更新 三 整体实现 一 前言 蚁群算法 Ant Colony Optimization ACO 是一种模拟自然界
  • vmware workstation 提示程序包可能有错,错误代码 29141 & 提示不可恢复错误: (vcpu-0)...

    问题一 提示程序包可能有错 错误代码 29141 换了n个版本 vmware workstation 10 11 12 下载了n次 都提示该错误 29141 明明程序包没错啊 一开始还怀疑是我的操作系统是win 10导致的 但是看网上别人都
  • 深入理解synchronized底层原理,一篇文章就够了!

    文章目录 前言 一 synchronized的特性 1 1 原子性 1 2 可见性 1 3 有序性 1 4 可重入性 二 synchronized的用法 三 synchronized锁的实现 3 1 同步方法 3 2 同步代码块 四 syn
  • 程序员有多难?测试适不适合女孩子做?看完这篇文章你就懂了

    一 程序员压力很大 压力是相对的 这个主要是去看跟谁比 做销售压力大吗 做市场压力大吗 做运营压力大吗 做产品压力大吗 压力大吗 肯定大呀 你看那些 996 的程序员都在那泣不成声了 好不容易说出这句话 有什么压力呀 955公司的程序员在旁
  • QT多进程

    QT多进程 sf2gis 163 com 2014年11月6日 1 目的 启动可执行文件 2 原理 启动进程 并模拟命令行进行交互 3 方法 QProcess std system 3 1 QProcess 1 启动程序 可以使用start
  • 为你推荐10款开发常用的代码编辑器

    代码编辑器对于程序员来说十分重要 一个好的编辑器可以节省开发时间 提高工作效率 这篇文章会介绍10个优秀且免费的编辑器 它们都是非常方便易用的环境 你可以用它们来编写代码 查看源文件和文档等 简化你的工作 本文由PHP100中文网编译 转载
  • mysql监控指标_mysql主要性能监控指标

    1 系统mysql的进程数 ps ef grep mysql grep v grep wc l 2 Slave running mysql gt show status like Slave running 如果系统有一个从复制服务器 这个
  • QT找不到依赖库的解决办法

    QtCreator打开例程后 需要切换到 项目 页面 手动去掉勾选Shadow build 否则自动生成的构件目录里找不到依赖文件 编译出错
  • 230. Kth Smallest Element in a BST

    查找二叉搜索树的第K小节点 利用bst的中序遍历的性质 bst 中序遍历可以得到一个有序数组 每次从stack中弹出一个元素 看k 进行计数即可 Inorder Traversal We can inorder traverse the t
  • Spring系列文章:Spring中的设计模式

    一 简单 模式 BeanFactory的getBean 法 通过唯 标识来获取Bean对象 是典型的简单 模式 静态 模 式 二 法模式 FactoryBean是典型的 法模式 在配置 件中通过factory method属性来指定 法 该
  • Mac使用bootcamp安装win系统花屏解决方法

    15年11 乞丐版air装win屏幕花屏 很郁闷 先后找了网上很多方法 最终总结出了一个比较折中的方法 不玩游戏不使用大型3D的可以参考 1 花屏现象 2 解决方法 2 1 禁用驱动 2 2 使用Microsoft基本显示适配器 2 2 1
  • 记 asp.net core 开发过程中的错误

    mysql数据库 ef进行 update database 时 报 An error occurred using the connection to database on server localhost 3307 错误原因 serve
  • ctf.show web入门

    目录 信息收集 web1 where is flag web2 无法查看源代码 web3 where is flag web4 robots web5 phps文件泄露 web6 网站源码泄露 web7 git web8 svn泄露 web