CTFshow-Web入门模块-信息搜集writeip
by 故人叹、
信息搜集
web1
考察点:查看源码
题目提示:”开发注释未及时删除“,页面源代码中可能有东西,查看页面源代码发现flag。
总结查看源码的几种方式:
- F12打开源代码
- 快捷键Ctrl+u
- 在url前面加上 view-source:
- 浏览器右上角选项中的Web开发者工具(Ctrl+Shift+i)
- 右键页面查看页面源代码
web2
考察点:查看源码
禁用了F12和右键查看源码,可用上题中除这两种的任意方法。
或者说在刷新页面的同时快速按F12,以争抢的方式,不给js代码执行的机会,也可以查看源代码。
web3
考察点:bp抓包基本操作
进入页面无任何可用信息。
题目提示抓包,flag很可能放在了HTTP头部信息中,抓包并重发信息,查看重发响应得到flag。
![屏幕截图 2024-04-06 160244](https://gitee.com/LightBeyond/blog_images/raw/master/img/屏幕截图 2024-04-06 160244.png)
web4
考察点:robots.txt文件信息泄露
搜索引擎可以通过robots文件可以获知哪些页面可以爬取,哪些页面不可以爬取。
Robots协议是网站国际互联网界通行的道德规范,其目的是保护网站数据和敏感信息、确保用户个人信息和隐私不被侵犯,如果robots.txt文件编辑的太过详细,反而会泄露网站的敏感目录或者文件,比如网站后台路径,从而得知其使用的系统类型,从而有针对性地进行利用。
题目提示查看robots.txt,访问得到flag文件路径,访问即可。
web5
考察点:phps源码泄露
phps文件就是php的源代码文件,通常用于提供给用户(访问者)直接通过Web浏览器查看php代码的内容。
因为用户无法直接通过Web浏览器“看到”php文件的内容,所以需要用phps文件代替。用户访问phps文件就能看到对应的php文件的源码。
题目提示phps源码泄露,则访问index.phps,在下载的文件中可以看到flag。
web6
考察点:网站备份压缩文件泄露
在网站的使用过程中,往往需要对网站中的文件进行修改、升级。此时就需要对网站整站或者其中某一页面进行备份。当备份文件或者修改过程中的缓存文件因为各种原因而被留在网站web目录下,而该目录又没有设置访问权限时,便有可能导致备份文件或者编辑器的缓存文件被下载,导致敏感信息泄露,给服务器的安全埋下隐患。
题目提示“解压源码到当前目录”,考虑网站备份压缩文件泄露。
使用目录扫描工具dirsearch扫描敏感文件,扫出了www.zip备份文件。
python .\dirsearch.py -u http://4dc30a56-b5ae-45ac-bc5b-4252371bbb74.challenge.ctf.show/ -e *
访问www.zip,在下载下来的文件中找到flag。
web7
考察点:git源码泄露
在运行git init初始化代码库的时候,会在当前目录下面产生一个.git的隐藏文件,用来记录代码的变更记录等等。在发布代码的时候,没有把.git这个目录删除,直接发布了。使用这个文件,可以用来恢复源代码。
题目提示“版本控制很重要,但不要部署到生产环境更重要。”,考虑git源码泄露,可直接访问.git得到flag。
web8
考察点:SVN文件泄露
Subversion,简称SVN,是一个开放源代码的版本控制系统,相对于的RCS、CVS,采用了分支管理系统,它的设计目标就是取代CVS。互联网上越来越多的控制服务从CVS转移到Subversion。
Subversion使用服务端—客户端的结构,当然服务端与客户端可以都运行在同一台服务器上。在服务端是存放着所有受控制数据的Subversion仓库,另一端是Subversion的客户端程序,管理着受控数据的一部分在本地的映射(称为“工作副本”)。在这两端之间,是通过各种仓库存取层(Repository
Access,简称RA)的多条通道进行访问的。这些通道中,可以通过不同的网络协议,例如HTTP、SSH等,或本地文件的方式来对仓库进行操作。
题目提示“版本控制”,考虑另一种泄露:svn泄露,直接访问.svn可查看更多信息。
web9
考察点:vim缓存信息泄露
在使用vim时会创建临时缓存文件,关闭vim时缓存文件则会被删除,当vim异常退出后,因为未处理缓存文件,导致可以通过缓存文件恢复原始文件内容。
以 index.php 为例:第一次产生的交换文件名为 .index.php.swp,再次意外退出后,将会产生名为 .index.php.swo 的交换文件,第三次产生的交换文件则为 .index.php.swn 。
题目提示“vim,死机...”,考虑vim缓存,直接访问index.php的缓存文件index.php.swp,得到flag。
web10
考察点:cookie隐藏信息
Cookie是当主机访问Web服务器时,由 Web 服务器创建的,将信息存储在用户计算机上的文件。一般网络用户习惯用其复数形式 Cookies,指某些网站为了辨别用户身份、进行 Session 跟踪而存储在用户本地终端上的数据,而这些数据通常会经过加密处理。
题目提示“Cookie”,考虑查看当前网页cookie值,F12查看或抓包查看均可。
注:%7B和%7D分别是“{”和“}”的url编码。
web11
考察点:域名解析查询
题目提示“域名也可隐藏信息”,考虑通过DNS检查查询域名隐藏的信息。
两种方法:
- 在线网站 https://zijian.aliyun.com/
- 命令 nslookup -query=any flag.ctfshow.com
- -query=any 表示查询全部基本格式信息
flag{just_seesee}
web12
考察点:弱密码、信息收集
进入实例,发现是一个购物网页,找了半天没发现登录的地方,结合之前的知识,在robots.txt中找到登录目录。
访问/admin要求登录,题目有提示“密码可能为网站上的可见信息”,考虑网页中的联系方式、邮箱等作为密码的可能性,最终试出网页最底部的号码为登录密码。
web13
考察点:信息搜集
仍然是一个购物网站,这道题的思路应该和web12一样,需要找到登录界面和登录信息。
题目提示“技术文档”,在主页面最底下找到“document”可点击字样。
点开获得一个pdf文件,即该网站的技术手册,发现后台地址和用户名、密码。
登录网址:http://adf4ea13-ca10-4bab-9fc9-ffa8cf501d5e.challenge.ctf.show/system1103/login.php
web14
考察点:信息搜集
实例为一个网站,题目提示“editor路径”,尝试访问:
发现了一个编辑器,刚开始以为是命令执行,后尝试无果。逐个点击文本框上方的功能,在插入文件(回形针图标)功能中发现“文件空间”选项,点击可以查看到服务器目录。
在路径 var/www/html/nothinghere 中发现flag文件,访问即可。
web15
考察点:信息搜集、邮箱信息泄露
实例打开是一个网页,题目提示“邮箱、信息泄露”。
在主页面最底部发现一个QQ邮箱,通过QQ搜索用户得到以下信息:
尝试寻找后台路径,访问 /admin ,发现了登录页面。
目前不知道密码,用户名一般都为admin。看到了“忘记密码”选项,联想到可以通过邮箱验证更改或重置密码。
密保问题是admin所在地,结合刚才查询到的QQ用户信息,很容易得到密保答案:”西安“,输入后密码被重置。
得到了密码,登录即可。
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。
打开实例访问探针文件:
打开php参数,可以看到打开phpinfo的入口:
在phpinfo中发现flag。
web17
考察点:备份文件泄露
题目提示“备份的sql文件泄露”,进入实例,使用目录扫描工具 dirsearch 扫描,找到文件 backup.sql ,下载查看得到flag。
web18
考察点:js源码审计
js游戏类题目在一般情况下都有捷径,题目提示“101分给你flag”,证明不能通过正常玩游戏的手段来拿到flag。
查看js源码,发现下面的代码,其为Unicode编码。
解码后提示查看 110.php,直接访问即可。
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。
(2)hackbar传参
原理同上,已知用户名和密码为POST传参,传入正确的值即可。
(3)AES解密得到密码,登录
在源码中已知加密的密钥、模式、填充和偏移量,找到一在线解密网站解出密码,登录即可。
web20
考察点:mdb文件泄露
mdb文件是早期asp+access构架的数据库文件,默认文件名为db.mdb。
题目提示文件泄露,上目录扫描工具,扫出了db目录,网页访问无内容。
尝试扫描db目录,发现文件 db.mdb ,访问可以得到一个mdb数据库文件。
记事本打开mdb文件,搜索flag即可。
标签:Web,文件,信息,flag,源码,CTFshow,考察点,php,writeip From: https://www.cnblogs.com/yuspace/p/18133151