EK中fromCharCode和parseInt的配合使用
基于web的漏洞攻击的第一步一般是:在landing page中通过<script>标签下的JavaScript脚本引入一些恶意链接。这些脚本往往会採用各种各样的混淆、加密手法来躲避AV和browser的拦截。以使得一些恶意脚本源码不轻易暴露。即使这些landing page被拦截,设计静止的混淆手法也能加大安全project师对恶意代码的分析难度。
利用JavaScript内置的parseInt函数和String对象的fromCharCode函数配合使用,来加密恶意脚本是一种常见的手法。
先简单说明两个函数:
1、parseInt(string, radix):解析一个字符串并返回一个整数
參数说明: string 必须,要被解析的字符串
radix 可选,表示要解析的数字的基数。该值介于2-36之间。假设省略,则表示按十进制来解析(除非第一个參数是以0x开头的字符串。则按16进展来解析)。如 果该參数小于2或大于36则返回NaN。
2、String.formCharCode(numX1, numX2, ..., numXn):介绍一个或多个指定的unicode值。返回相应的字符串
parseInt和fromCharCode配合加密的流程一般是:对于一段数字形式的字符串。由parseInt依次解析为数字,解析出来的数字再由fromCharCode转化为相应的字符串。
以下截取2014-10-06发现的sweet orange EK中的一段脚本为例说明:
<span style="font-size:14px;">var PmD = "e111d1b1ab1df058e249a23c274896bde041c016a0dc1f534e24ce29c31a6d3dbcdd4750b95ed6532bdfa7c16dc0dde4b9013fb32af2770affa5c7fa3d966932ee31d91505f93aa616";
var uSVpT = "8965a5c19132df3e832ad653553bb8d88738b062c9bd71302150ba46ad690554cea9347eda31bb7c5bb0ceaf09a5a590dc7310c34f801270d0ccb59b53b90d408141bd7a729714cc65";
var GOGP = "";
var w = 0x00;
for (var i = 0; i < (PmD.length / 2); i++) {GOGP += String.fromCharCode(parseInt((PmD[w] + PmD[w + 1]), 16) ^ parseInt((uSVpT[w] + uSVpT[w + 1]), 16));w += 2;
}</span>
解密出来的字符串保存在GOGP中,真正内容为:
http://factors.egyptiancottonshirts.com/poindexter/perez/iran/dropdown.js
该链接包括恶意的js脚本,已被chrome拦截:
转载于:https://www.cnblogs.com/blfshiye/p/5163023.html
EK中fromCharCode和parseInt的配合使用相关推荐
- 探讨 Java 中 valueOf 和 parseInt 的区别
文章目录 前言 区别 parseInt valueOf 后记 前言 在编程中,遇到类型转换,好像会经常用到 parseInt 和 valueOf,当然这里只拿 Integer 类型进行陈述,其他类型也 ...
- 关于Integer类中parseInt()和valueOf()方法的区别以及int和String类性的转换.以及String类valueOf()方法...
Integer类中的. 关于parseInt()方法的API文档. 返回的是int类型的 关于valueOf()方法的API文档 返回的是Integer类型的. 关于intValue()方法的API ...
- java中parseint函数_java中parseint函数
使用java中的parseInt()方法,怎么返回一个整数? 1. int是java的基本数据类型,"int n"表示定义了一个int 型的变量n; 2. int n = Inte ...
- 渗透测试中使用浏览器的正确姿势
渗透的时候使用得最多的就是浏览器和burp了,灵活使用浏览器可以使渗透的效率大大提高,这次就分享下我平时用浏览器的一些技巧. 1. 浏览器的选择 首选chrome浏览器,火狐浏览器为辅. mac的话还 ...
- angularjs中state的参数4_一文梳理pytorch保存和重载模型参数攻略
训练过程中保存模型参数,就不怕断电了--沃资基·索德 在训练完成之前,我们需要每隔一段时间保存模型当前参数值,一方面可以防止断电重跑,另一方面可以观察不同迭代次数模型的表现:在训练完成以后,我们需要保 ...
- Java forEach中 Lambda Expr中的 final变量要求
https://my.oschina.net/wadelau/blog/1859419 Java forEach中 Lambda Expr中的 final变量要求 Java8闭包 闭包是一个函数在创建 ...
- iOS中 openGL常用函数记录(部分)
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); 注:这行代码是用于清楚屏幕.GL_DEPTH_BUFFER_BIT 清除深度缓冲 glVerte ...
- html5中Canvas、绘制线条模糊、常见绘制工具、绘制基本图形、绘制图片、面向对象的方式绘制图形图片、绘制文本、帧动画绘制
Canvas容器: canvas标签用来定义图像的容器,必须配合脚本来绘制图像,canvas也运用于游戏开发.注意:canvas绘制图时会出现线条模糊情况,这是因为显示屏像素和canvas中定义的一个 ...
- vue如何使用原生js写动画效果_Vue中的动画效果
Vue 在插入.更新或者移除 DOM 时,提供多种不同方式的应用过渡效果. 包括以下工具: 在 CSS 过渡和动画中自动应用 class 可以配合使用第三方 CSS 动画库,如 Animate.css ...
- 利用计算机技术全面规划供应, 利用计算机及网络技术,全面规划供应链中的商流、物流、信息流、资金流等,并进行计划、组织、协调与控制。 ...
[判断题]英文中 "forty" 一词可以表示数量多,也可以表示数量不确定. [单选题]急性缺氧心脏的变化不包括 [单选题]什么在平面广告中具有传播信息.说服对象.加深记忆等作用? ...
最新文章
- 宁波大学计算机专业英语面试的形式,宁波大学信息学院计算机网络2014复试试题(回忆版)...
- centos7.3安装tomcat报Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
- 计算机网络中缓存技术,编程达人
- CANopen | 对象字典OD 02 - 修改CANopen节点的心跳报文发送间隔
- 使用print写文件
- 计算机用公式找出第一名,用公式查找Excel工作表中重复数据
- Keil 5 C51与STM32
- 记录每天背的单词,准备考研。(2月21日)
- MSN与六度分隔理论
- 英文写作中常用的转折,并列词组
- python opencv 旋转图像大小不变
- H5页面WebView在iPhoneX的适配
- 编程的同时还能盯股票基金?VSCode这款神器插件绝了!
- Coursera视频无法播放解决办法
- UI设计师如何应对面试 哪些细节问题不可忽视
- 如何搜索百度云盘里的文件
- 大家在人生低谷时有多惨,怎么熬过来的(四)
- Support for password authentication was removed on August 13, 2021. Please ...
- 明翰Java教学系列之认识Java篇V1.3(持续更新)
- c语言二级考试程序设计题难吗,计算机二级C语言考试程序设计题
热门文章
- javascript事件之:谈谈自定义事件
- [转]整理关于java的String 类,equals函数和比较操作符的区别
- abstract class和interface
- 真分布式SolrCloud+Zookeeper+tomcat搭建、索引Mysql数据库、IK中文分词器配置以及web项目中solr的应用(1)
- SpringBoot 之日志logback使用[简单上手版]
- iOS简单实现查看更多/收起的效果
- 从 JVM 层面理解 i++ 和 ++i 的真正区别!
- 雷布斯被骗200w??一行代码值两百万?雷军公开小米新logo翻车了?
- 一些常见的代码异味及解决之道
- 微服务架构实战:Swagger规范RESTful API