小工具知识网

当前位置: 首页 > 行业知识 > 【ctfshow—web】——信息搜集篇1(web1~20详解)

行业知识

【ctfshow—web】——信息搜集篇1(web1~20详解)

2026-11-05 07:21:09 来源:互联网转载

ctfshow—web题解

  • web1
  • web2
  • web3
  • web4
  • web5
  • web6
  • web7
  • web8
  • web9
  • web10
  • web11
  • web12
  • web13
  • web14
  • web15
  • web16
  • web17
  • web18
  • web19
  • web20

    web1

    题目提示

    开发注释未及时删除

    那就找开发注释咯,可以用F12来查看,也可以Ctrl+U直接查看源代码呢

    就拿到flag了

    web2

    题目提示

    js前台拦截 === 无效操作

    沿用web1的思路,发现右键点不了了,F12也没反映了,这样可不行,我要拿到我最爱的flag!qwq

    但是Ctrl+U还是可以正常用的

    在 JavaScript 中,=== 是严格相等运算符,用于比较两个值的类型和数值。如果前台拦截中提示 “===

    无效操作”,可能是因为在拦截的代码中,使用了不正确的语法或者操作方式导致了这个错误。

    在进源码拿到flag的同时,发现

    > window.oncontextmenu = function(){return false}; > window.onselectstart = function(){return false}; > window.onkeydown = function(){if (event.keyCode==123){event.keyCode=0;event.returnValue=false;}};

    分析易得这段代码是用来禁止在网页上右键点击(禁用上下文菜单)、禁止选择文本和禁止按下 F12 键打开开发者工具的操作。具体功能解释如下:

    window.oncontextmenu:这行代码将右键点击事件的默认行为禁止,即禁用了浏览器的上下文菜单。

    window.onselectstart:这行代码阻止了文本被选中,使得用户无法通过鼠标选择页面上的文本内容。

    window.onkeydown:这行代码捕获键盘按下事件,当按下的键为 F12 时,将其事件码设置为 0 并且取消默认行为,从而阻止了按下F12 键打开浏览器的开发者工具。

    web3

    题目提示

    没思路的时候抓个包看看,可能会有意外收获

    他让我们抓包那就抓吧,打开抓包工具burpsuite,再熟练的打开代理

    肯定有人说这也没啥啊,

    确实没啥,那就点点看呗,点到hex里面的时候,发现藏在这里的flag,拿下

    当然在前端的网络里面也可以看到这个flag

    web4

    题目提示

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

    那就得知道在网络上的robots是什么

    robots.txt是一种文本文件,用于向网络爬虫(如搜索引擎的爬虫)提供网站访问的指导。它位于网站的根目录下,通过规定哪些页面可以被爬虫访问,以及哪些页面应该被忽略,来控制搜索引擎对网站内容的抓取和索引。

    通过编辑robots.txt文件,网站管理员可以告诉搜索引擎爬虫哪些页面应该被排除在外,以保护隐私或防止搜索引擎浪费资源爬取不必要的页面。同时,也可以使用robots.txt来指示搜索引擎爬虫对特定页面的抓取频率限制,以避免对服务器造成过大负担。

    然而,需要注意的是,robots.txt只是一种约定和建议,而并非强制规定。善意的搜索引擎会尊重robots.txt文件的指示,但恶意的爬虫可能会无视这些规则。

    就拿百度的看看https://www.baidu.com/robots.txt

    这里面的内容是这样的,大多数就是一些目录,如下图

    知道这个就好做了,直接在后面加上robots.txt

    发现个关于flag的文件,继续拼接,成功拿下flag。

    web5

    题目提示

    phps源码泄露有时候能帮上忙

    疑惑?什么是phps

    phps即为 PHP Source。PHP Source 由 The PHP Group 发布,是最通用的关联应用程序。

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

    已知站点是php搭建的

    而且默认建站规则都有index.php

    联想到可能是index.phps

    那就实践试试,在原网页的请求上加上/index.phps,这道题之后会给下载这个文件

    文件下载好后用正在使用的浏览器打开,打开后看到是空白网页

    这时候查看这个网页源码即可从注释中得到flag

    直接用burpsuite抓包也可以直接回显出来,成功拿下flag

    web6

    题目提示

    解压源码到当前目录,测试正常,收工

    条件反射www.zip,别问为什么,问就是经验,常见的网站源码备份文件

    常见的网站源码备份文件后缀

    • tar• tar.gz• zip• rar
    常见的网站源码备份文件名
    • web• website• backup• backup• www• wwwroot• tempWeb.tarWeb.Web.Web.website.website.website.website.backupbackupbackupbackupbackupbackupbackupbackupwwwwwwwwwwwwwwwrootwwwrootwwwrootwwwroottemptemptemptemp

    拿下flag

    提示在fl000g.txt下,那么在URL后加上这个txt,成功拿下flag!

    web7

    题目提示

    版本控制很重要,但不要部署到生产环境更重要。

    根据提示说的什么不要部署在生产环境什么的不太懂,反正就肯定是信息泄露嘛,继续保持开发者工具、抓包、dirsearch三连,dirsearch发现可以访问/.git/

    尝试访问一下,成功得到flag

    web8

    题目提示同web7一样 这道题和上面一道题类似,都是版本控制器问题 常用的就是Git和SVN上面那题用的是/.git/

    这一题只需要将git改为svn即可

    web9

    题目提示

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

    根据提示,在Linux生产环境上使用vim或者vi做修改时,会生成一个swp为后缀的文件

    第一次意外退出生成的是.swp

    第二次意外退出生成的是.swo

    第三次为.swn

    因此可以尝试打开第一次退出时产生的这个文件,输入/index.php.swp

    会下载出文件

    打开即可得到flag

    web10

    题目提示

    cookie 只是一块饼干,不能存放任何隐私数据

    饼干?嘿嘿嘿好吃喜欢吃饼干,不对,cookie在这里好像不是饼干的意思,那是什么呢?

    Cookie是一种存储在用户计算机上的小型文本文件。它由网站通过用户的浏览器创建并存储在用户的硬盘上。当用户访问同一个网站时,浏览器会将该网站的Cookie发送回服务器,以便识别用户、跟踪其活动和提供个性化的服务。

    Cookie通常用于以下目的:

    会话管理:通过保存用户的会话信息,使用户在同一网站上进行多个请求时保持登录状态。 用户偏好:记录用户的偏好设置,如语言选择、字体大小等。

    购物车功能:在电子商务网站上,Cookie可以帮助存储用户的购物车内的商品信息。

    广告定向:广告公司可以使用Cookie来跟踪用户的浏览行为,并根据其兴趣向其展示相关广告。

    网站分析:网站管理员可以使用Cookie来收集用户访问网站的统计数据,从而改进网站的性能和用户体验。

    需要注意的是,Cookie只能存储少量的数据,并且是明文存储在用户设备上的,因此应谨慎处理敏感信息,同时用户可以通过浏览器设置来控制Cookie的接受与拒绝。

    好好好,cookie是这样的是吧,那我们怎么得到cookie呢,很简单,抓包or直接在F12里的 network找

    很明显的看到cookie里的flag就得到了,不过还得url编码下,%7B和&7B是左右花括号

    成功拿下flag!或者按下面的网络里得到flag

    web11

    题目提示

    域名其实也可以隐藏信息,比如flag.ctfshow.com 就隐藏了一条信息 由于动态更新,txt记录会变 最终flag

    flag{just_seesee}

    Unlock Hint for 0 points 通过dns检查查询flag https://zijian.aliyun.com/ TXT

    记录,一般指为某个主机名或域名设置的说明。

    查找flag.ctfshow.com域名下的txt记录

    刚拿到题目有点懵,还给了提示,仍然一头雾水,看了半天大概明白是了跟踪路由然后返回域名设置的,

    那么跟踪路由命令nslookup,要查询域名的指定解析类型的解析记录

    格式:nslookup -type=type domain [dns-server]

    其中 type 为解释类型

    那么接下来就好办了,直接命令一把梭

    nslookup -qt=txt flag.ctfshow.com

    但是本地不知道哪里出问题了运行不出来

    只能依托gpt师傅帮帮忙了

    good!!!成功拿下!!!

    web12

    题目提示

    有时候网站上的公开信息,就是管理员常用密码

    根据题目提示,我们访问robots.txt,获取到后台地址

    在robots.txt下发现/admin/目录

    然后我们访问一下后台

    账号名直接盲猜admin,密码是网站底部的这串数字,372619038

    登录后成功拿下flag。

    web13

    题目提示

    技术文档里面不要出现敏感信息,部署到生产环境后及时修改默认密码

    既然跟默认密码有关,可能是密码泄露,在开发文档中极有可能泄露

    在网站找到一个超链接

    访问后,发现开发者在文档中写了自己的后台地址和账号密码

    这里your-domain换成自己的做题环境,访问后台地址

    https://your-domain/system1103/login.php

    拿下flag。

    web14

    题目提示

    小0day:某编辑器最新版默认配置下,如果目录不存在,则会遍历服务器根目录

    有时候源码里面就能不经意间泄露重要(editor)的信息,默认配置害***人

    查看网页源代码、抓包、dirsearch,dirsearch发现存在可以访问的/editor/,和题目提示很像,进去看看

    打开网站,根据提示访问http://your-domain/editor/

    发现了个编辑器

    点击图片空间或者文件空间时,发现居然能直接访问服务器根目录

    一路从根目录到网站目录找,在var/www/html/editor/旁边发现了一个叫nothinghere的文件夹,那肯定里面有东西了,发现fl000g.txt 直接抓包访问获得flag

    /editor/attached/image/var/www/html/nothinghere/fl000g.txt

    web15

    题目提示

    公开的信息比如邮箱,可能造成信息泄露,产生严重后果

    根据题目提示邮箱,在网页底部发现一个邮箱

    再url后面加上admin访问一下后台

    有一个忘记密码选项,点击一下

    有密保问题,联想到qq邮箱,搜索一下qq

    得到地址为西安,于是提交西安得到重置后的密码

    得到密码为admin7789,账号还是admin,登录后获得flag

    web16

    题目提示

    对于测试用的探针,使用完毕后要及时删除,可能会造成信息泄露

    php探针是用来探测空间、服务器运行状况和PHP信息用的,探针可以实时查看服务器硬盘资源、内存占用、网卡流量、系统负载、服务器时间等信息。是一个查看服务器信息的工具。比如查看服务器支持什么,不支持什么,空间速度等等状况!
    根据提示用到php探针知识点输入默认探针tz.php打开后点击phpinfo就可以查看到flag

    再点击phpinfo查看信息,搜索ctfshow得到flag

    web17

    题目提示

    备份的sql文件会泄露敏感信息

    用dirsearch扫出url/backup.sql

    打开靶机,直接用dirsearch扫描目录,扫出了/backup.sql

    访问url/backup.sql,自动下载了backup.sql

    打开backup.sql,即可获取flag

    web18

    题目提示

    不要着急,休息,休息一会儿,玩101分给你flag

    谢邀,玩了好几把,速度快的飞起,根本玩不了,作为一名ctfer怎么能玩游戏通关呢,必须得hack他

    一般来说,这种游戏都是js里控制的,我们翻看js代码

    解码147行的代码

    \u4f60\u8d62\u4e86\uff0c\u53bb\u5e7a\u5e7a\u96f6\u70b9\u76ae\u7231\u5403\u76ae\u770b\u770b

    根据提示,访问110.php,构造url/110.php

    得到flag

    web19

    题目提示

    密钥什么的,就不要放在前端了

    打开一个登录框,既然提示前端,那就看看源代码有没有什么线索

    发现了一些奇怪的东西,分析复习分析

    一共两段js代码

    function checkForm(){    var key = "0000000372619038";    var iv = "ilove36dverymuch";    var pazzword = $("#pazzword").val();    pazzword = encrypt(pazzword,key,iv);    $("#pazzword").val(pazzword);    $("#loginForm").submit();    }function encrypt(data,key,iv) { //key,iv:16位的字符串    var key1  = CryptoJS.enc.Latin1.parse(key);    var iv1   = CryptoJS.enc.Latin1.parse(iv);    return CryptoJS.AES.encrypt(data, key1,{        iv : iv1,        mode : CryptoJS.mode.CBC,        padding : CryptoJS.pad.ZeroPadding    }).toString();}

    这段代码是一个用于在客户端对密码进行加密后再提交表单的函数。

    它使用了 CryptoJS 库中的 AES 加密算法来对密码进行加密。具体来说,它做了以下几件事情:

    获取输入框中 id 为 “pazzword” 的密码值。

    通过指定的 key 和 iv 对密码进行 AES 加密。

    将加密后的密码设置回输入框 “pazzword” 中。

    提交表单。

    需要注意的是,这段代码中使用的是 ECB 模式和 ZeroPadding 填充方式。在实际应用中,建议考虑使用更安全的加密模式(如 CBC 模式)和填充方式(如 PKCS7 填充)来加强安全性。

            if($u==='admin' && $p ==='a599ac85a73384ee3219fa684296eaa62667238d608efa81837030bd1ce1bf04'){            echo $flag;        }}    -->

    这段代码是一个简单的 PHP 代码片段,用于处理用户提交的用户名和密码,并根据条件进行简单的验证,如果验证通过则返回一个标志。

    具体来说,它做了以下几件事情:

    关闭了错误报告输出,使得 PHP 不会输出错误信息到页面上。

    定义了一个变量 $flag 并赋了一个值 “fakeflag”,这个变量可能在其他地方被使用。

    从 POST 请求中获取了用户名和密码。

    如果用户名和密码都被设置了,且用户名为 “admin”,且密码为特定的哈希值,则返回变量 $flag 的值。

    结合以上几点来看:

    密文输出编码: 十六进制hex 偏移量iv: ilove36dverymuch 密钥:0000000372619038密文为: a599ac85a73384ee3219fa684296eaa62667238d608efa81837030bd1ce1bf04模式为CBC填充为ZeroPadding编码为Hex

    利用在线解密工具直接得到密码为:i_want_a_36d_girl

    输入admin和i_want_a_36d_girl

    登陆成功得到flag

    利用hackbar或者burpsuite抓包发送post请求,post传参也可以得到username=admin&pazzword=a599ac85a73384ee3219fa684296eaa62667238d608efa81837030bd1ce1bf04

    web20

    题目提示

    mdb文件是早期asp+access构架的数据库文件,文件泄露相当于数据库被脱裤了。

    早期 asp+access 架构的数据库文件为db.mdb ,所以访问 /db/db.mdb 下载一个文件。

    打开得到flag:flag{ctfshow_old_database}

上一篇:将浮点数转换为整数——浮点数和整数之间的转换方法详解

下一篇:JavaScript导航栏创建与功能增强实战教程