工具| Nodejs暴力破解实践

135编辑器

问题描述:

当我们在进行网站安全性测试的时候,通常会遇到网站不存在登陆账号错误锁定机制、无验证码防爆破机制等。

如果用户名和密码采用的是明文传输方式,使得我们可以很轻易的无限重放登陆请求数据包,在已知用户名或者密码其中之一的情况下进行暴力破解。

而如果网站在用户登陆的时候对用户名和密码进行了加密处理,要如何快速的进行爆破呢?

代码如下:

POST /login/ HTTP/1.1
Host: 192.168.80.131
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://192.168.80.131/login/?next=/
X-Requested-With: XMLHttpRequest
Content-Length: 443
Content-Type: multipart/form-data; boundary=---------------------------146043902153
Cookie: csrftoken=XJeOhq0dkSPVb3zBWhArYLNQxpqkmjEfmxT1x8IECMzFoyK4oVamioS3cgVaBQYB
Connection: close

-----------------------------146043902153
Content-Disposition: form-data; name="logname"

admin
-----------------------------146043902153
Content-Disposition: form-data; name="logpass"

14e1b600b1fd579f47433b88e8d85291
-----------------------------146043902153
Content-Disposition: form-data; name="csrfmiddlewaretoken"

y7BblF2tcCBSQ6SZHLltrI1ocnWVQ0KcXVgoBnKUuwlC3B3s9pVoLl6BRerL5x4y
-----------------------------146043902153--

135编辑器

解决思路:

常规思路:准备好爆破字典 -> 查找网站用户名密码加密方式 -> 使用其他脚本语言(如python)模拟前台JavaScript的加密方式加密字典 -> 利用重放工具加载加密过的爆破字典进行爆破。

大神思路:准备好爆破字典 -> 查找网站用户名密码加密方式 -> 请求明文用户名密码到NodeJs -> NodeJs直接调用JavaScript加密方法加密 -> NodeJs将加密后的用户名密码发送到需要爆破的网站 -> NodeJs根据网站响应判断用户名密码是否正确 -> 使用重放工具循环爆破。

135编辑器

实战演练

实战环境:

某网站登陆页面不存在防爆破机制,密码在用户登陆过程中被加密传输。

登陆成功,返回errorcode等于0。

登陆失败,返回errorcode等于-1。

工具说明:

Burpsuit、NodeJs

安装使用说明: www.runoob.com/nodejs/nodejs-install-setup.html)

135编辑器

实战过程:

Step 1:找网站密码加密方式

a)查看登陆页面源码

其中,form.append("logpass",hex_md5(hex_md5($("#logpass").val())));对用户输入的密码调用了两次hex_md5()进行加密。

b)查找定义hex_md5()加密方法的位置。

Step 2:NodeJs调用JavaScript加密方法加密

a)将md5.js文件保存到本地,并使用export将加密方法暴露出来。

b) 创建NodeJs服务器,接收http GET请求

创建server.js文件,将以下代码写入文件:

c) 引用md5.js,加密nodejs接收到的用户密码

添加加密代码到server.js中。Server.js代码如下:

Step3:使用重放工具循环爆破

a) 开启nodejs服务器

代码如下:

#nodejs server.js

b) 测试可爆破性

访问http://127.0.0.1:8888/?name=admin&pass=123

在nodejs中查看网站返回信息 。

c) 使用burpsuit对node.js服务器进行重放。

爆破成功。

135编辑器

实战总结:

以上内容为 Nodejs暴力破解实践分享,如有更好的思路或者任何疑问,欢迎艾特漏斗社区那位最帅的萌新小哥哥。

本文分享自微信公众号 - 漏斗社区(newdooneSec)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-04-13

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏前端小叙

Vue.js 2.0 学习重点记录

Vue.js兼容性 Vue.js.js 不支持 IE8 及其以下版本,因为 Vue.js.js 使用了 IE8 不能模拟的 ECMAScript 5 特性。 V...

40750
来自专栏lonelydawn的前端猿区

Node.js力破江苏网警刑侦科推理试题

月前,江苏网警 在微博发布了一套《2018年刑侦科目推理试题》,可谓难倒了诸多英雄好汉,评论区内更是一片皮皮之音。 @二向箔icon: 高考前班主任教过我们,...

36070
来自专栏逸鹏说道

TypeScript 1.6发布:完全支持React/JSX

2012年,微软推出了一个能够在Node.js上运行的开源语言——TypeScript。作为JavaScript的超集,TypeScript在兼容JavaScr...

29150
来自专栏安恒信息

Node.js反序列化远程代码执行漏洞(CVE-2017-5941)

一.漏洞描述 Node.js是一个Javascript运行环境(runtime)。实际上它是对Google V8引擎进行了封装。V8引擎执行Javascrip...

36780
来自专栏京东技术

微信手Q node.js直出框架Hawaii剖析——京东前台技术委员会专题

手机京东技术团队 ? 作者简介 资深前端开发工程师 京东前台技术委员会委员 微信手Q运营产品前端开发组组长 目前负责微信手Q购物入口的前端基础建设及port...

35960
来自专栏前端小叙

nvm安装node和npm,个人踩坑记录

我采用nvm-setup安装windows版本的nvm nvm安装node出现的问题: 1、node成功了,npm没成功      解决:在nvm 安装了nod...

76880
来自专栏逸鹏说道

NodeJS 应用仓库钓鱼

前言 城堡总是从内部攻破的。再强大的系统,也得通过人来控制。如果将入侵直接从人这个环节发起,那么再坚固的防线,也都成为摆设。 下面分享一个例子,利用应用仓库,渗...

34750
来自专栏带你撸出一手好代码

nodejs与前端js的区别

很多前端程序员想玩nodejs开发,认为这是前端的一股趋势, 但真正能从前端js过渡到nodejs的却是凤毛麟角, 而看似和nodejs扯不上关系的后端程序员反...

2.3K90
来自专栏有趣的django

39.Vue基础

环境搭建 node.js安装 https://nodejs.org/en/ cnpm npm install -g cnpm --registry=https...

48560
来自专栏逸鹏说道

ASP.NET Core 性能对比评测(ASP.NET,Python,Java,NodeJS)

前言 性能是我们日常生活中经常接触到的一个词语,更好的性能意味着能给我们带来更好的用户体检。比如我们在购买手机、显卡、CPU等的时候,可能会更加的关注于这样指标...

2K60

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励