1.滑稽
https://ctf.bugku.com/challenges/detail/id/68.html
打开网页后全是表情包动画,没有任何思路与提示,先尝试看看前端代码中是否有提示
f12查看源码,发现flag在前端代码中
2.计算器
https://ctf.bugku.com/challenges/detail/id/69.html
题目描述:
计算结果为61,在提交时发现第二位无法输入,f12查看源码发现maxlength设置为了1
直接将1改为100,设置最大长度为100或删除maxlength
成功获得flag
3.post
打开后发现是一道简单的代码审计
仔细读代码可知,使用post提交参数what,然后如果what的值等于flag时则输出flag
使用hackbar提交即可
4.GET
与上题相似,这里不同的是以GET方式提交
构造?what=flag即可
5.矛盾
打开之后发现是一道简单的代码审计题,分析过程见注释
<?php
$num=$_GET['num']; //get方式接收参数num,赋值给变量num
if(!is_numeric($num)) //如果num的值不为数字
{
echo $num;
if($num==1) //如果num的值等于1
echo 'flag{**********}';
}
?>
乍一看这道题确实挺矛盾,这里需要介绍php语言的强弱类型的比较
强比较
1、使用三个 ''==='' 表示;
2、比较值,也比较类型;
3、先判断a,b类型,若相同,则比较值,若不相同,则返回false
弱比较
1、使用两个 ''=='' 比较;
2、只比较值,不比较类型;
3、a==b 将a,b的值转换成同类型再比较值,例如1==1a,先做强制类型转换,1a强制转换成整型后,a为字符串,无法转为整形,所以就变成1==1的比较,返回结果为true
了解此知识点后,直接构造?num=1a即可
6.alert
打开后发现弹窗
f12查看源代码,发现最后一行藏了部分信息
复制下来,发现是html实体编码,这里两种解决方式
方法1:新建文本文档保存以上内容,保存完毕后重命名为html文件,然后使用浏览器打开即可
注意需要删除<!--与-->,它是html注释符,会使得浏览器无法自动转义
方法2:借助html实体编码解码网站解码即可
7.你必须让他停下
依次放包,最后在此处发现flag
打开后发现网页在不停的刷新,这里使用burp抓包
除了此方法外,也可以禁用js,然后手动不断刷新查看源代码
8.头等舱
打开网页发现没有任何思路
查看源代码发现也没有任何东西
于是f12-网络-刷新网页
发现在消息头中存在flag
9.你从哪里来
https://ctf.bugku.com/challenges/detail/id/93.html
简单的考察了以下referer
学习参考:HTTP请求头中Referer的作用_Dax1_的博客-CSDN博客
添加个referer头只想google即可