首页 > 其他分享 >CTFshow-Web入门模块-信息搜集writeip

CTFshow-Web入门模块-信息搜集writeip

时间:2024-04-13 17:55:05浏览次数:26  
标签:Web 文件 信息 flag 源码 CTFshow 考察点 php writeip

CTFshow-Web入门模块-信息搜集writeip

by 故人叹、

信息搜集

web1

考察点:查看源码

微信截图_20240406154430

题目提示:”开发注释未及时删除“,页面源代码中可能有东西,查看页面源代码发现flag。

微信截图_20240406154523

总结查看源码的几种方式:

  • F12打开源代码
  • 快捷键Ctrl+u
  • 在url前面加上 view-source:
  • 浏览器右上角选项中的Web开发者工具(Ctrl+Shift+i)
  • 右键页面查看页面源代码

web2

考察点:查看源码

微信截图_20240406155610

禁用了F12和右键查看源码,可用上题中除这两种的任意方法。

或者说在刷新页面的同时快速按F12,以争抢的方式,不给js代码执行的机会,也可以查看源代码。

微信截图_20240406155948

web3

考察点:bp抓包基本操作

进入页面无任何可用信息。

题目提示抓包,flag很可能放在了HTTP头部信息中,抓包并重发信息,查看重发响应得到flag。

