题目: [SWPUCTF 2022 ]numgame
打开环境发现什么也没有,就一个算数页面,基本没有有用信息
我们试着打开源代码 CTRL+u和F12 都不能用这个时候用火狐浏览器插件试一下 看到源码有1.js文件
内容如下:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25var input = $('input'),
input_val = parseInt(input.val()),
btn_add = $('.add'),
btn_remove = $('.remove');
input.keyup(function() {
input_val = parseInt(input.val())
});
btn_add.click(function(e) {
input_val++;
input.val(input_val);
console.log(input_val);
if(input_val==18){
input_val=-20;
input.val(-20);
}
});
btn_remove.click(function(e) {
input_val--;
input.val(input_val);
});
// NSSCTF{TnNTY1RmLnBocA==}简单审计一下 最后一个NSSCTF的内容 应该是base64加密
我们解密看一下 内容:NsScTf.php我们打开这个文件 弹出来了php代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16<?php
error_reporting(0);
//hint: 与get相似的另一种请求协议是什么呢
include("flag.php");
class nss{
static function ctf(){
include("./hint2.php");
}
}
if(isset($_GET['p'])){
if (preg_match("/n|c/m",$_GET['p'], $matches))
die("no");
call_user_func($_GET['p']);
}else{
highlight_file(__FILE__);
}审计一下 发现过滤了n,c,m三个字母
我们用大写绕过
payload:NSS::CTF我们发现给了一句话:有没有一种可能,类是nss2
我们重新构造payload:NSS2::ctf
在源代码看到了flag总结:这个题目最主要就是考察这个函数调用的方式:
函数名::方法