web1
信息搜集此题为
【从0开始学web】系列第一题
此系列题目从最基础开始,题目遵循循序渐进的原则
希望对学习CTF WEB的同学有所帮助。
开发注释未及时删除
此题有以上备注,可以想到备注未删除,有备注的地方就是原来代码咯,因此联想到可以用鼠标右键查看源代码
web2
信息收集
此题为【从0开始学web】系列第二题
此系列题目从最基础开始,题目遵循循序渐进的原则
希望对学习CTF WEB的同学有所帮助。
js前台拦截 === 无效操作
在题目界面可以看出由于js的使用已经无法使用查看源代码的操作了,所以我们想使用查看源代码的功能可以有两种思路
1.使用在URL前面添加 view-source:(官方答案)
2.既然因为使用JavaScript而导致不能查看源代码,那么我们是不是可以使用禁用JavaScript选项呢?
web3
信息搜集
此题为 【从0开始学web】系列第三题
此系列题目从最基础开始,题目遵循循序渐进的原则
希望对学习CTF WEB的同学有所帮助。
没思路的时候抓个包看看,可能会有意外收获
此题直接提示抓包,那我们恭敬不如从命,BurpSuite走起
打码的地方就是答案所在
web4
信息搜集
此题为 【从0开始学web】系列第四题
此系列题目从最基础开始,题目遵循循序渐进的原则
希望对学习CTF WEB的同学有所帮助。总有人把后台地址写入robots,帮黑阔大佬们引路。
robots.txt 是网站上经常使用的一个协议,叫做机器人协议,一般放在网站根目录,但是他是约定俗成的所以有的简陋的网站并没有这个协议,还有的为了隐藏信息并没有去编写。
所以我们需要查看一下robots.txt应该就能发现flag信息
web5
信息搜集
此题为 【从0开始学web】系列第五题
此系列题目从最基础开始,题目遵循循序渐进的原则
希望对学习CTF WEB的同学有所帮助。
phps源码泄露有时候能帮上忙
此题为源码泄露,phps(在某篇wp上看到的解释:PHP文件编写后被php解析,然后php文件变成了网页格式,而php中编写的代码则变成了phps被保存了起来)所以我们尝试访问phps文件,发现文件可以被下载,从下载文件中发现了flag
web6
信息搜集
此题为 【从0开始学web】系列第六题
此系列题目从最基础开始,题目遵循循序渐进的原则
希望对学习CTF WEB的同学有所帮助。
解压源码到当前目录,测试正常,收工
从web6开始考察了代码泄露的问题,这是第一个代码泄露,根据提示我们可以看出此题泄露方式是网站备份泄露,因此我们需要了解常见网站备份的方式有rar压缩、zip压缩、7z压缩、tar.gz压缩(Linux压缩方式)、bak压缩、更改为TXT后缀、更改为old后缀、使用temp后缀,我们配合后台扫描器一般就能发现,根据扫描器我们可以发现此网站的泄露文件为www.zip
web7
信息搜集
此题为 【从0开始学web】系列第七题
此系列题目从最基础开始,题目遵循循序渐进的原则
希望对学习CTF WEB的同学有所帮助。版本控制很重要,但不要部署到生产环境更重要。
看到版本控制后脑子中想到了某大型“同性交友”网站——“gayhub”,由此想象到emmmm,git,这道题是git吗?尝试一下.git发现无法链接,难道是我错了?经查看可能是网站输入了链接问题,并未启用8080端口,来经过查询发现需要使用/.git/index.php
web8
信息搜集
此题为 【从0开始学web】系列第八题
此系列题目从最基础开始,题目遵循循序渐进的原则
希望对学习CTF WEB的同学有所帮助。版本控制很重要,但不要部署到生产环境更重要
。
what?又是版本控制?git输入。嗯?不对?经过查询发现版本控制还有svn(好吧我是铁fw),.svn/index.php 走你
web9
信息搜集
此题为 【从0开始学web】系列第九题
此系列题目从最基础开始,题目遵循循序渐进的原则
希望对学习CTF WEB的同学有所帮助。
发现网页有个错别字?赶紧在生产环境vim改下,不好,死机了
emmmm,vim? let me 想想,由于使用vim不规范得我经常容易出现错误,会出现备份文件.后缀.swp 这个不会也是吧,冲!
web7、8、9 后续总结
版本控制问题出现的是
git
svn
hg
对于此类题目应该比较敏感
对于信息泄露总结
网站备份信息泄露
.zip
.rar
.7z
.tar,gz
bak
.swp
.txt
···
版本控制信息泄露
.hg
.git
.svn
.DS_Store泄露
目录遍历
PHPinfo(PHP探针)
vim缓存
web10
信息收集
此题为 【从0开始学web】系列第十题
此系列题目从最基础开始,题目遵循循序渐进的原则
希望对学习CTF WEB的同学有所帮助。
cookie 只是一块饼干,不能存放任何隐私数据
cookie 用于提示web用户干了什么可以被查看,因此使用可以查看cookie的软件就可以看到,最简单的方式是抓包或者启动审查模式
web11
信息搜集
此题为 【从0开始学web】系列第十一题
此系列题目从最基础开始,题目遵循循序渐进的原则
希望对学习CTF WEB的同学有所帮助。
域名其实也可以隐藏信息,比如ctfshow.com 就隐藏了一条信息
一般域名信息需要查看dns解析等服务,因此我们需要查看dns txt记录使用阿里云的自检服务 https://zijian.aliyun.com/(官方wp)
==手动分割线,从web12开始题目开始变得复杂,涉及前面11道题的综合运用==
web12
信息搜集
此题为 【从0开始学web】系列第十二题
此系列题目从最基础开始,题目遵循循序渐进的原则
希望对学习CTF WEB的同学有所帮助。有时候网站上的公开信息,就是管理员常用密码
从提示中可以看到网站上的公开信息可以得知管理员密码,此处联想密码一般为电话、邮箱、生日等信息,因此我们需要找可疑信息
可以确定为电话号码,但是并未寻找到登录界面,这个时候我们应该启动后台扫描器扫描后台登录后台输入即可
web13
信息搜集
此题为 【从0开始学web】系列第十三题
此系列题目从最基础开始,题目遵循循序渐进的原则
希望对学习CTF WEB的同学有所帮助。技术文档里面不要出现敏感信息,部署到生产环境后及时修改默认密码
技术文档中出现敏感信息,此时需要查看技术文档,观看网页页首
找到技术文档,点击触发下载打开文档可以看到
web14
信息搜集
此题为【从0开始学web】系列第十四题
此系列题目从最基础开始,题目遵循循序渐进的原则
希望对学习CTF WEB的同学有所帮助。
小0day:某编辑器最新版默认配置下,如果目录不存在,则会遍历服务器根目录
有时候源码里面就能不经意间泄露重要(editor)的信息,默认配置害死人
此处是editor编辑器漏洞,网页编辑器是一个非常危险的地方,因此我们需要注意,从0day提示此处需要寻找目录,我们可以观察一下上传目录,根据目录遍历我们可以寻找可疑文件最终我们寻找到fl000g.txt
web15
信息搜集(社会工程学)
此题为 【从0开始学web】系列第十五题
此系列题目从最基础开始,题目遵循循序渐进的原则
希望对学习CTF WEB的同学有所帮助。
公开的信息比如邮箱,可能造成信息泄露,产生严重后果
此题需要观察邮箱从网页的页尾可以看到邮箱信息
可以看到是QQ邮箱,运用社工知识可以查询一系列信息,此处不加详解,可以看到,登录后台发现邮箱不是密码,尝试使用QQ号发现不对
重置密码登录得到flag
web16
此题为 【从0开始学web】系列第十六题
此系列题目从最基础开始,题目遵循循序渐进的原则
希望对学习CTF WEB的同学有所帮助。对于测试用的探针,使用完毕后要及时删除,可能会造成信息泄露探针:
查询常用探针,查询PHPinfo()可以找到flag
web17
此题为 【从0开始学web】系列第十七题
此系列题目从最基础开始,题目遵循循序渐进的原则
希望对学习CTF WEB的同学有所帮助。透过重重缓存,查找到ctfer.com的真实IP,提交flag{IP地址}
寻找可以查询ip的网站(ipip)查找到flag
web18
此题为 【从0开始学web】系列第十八题
此系列题目从最基础开始,题目遵循循序渐进的原则
希望对学习CTF WEB的同学有所帮助。
不要着急,休息,休息一会儿,玩101分给你flag
看到这个题我直接疑惑玩游戏???(游戏废玩家)路过
查看源码发现是js游戏,找到js源码发现101分的意思是满足这个条件
if(score>100){
var result=window.confirm("\u4f60\u8d62\u4e86\uff0c\u53bb\u5e7a\u5e7a\u96f6\u70b9\u76ae\u7231\u5403\u76ae\u770b\u770b");
}
此处为Unicode代码使用在线转换工具可以得出flag
web19
此题为 【从0开始学web】系列第十九题
此系列题目从最基础开始,题目遵循循序渐进的原则
希望对学习CTF WEB的同学有所帮助。密钥什么的,就不要放在前端了
看到这句话狂喜,查看源码
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();
}