![屏幕截图 2024-04-06 160244](https://gitee.com/LightBeyond/blog_images/raw/master/img/屏幕截图 2024-04-06 160244.png)

微信截图_20240406160308

web4

考察点:robots.txt文件信息泄露

搜索引擎可以通过robots文件可以获知哪些页面可以爬取,哪些页面不可以爬取。

Robots协议是网站国际互联网界通行的道德规范,其目的是保护网站数据和敏感信息、确保用户个人信息和隐私不被侵犯,如果robots.txt文件编辑的太过详细,反而会泄露网站的敏感目录或者文件,比如网站后台路径,从而得知其使用的系统类型,从而有针对性地进行利用。

题目提示查看robots.txt,访问得到flag文件路径,访问即可。

微信截图_20240406161109

微信截图_20240406161126

web5

考察点:phps源码泄露

phps文件就是php的源代码文件,通常用于提供给用户(访问者)直接通过Web浏览器查看php代码的内容。

因为用户无法直接通过Web浏览器“看到”php文件的内容,所以需要用phps文件代替。用户访问phps文件就能看到对应的php文件的源码。

题目提示phps源码泄露,则访问index.phps,在下载的文件中可以看到flag。

微信截图_20240406161545

web6

考察点:网站备份压缩文件泄露

在网站的使用过程中,往往需要对网站中的文件进行修改、升级。此时就需要对网站整站或者其中某一页面进行备份。当备份文件或者修改过程中的缓存文件因为各种原因而被留在网站web目录下,而该目录又没有设置访问权限时,便有可能导致备份文件或者编辑器的缓存文件被下载,导致敏感信息泄露,给服务器的安全埋下隐患。

题目提示“解压源码到当前目录”,考虑网站备份压缩文件泄露。

使用目录扫描工具dirsearch扫描敏感文件,扫出了www.zip备份文件。

python .\dirsearch.py -u http://4dc30a56-b5ae-45ac-bc5b-4252371bbb74.challenge.ctf.show/ -e *

微信截图_20240406162735

访问www.zip,在下载下来的文件中找到flag。

微信截图_20240406162859

web7

考察点:git源码泄露

在运行git init初始化代码库的时候,会在当前目录下面产生一个.git的隐藏文件,用来记录代码的变更记录等等。在发布代码的时候,没有把.git这个目录删除,直接发布了。使用这个文件,可以用来恢复源代码。

题目提示“版本控制很重要,但不要部署到生产环境更重要。”,考虑git源码泄露,可直接访问.git得到flag。

微信截图_20240406163437

web8

考察点:SVN文件泄露

Subversion,简称SVN,是一个开放源代码的版本控制系统,相对于的RCS、CVS,采用了分支管理系统,它的设计目标就是取代CVS。互联网上越来越多的控制服务从CVS转移到Subversion。

Subversion使用服务端—客户端的结构,当然服务端与客户端可以都运行在同一台服务器上。在服务端是存放着所有受控制数据的Subversion仓库,另一端是Subversion的客户端程序,管理着受控数据的一部分在本地的映射(称为“工作副本”)。在这两端之间,是通过各种仓库存取层(Repository
Access,简称RA)的多条通道进行访问的。这些通道中,可以通过不同的网络协议,例如HTTP、SSH等,或本地文件的方式来对仓库进行操作。

题目提示“版本控制”,考虑另一种泄露:svn泄露,直接访问.svn可查看更多信息。

微信截图_20240406163755

web9

考察点:vim缓存信息泄露

在使用vim时会创建临时缓存文件,关闭vim时缓存文件则会被删除,当vim异常退出后,因为未处理缓存文件,导致可以通过缓存文件恢复原始文件内容
以 index.php 为例:第一次产生的交换文件名为 .index.php.swp,再次意外退出后,将会产生名为 .index.php.swo 的交换文件,第三次产生的交换文件则为 .index.php.swn

题目提示“vim,死机...”,考虑vim缓存,直接访问index.php的缓存文件index.php.swp,得到flag。

微信截图_20240406164327

web10

考察点:cookie隐藏信息

Cookie是当主机访问Web服务器时,由 Web 服务器创建的,将信息存储在用户计算机上的文件。一般网络用户习惯用其复数形式 Cookies,指某些网站为了辨别用户身份、进行 Session 跟踪而存储在用户本地终端上的数据,而这些数据通常会经过加密处理。

题目提示“Cookie”,考虑查看当前网页cookie值,F12查看或抓包查看均可。

注:%7B和%7D分别是“{”和“}”的url编码。

微信截图_20240406165144

微信截图_20240406165157

web11

考察点:域名解析查询

题目提示“域名也可隐藏信息”,考虑通过DNS检查查询域名隐藏的信息。

两种方法:

  • 在线网站 https://zijian.aliyun.com/
  • 命令 nslookup -query=any flag.ctfshow.com
    • -query=any 表示查询全部基本格式信息
flag{just_seesee}

web12

考察点:弱密码、信息收集

进入实例,发现是一个购物网页,找了半天没发现登录的地方,结合之前的知识,在robots.txt中找到登录目录。

微信截图_20240406173021

访问/admin要求登录,题目有提示“密码可能为网站上的可见信息”,考虑网页中的联系方式、邮箱等作为密码的可能性,最终试出网页最底部的号码为登录密码。

微信截图_20240406173241

微信截图_20240406173302

web13

考察点:信息搜集

仍然是一个购物网站,这道题的思路应该和web12一样,需要找到登录界面和登录信息。

题目提示“技术文档”,在主页面最底下找到“document”可点击字样。

微信截图_20240407232408

点开获得一个pdf文件,即该网站的技术手册,发现后台地址和用户名、密码。

微信截图_20240407232320

登录网址:http://adf4ea13-ca10-4bab-9fc9-ffa8cf501d5e.challenge.ctf.show/system1103/login.php

微信截图_20240407232333

web14

考察点:信息搜集

实例为一个网站,题目提示“editor路径”,尝试访问:

微信截图_20240407233641

发现了一个编辑器,刚开始以为是命令执行,后尝试无果。逐个点击文本框上方的功能,在插入文件(回形针图标)功能中发现“文件空间”选项,点击可以查看到服务器目录。

微信截图_20240407233720

在路径 var/www/html/nothinghere 中发现flag文件,访问即可。

微信截图_20240407233634

web15

考察点:信息搜集、邮箱信息泄露

实例打开是一个网页,题目提示“邮箱、信息泄露”。

在主页面最底部发现一个QQ邮箱,通过QQ搜索用户得到以下信息:

微信截图_20240407234747

尝试寻找后台路径,访问 /admin ,发现了登录页面。

微信截图_20240407234926

目前不知道密码,用户名一般都为admin。看到了“忘记密码”选项,联想到可以通过邮箱验证更改或重置密码。

密保问题是admin所在地,结合刚才查询到的QQ用户信息,很容易得到密保答案:”西安“,输入后密码被重置。

微信截图_20240407235157

得到了密码,登录即可。

微信截图_20240407235217

web16

考察点:php探针、phpinfo信息泄露

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

php探针的功能:
1、服务器环境探测:CPU、在线时间、内存使用状况、系统平均负载探测(支持LINUX、FreeBSD系统,需系统支持),操作系统、服务器域名、IP地址、解释引擎等 ;
2、PHP基本特征探测:版本、运行方式、安全模式及常规参数;
3、PHP组件支持探测:MYSQL、GD、XML、SESSION、SOCKET等组件支持情况 ;
4、服务器性能检测:整数运算能力、浮点数运算能力、数据IO能力;
5、自定义探测:MYSQL连接测试、MAIL发信测试、函数支持情况及PHP配置参数。

常见的探针文件名为 tz.php

打开实例访问探针文件:

微信截图_20240407235926

打开php参数,可以看到打开phpinfo的入口:

微信截图_20240407235933

在phpinfo中发现flag。

微信截图_20240407235910

web17

考察点:备份文件泄露

题目提示“备份的sql文件泄露”,进入实例,使用目录扫描工具 dirsearch 扫描,找到文件 backup.sql ,下载查看得到flag。

微信截图_20240408163932

微信截图_20240408163924

web18

考察点:js源码审计

js游戏类题目在一般情况下都有捷径,题目提示“101分给你flag”,证明不能通过正常玩游戏的手段来拿到flag。

查看js源码,发现下面的代码,其为Unicode编码。

微信截图_20240408164945

解码后提示查看 110.php,直接访问即可。

微信截图_20240408164956

微信截图_20240408165008

web19

考察点:js源码审计、AES解密

题目提示“密钥放在前端”,查看js源码,发现AES加密:

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();
    }

同时在源码中发现了用户名和密码的AES加密字符串,这样我们就有三种方法可以拿到flag。

