基于ctfshow的信息收集思路与CTF实战

本文靶场来源于CTFshow,并不完全按照靶机的顺序排列,而是以测试操作为导向,按博主个人理解排列。

1. 前端源码


在CTF中,先看源代码是个好习惯,出题者经常会在源代码中以注释的形式提供一些提示

web 1——关注页面源代码

web 2——js前台拦截源代码查看

本题利用js拦截以下内容

  • window.oncontextmenu = function(){return false};:禁用右键菜单,用户右键点击时不会弹出菜单。
  • window.onselectstart = function(){return false};:禁用文本选择,用户无法通过拖动鼠标选择页面上的文本。
  • window.onkeydown = function(){if (event.keyCode==123){event.keyCode=0;event.returnValue=false;}};:禁用F12键(通常用于打开开发者工具),用户按下F12时不会有任何反应。
    当然,前端拦截等于没有拦截,有很多方法都可以直接绕过
    法一
    ctrl u 快捷键打开源代码
    法二
    url前加view-source:查看源代码
    法三
    burp抓包看返回包
    法四
    使用浏览器开发工具打开

    法五
    ctrl s保存到本地查看

web 19——密钥补药放前端呐

源代码中给出账号密码了,提交了一下发现不行

猜测他的逻辑应该是,前端输入账号密码后,密码被加密然后通过数据包传给后端,此处我输入的密码是111,发的数据包如下,显然是加密了。于是源代码中的密码应该是被加密过的,因此把上面的密码粘到burp里就行

web 20——JS前端代码

有经验的师傅一看就知道本题是全前端实现的

找到这个判断,有一个Unicode编码的内容

在控制台直接输出内容,提示110.php

2. 数据包


当没有思路的时候,不妨尝试抓个包。常用抓包工具:浏览器的网络功能、burpsuite等

web 3——抓包是个好习惯

看了源代码什么都没有,所以只能抓个包看看

web 10——cookie泄露

抓包看一下,在cookie看到flag

3. 目录扫描


目录扫描是信息收集必不可少的一步,不同的敏感文件决定了不同的后续渗透思路。
常用的目录扫描工具dirsearch,基本语法为

python dirsearch.py -u http://xxxx/

3.1 robots.txt


robots.txt 是一个用于规定爬虫可以访问网站上的哪些网址的文本文件。需要注意的是,它只是提示合法用户不要爬取这些目录,但并不禁止对目录的访问。通过robots.txt,攻击者可能得到一些敏感目录。

web 4——robot目录泄露

使用dirsearch扫描目录,发现存在robots.txt文件,它禁止爬虫对/flagishere的访问,访问/flagishere,得到flag

3.2 源码文件泄露


源码文件泄露对于渗透测试具有十分重大的意义,这意味着测试者可以进行白盒审计甚至直接利用已知的nday漏洞直接对网站发起进攻。

web 5——phps文件泄露

本题考查的是phps文件泄露源码。phps文件就是php的源代码文件,通常用于提供给用户(访问者)查看php代码,因为用户无法直接通过Web浏览器看到php文件的内容,所以需要用phps文件代替。比较麻烦的是,博主试了几个目录扫描字典都不包含index.phps ,当然这也是合理的,因为真实生产环境下并极少使用index.phps的需求,因此只能作为一个可能的思路,师傅们也可以把这些遇到的扫不出来的目录添加到字典中去,做好积累。
本题的解题直接访问index.phps获得flag即可

web 6——zip备份文件泄露

dirsearch一扫,发现/www.zip

访问路径,下载了www.zip,打开里面有个fl000g.txt文件,点进去发现里面的flag是空。转换一下思路,www.zip应当是网站的源码,因此这个路径在服务中可能也存在,访问/fl000g.txt,得到flag。这里下载的源码实际上提示了目录,而非直接用下载下来的文件。

web 7——git泄露

Git泄露是指在使用Git版本控制系统时,由于配置不当或者操作失误,导致敏感信息(如密码、密钥、源代码等)被意外地上传到公开的代码仓库或者其他公开可访问的地方,从而被未授权的人获取到。


dirsearch一扫,发现.git,本题考察了git泄露,但是本题很简单,直接访问./git就给了flag

但是一般不会这么容易,补充一下之后的可能步骤
这里需要借助BugScanTeam的githack工具,给个地址,扫描命令如下,注意最后要加上./git,推荐在kali linux上执行,然后就能在dist文件夹中看到抓下来的git了

