1.web2
打开网页弹出的全是滑稽脸,检查源代码,可以直接找到flag
2.计算器
打开之后可以看到一个算式
输入答案时发现只能输入1个数字,于是F12发现
发现输入的字符串最大长度为1,于是改成2,输入答案70后,flag就出来了
3.web基础$_GET
打开后发现时PHP语句
发现如果what=flag则输出flag
于是在url码中加上?what=flag
flag 就出来了
4.web基础$_POST
打开之后,读得大意是要传递what的值,当what=flag是输出flag
这时候就要用hackbar
然后flag就出来了
5.矛盾
读懂意思,要求num不是数字或数字串,但是要当他为1是才输出flag
php判断值相等时,只需要开头为1即可,那么我们加上?num=1aaa,flag就出来了
6.web3
打开后
不断重复
点击阻止时,变成空白界面。查看源码发现一串unicode编码
转码后得到flag
7.域名解析
打开123.206.87.240 后出现
后来发现这可能是因为域名不存在,所以想用BP修改一下
依照题意,把host改为 flag.baidu.com
放到repeater运行一下就得到flag了
8.你必须让他停下
打开之后,网页一直在自动刷新
偶热还会出现图片
于是打算使用BP抓一下包,看看各种情况
不停运行发现每次图片名称都会发生改变
运行了很多遍
知道图片名称为10.jpg时,flag自动出现了
9.本地包含
一打开,一片空白,啥都没,可能题目消失了。
10.变量1
一打开发现这是一道代码审计题
读完代码,
此处发现有两个$,发现这是一个可变变量
而且通过get方式传递 args变量才能执行if里面的代码
这时候我们就想到传入超全局变量GLOBALS这样flag就出来了
11.web5
打开后随便输入后
于是查看源代码后发现一大串奇怪的东西
上网查了一下发现这是JSFUCK,就好像提示说的于是找到JSFUCK加密解密器就得到flag了
12.头等舱
打开后
打算用BP抓下包包
放到repeater里运行一下flag就出来了
13.网站被黑
打开之后非常炫酷
查看源代码是一大串,就想想别的办法
看到webshell就打算用御剑扫一下
打开之后出现
于是想到用BP爆破一下密码
密码出来了,这就是正确密码
输上去flag就出来了
14.管理员系统
打开后
是登陆界面,随便输入后出现下面这句话
查看一下源码发现
这是base64,于是去解码得到test123
这应该就是密码了,猜测账户名应该是admin这个世界通用的东西,但是登陆后依然出现这句话,只能上网搜了,发现可以通过X-Forwarded-For绕过,可以伪装成本地访问
于是增加X-Forwarded-For:127.0.0.1后flag就出来了
15.web4
打开后
那我们直接看源码
这是要让我们解码,这是unescape编码
p1解码得到:
p2解码得到:
还有中间的一段
加起来输入进去,flag就出来了
16.flag在index里
一打开
我就点了一下后,发现url变了
这个点不是听懂就上网搜了下,看到了file,新了解到一个php://filter
链接.
看了大佬的后,在这上面学到了,这可以查看源码
于是照猫画虎
出现了base64码,放到网站上解码得到了源码
得到了flag,而且发现flag居然是注释!
17.输入密码查看flag
一打开是输入密码而且看到了一个地方
这是让我们爆破密码,打开BP开始操作
密码出来了,输上去flag就出来了
18.点击一百万次
题目不见了
19.备份是个好习惯
打开后
只有一串字符,而且重复了两次,之后了解到这是MD5
没接触过类似的题 ,向别人学了一下是要找.brk文件
于是用御剑扫描找到了
打开之后是源码
读出意思后,是要将key1和key2进行MD5加密而且当加密后的值相同而加密前的值不同就输出flag,没有经验,又只能上网查了,发现了可以利用科学计数法使得加密后的值都小于1,那么加密后就都等于0
摘自 雨落洛
于是flag就出来了
neve give up
F12看看
进去看看
有一串base64码,解密之后得到
";if(!$_GET['id'])
{
header('Location: hello.php?id=1');
exit();
}
$id=$_GET['id'];
$a=$_GET['a'];
$b=$_GET['b'];
if(stripos($a,'.'))
{
echo 'no no no no no no no';
return ;
}
$data = @file_get_contents($a,'r');
if($data=="bugku is a nice plateform!" and $id==0 and strlen($b)>5 and eregi("111".substr($b,0,1),"1114") and substr($b,0,1)!=4)
{
require("f4l2a3g.txt");
}
else
{
print "never never never give up !!!";
}
?>
于是我们访问
得到flag
welcome to bugkuctf
题目好像不见了
你从哪里来
打开后
这里从大佬那里学来一个referer
通过这个再结合提示,题目是让我们从谷歌过来,于是增加referer
go,flag就出来了
md5 collision(NUPT_CTF)
又是md5,很多道类似的题
题目让我们输入a,于是我们构造MD5加密后的a的值为0e开头就行了
于是构造payload?a=s155964671a
flag就出来了
程序员本地网站
打开后
这里就想起了XFF,开始操作
各种绕过
<?php
highlight_file('flag.php');
$_GET['id'] = urldecode($_GET['id']);
$flag = 'flag{xxxxxxxxxxxxxxxxxx}';
if (isset($_GET['uname']) and isset($_POST['passwd'])) {
if ($_GET['uname'] == $_POST['passwd'])
print 'passwd can not be uname.';
else if (sha1($_GET['uname']) === sha1($_POST['passwd'])&($_GET['id']=='margin'))
die('Flag: '.$flag);
else
print 'sorry!';
}
?>
读代码,我们要使uname的sha1和值与passwd的sha1的值相等即可,但是同时他们两个的值又不能相等,我们只要构造数组就可以了
web8
源码是
<?php
extract($_GET);
if (!empty($ac))
{
$f = trim(file_get_contents($fn));
if ($ac === $f)
{
echo "<p>This is flag:" ." $flag</p>";
}
else
{
echo "<p>sorry!</p>";
}
}
?>
题目给出提示txt,于是访问flag.txt
只出现flags,所以知道了flag.txt的内容
而fn就是flag.txt这个文件,ac是文件里的内容
这时候我就可以构造payload了
payload:?fn=flag.txt&ac=flags
细心
打开后,是404
这题是看大佬的wp的,有一个robots.txt,为什么会突然想到这个东西,虽然我知道,但我想不到啥时候用得到它
进入后
于是再进入resusl.php
又结合题目的提示admin,于是构造payload:?x=admin
flag就出来了