复现tomcat远程代码执行漏洞(CVE-2016-8735)

0x01 漏洞信息

阅读全文

jsEncrypter的Node.js版server脚本

最近在公众号发现有小伙伴在使用nodejs调用加密脚本对密码进行加密暴力破解。于是打算给Burp插件jsEncrypter添加nodejs版本的server脚本。目前已经更新该脚本到项目中,感兴趣的小伙伴可以去试试效果。

Node.js版server脚本代码

项目
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
/**
* author: c0ny1
* date: 2018-4-14
* file: nodejs_server.js
*/
var http = require('http');
var querystring = require('querystring');
var host = '127.0.0.1'; //地址
var port = '1664'; //端口
//require('your_encrypte_script.js'); /*引入实现加密的js文件*/
require('./sha384.js');
// 处理函数
function js_encrypt(payload){
var newpayload;
/**********在这里编写调用加密函数进行加密的代码************/
var pwdhash=CryptoJS.SHA384(payload);
newpayload = pwdhash.toString();
/**********************************************************/
return newpayload;
}
var server = http.createServer(function(request,response){
if(request.method === 'POST'){
var postData = '';
request.on('data',function(params){
postData += params;
});
request.on('end',function(){
var dataString = postData.toString();
var dataObj = querystring.parse(dataString);
var payload = dataObj.payload;
var encrypt_payload = js_encrypt(payload);
console.log('[+] ' + payload + ':' + encrypt_payload);
response.statusCode = 200;
response.write(encrypt_payload);
response.end();
});
}else{
response.statusCode = 200;
response.write("^_^\n\rhello jsEncrypter!");
response.end();
}
});
server.listen(port, host, function () {
console.log("[!] ^_^");
console.log("[*] nodejs server start!");
console.log("[+] address: http://"+host+":"+port);
});

阅读全文

快速定位前端加密方法

相信用过我jsEncrypter这个插件的朋友,都会碰到一个问题。 那就是一些大型网站前端太复杂,以至于无法定位到前端数据加密函数所在的位置。无法定位到加密方法所在,自然就无法编写jsEncrypter的phantomJS脚本了。k哥在今晚给了我很多灵感,让我对这个问题有一个完美的解决方案。以至于现在已是12号的凌晨3点,我仍不舍得搁浅内心零散的想法。窗外稍许的车辆略过的轰鸣,在夜深人静时显得格外刺耳。不过还好,没破坏我静静码字感觉。下面让我慢慢将这简单弱智有点零散,但细细思考,却有点意思的想法,串成一个流程。

阅读全文

混淆Burp插件代码

说要混淆Burp插件,可能有些小伙伴会说:

A:混淆干嘛,大家都这么忙,谁有时间看你的烂代码!

B:现在都鼓励开源,你这么做有悖于开源精神。

……

me:这和开源精神没有冲突,我的理解里,真正的开源精神应该是从内心出发的,而不是受“开源人士”的舆论压力,这是道德绑架。更不能因为大家开源,所以我也开源,为了开源而开源没有意义。况且本文仅仅研究混淆这门技术的原理和魅力!

阅读全文

填坑:PentestBox之工具名称搜索

PentestBox是我在Windows上很喜欢的一款移动渗透工具,我一直把它当做我的移动kali。所以我将很多自己常用的Python脚本和其他常用软件引入到PentestBox中。这导致现在PentestBox下工具很多,根本无法记得它们的名称。所以在使用的时候,还得去PentestBox目录查看它们的名称,这很浪费时间!这个问题我也是想了很多方法,也去了各个论坛提问。

阅读全文

Meltdown和Spectre漏洞学习笔记

最近Meltdown和Spectre两个漏洞在各大安全媒体刷屏,堪称年初大戏。本来想好好研究一下这两个漏洞的原理,无奈业界各位大牛各种分析,深感自己写的不如他们通俗易懂。故这篇文章,大部分内容不是自己的研究成果,而是阅读各位大牛漏洞分析文章的一个总结笔记。有些段是原封不动的,若有侵权嫌疑,请联系我。

阅读全文

编写加密传输爆破插件jsEncrypter

我曾经听某大牛所过两句话:

1
2
3
1. 我们能入侵最先进的系统,却不能阻止用户使用弱口令。
2. 当一个系统的用户超过1000+,那么弱口令一定存在!

阅读全文

永远的亚伦·斯沃茨

亚伦·斯沃茨



阅读全文

Burp Suite APIs分类归纳

最近一直在研究Burp插件实现高效漏洞挖掘。Burp Suite官方提供的APIs共37个接口。在学习插件编写的过程中,读起来很枯燥。以下是自己学习过程中对APIs进行了一个归纳分类,方便理清各类API的关系。如有错误,烦邮件告知,感激不尽。后面有更好感悟,再更新~

分了6个大类:插件入口类,UI相关类,工具套件类,HTTP消息处理接口类,辅助类和其他。并从中分出2个小类:四大监听器和四大工厂。

阅读全文

Burp中的currentPayload和originalPayload

在学习burp suite APIs中的Intruder payload处理器的过程中,一直搞不明白IIntruderPayloadProcess接口中processPayload方法的currentPayload和originalPayload参数有啥区别。虽说从名字上看currentPayload就是当前paylaod,originalPayload是原始payload的意思。翻了一下文档,大概知道了它们的区别,但总感觉还是没弄清其本质区别,很不舒服!

阅读全文