python2 GitHack.py https://xxx/.git

在抓下来的网页文件夹中执行一些git命令来得到更多源码信息,如:

git log 查看之前都进行了什么操作
git diff xxxx xxxx 查看版本内容的不同之处

web 8——SVN泄露

造成SVN源代码漏洞的主要原因是管理员操作不规范,在发布代码时未使用导出功能,而是直接复制代码文件夹到WEB服务器上,导致.svn被暴露于外网环境


dirsearch一扫,发现/.svn,访问该地址直接就能得到flag。

这题也是比较简单,后续利用建议参考ctfhub的svn泄露靶机。

3.4 数据库泄露


web 17——备份sql文件泄露

dirsearch一扫,找到备份sql文件,下载下来打开找到flag

web 20——access数据库泄露

dirsearch的递归扫描-r,即当扫出一级目录后会再在一级目录后跑字典

python dirsearch.py -u http://xxxx/ -r

3.5 缓存文件泄露


在使用vim进行编辑时,会产生缓存文件,操作正常,则会删除缓存文件,如果意外退出,缓存文件保留下来,这是时可以通过缓存文件来得到原文件,以index.php来说,第一次退出后,缓存文件名为 index.php.swp,第二次退出后,缓存文件名为index.php.swo,第三次退出后文件名为index.php.swn

web 9——vim缓存泄露

这题直接尝试访问index.php.swp即可,但是同样有一个问题就是dirsearch扫不到这个文件,因为dirsearch不扫描临时文件以加快扫描速度,且缓存文件泄露的可能性也比较低,因此本题也仅作为可参考的思路。

3.6 探针泄露

PHP探针是用来探测空间、服务器运行状况和PHP信息的。探针可以实时查看服务器硬盘资源、内存占用、网卡流量、系统负载、服务器时间等信息,对开发具有重大帮助,但是如果在网站上线后未将探针删除,就有可能导致信息泄露。


web 16——探针泄露

dirsearch扫一下没扫出来,不过有师傅说用御剑的字典可以
访问/tz.php

找到phpinfo

找到flag

3.7 第三方组件默认配置

在开发过程中,引入一些第三方组件实现某些功能是一种高效可行的思路,但是一些开源的第三方组件可能存在一些已知的nday,如果不对这些部分加以限制,将导致严重的安全事故


web 14——editor默认配置

dirsearch一扫,发现/editor目录

根据提示小0day:某编辑器最新版默认配置下,如果目录不存在,则会遍历服务器根目录,随便点一个上传文件的功能,可以直接访问文件空间

发现flag的路径,访问该路径获得flag

4. 社会工程学

社会工程学是一种通过操控和影响人类行为的技术,用于获取敏感信息、访问权限或进行其他欺诈行为。它通常依赖于对人类心理的理解,利用信任、恐惧或好奇心等情感因素来欺骗目标,以达到攻击者的目的。


web 12——敏感信息公布

在网站上发现了作者的联系方式,很多人都会使用姓名、电话、生日等作为自己的密码,为弱口令登陆提供了可能
扫描一下目录,发现了/admin存在登录提示,用户名为admin,密码为电话,成功登录

web 13——技术文档泄露

在现实情况中,我们可能通过某些方式获得某些内部人员的信任,从而诱骗对方在向我们请求帮助时发送技术文档,如果对方为删除其中的敏感信息,就为我们的渗透提供了可能
当然这题比较容易,文档直接放在了页面中,直接登陆获得flag

web 15——密码逻辑脆弱

页面中泄露了作者的qq邮箱

目录扫描找到/admin登陆界面,输了一下qq邮箱,显示密码错误,看到下面有个忘记密码功能,试一下

要求输入所在地

看一眼他的QQ,是西安

5. 企业资产收集

在信息打点的初期,我们会对企业信息结构进行收集,比如说目标公司的主站域名、控股子公司的域名等等。为了获得更多域名与ip段,我们会通过查找dns的历史记录,可以得到详细的域名解析与ip地址信息,从而扩大收集的信息。关于这部分更详细的信息可以参考红队从资产收集到打点


web 11——DNS历史记录查询

本题模拟的实际上是域名的主动被动的收集,不过这题的域名已经失效了,就提供使用nslookup工具查询的命令,也可以使用一些在线网站。

nslookup -query=any flag.ctfshow.com
posted @ 2024-11-05 21:20  星海河  阅读(78)  评论(0编辑  收藏  举报