$u = $_POST['username'];
$p = $_POST['pazzword'];
if(isset($u) && isset($p)){
    if($u==='admin' && $p ==='a599ac85a73384ee3219fa684296eaa62667238d608efa81837030bd1ce1bf04'){
        echo $flag;
    }
}

(1)burpsuite抓包,更改信息并重发

已知用户名为admin,则将pazzword更改为加密后的密码,即可登录拿到flag。

微信截图_20240408170241

(2)hackbar传参

原理同上,已知用户名和密码为POST传参,传入正确的值即可。

微信截图_20240408170550

(3)AES解密得到密码,登录

在源码中已知加密的密钥、模式、填充和偏移量,找到一在线解密网站解出密码,登录即可。

微信截图_20240408170518

微信截图_20240408170631

web20

考察点:mdb文件泄露

mdb文件是早期asp+access构架的数据库文件,默认文件名为db.mdb。

题目提示文件泄露,上目录扫描工具,扫出了db目录,网页访问无内容。

尝试扫描db目录,发现文件 db.mdb ,访问可以得到一个mdb数据库文件。

微信截图_20240408172237

记事本打开mdb文件,搜索flag即可。

微信截图_20240408171755

标签:Web,文件,信息,flag,源码,CTFshow,考察点,php,writeip
From: https://www.cnblogs.com/yuspace/p/18133151

相关文章

  • 基于WebAssembly开发网页端
    基于WebAssembly开发网页端来源  https://zhuanlan.zhihu.com/p/162082688 序言QtforWebAssembly,是Qt在2018年发布的技术,于5.12加入到Qt,官方对此技术介绍如下:https://www.qt.io/blog/2018/05/22/qt-for-webassembly简单的说,这是一个让Qt程序可以直接跑在web中的一个方......
  • [SWPU2019]Web1
    [SWPU2019]Web1打开网页是一个登录页面源代码中没有发现什么有用的信息,注册个账号进行尝试发现admin已经被使用了,换了个用户名注册成功点击“申请发布广告”,需要填写广告名和内容使用1'测试广告详情里发现报错说明此处存在SQL注入点进行测试时发现空格、or、#、--+......
  • PHP特性 web107-
    Web107parse_str函数将前字符串解析到后边,实现变量的覆盖if(isset($_POST['v1'])){    $v1 = $_POST['v1'];    $v3 = $_GET['v3'];       parse_str($v1,$v2);       if($v2['flag']==md5($v3)){           echo $flag;    ......
  • 14、web 中间件加固-Tomcat 加固
    1.用户配置如果不需要控制台管理,请更改控制台用户文件注销账号信息;如果需要,请更改账户信息修改tomcat/conf/tomcat-user.xml文件注释或修改如下信息<rolerolename="manager-gui"/><userusername="admin"password="ABCabd123!"roles="manager=gui"/>2.开启tomca......
  • 13、web 中间件加固-Nginx 加固
    1.隐藏版本信息避免被针对版本直接使用漏洞修改nginx.conf文件在http模块中添加信息:server_tokensoff;2.限制目录权限某些目录为运维页面,不要公开访问编辑nginx.conf文件在server标签内添加内容:location~/attachments/.*\.(php|php5)?${denyall;}locatio......
  • RVC-WebUI的模型路径
    pth文件:.\assets\weightsindex文件:.\logs 靠自带文件名搜索整个文件夹找到的,实测有用 ......
  • 12、web 中间件加固-apache 加固
    1.账号设置1.1.防止webshell越权使用修改httpd.conf:/etc/httpd/conf/httpd.conf或编译路径下/conf/httpd.conf检查程序启动账号和用户组userapache或nobodygroupapache或nobody一般情况下默认用户符合安全要求1.2.非超级用户权限禁止修改apache主目录......
  • CTFshow Reverse 逆向4 学习记录
     题目 分析过程 是一个无壳,64位的文件丢到IDA里面,找到main函数1int__cdecl__noreturnmain(intargc,constchar**argv,constchar**envp)2{3__int64v3;//rdx4char*v4;//[rsp+20h][rbp-18h]56qword_140004618=(__int64)malloc(1......
  • 记录协助Javaer硬件快速开发过程之Web技术栈对接施耐德网络IO网关
    前一段时间有个Java技术栈的朋友联系到我,需要快速对接现有的无人值守称重系统,这里的对接是指替代现有系统,而非软件层面的对接,也就是利用现有的硬件开发一套替代现有软件的自动化系统。主要设备包括地磅秤、道闸、红外对射传感器、摄像头、小票打印、LED显示屏等等,全程使用LED显示......
  • 42 Typescript编译配置-webpack-babel
    TS编译配置自动编译单个文件tsc1.ts#如果想要自动监视文件的变化,需要添加`-W`配置tsc1.ts-W自动编译整个项目初始化,会自动生成一个tsconfig.json文件,然后直接执行tsc命令,就可以对当前目录的所有ts文件进行编译,生成对应的js文件#初始化项目tsc--init#编译......