当前位置: 首页 > news >正文

网站域名和空间区别厦门营销型网站

网站域名和空间区别,厦门营销型网站,企业网站设计与推广,做网站用框架么文章目录 前置知识JS Object 相关Ignition 相关JIT - turboFan 相关starCTF2019 OOB【越界读写map字段】googleCTF2018 jit【浮点数精度丢失导致越界读写】数字经济线下 Browser【Object::toNumber中callback导致的越界写】前置知识 JS Object 相关 V8 中的对象表示 == 基… 文章目录 前置知识JS Object 相关Ignition 相关JIT - turboFan 相关 starCTF2019 OOB【越界读写map字段】googleCTF2018 jit【浮点数精度丢失导致越界读写】数字经济线下 Browser【Object::toNumber中callback导致的越界写】 前置知识 JS Object 相关 V8 中的对象表示 == 基础的文章,建议先看看 V8 exploitation base == 一个大总结,其实基础知识看这个就好了 JavaScript 引擎基础:Shapes 和 Inline Caches == 简单易懂,图很形象 v8官方文章 - 解析 property == 主要解析了对象内属性、快属性、慢属性的存储 V8、Chrome、Node.js == 这是一系列的文章,很多,读者可以自行选择阅读 Ignition 相关 Ignition: V8 Interpreter JIT - turboFan 相关 笔者建议先看一遍官方文档 part2 = 比较详细,但是很抽象 TurboFan = 比较粗略,但能有一个大概的认识 官方博客 tturbolizer 在线使用网站: https://v8.github.io/tools/head/turbolizer/index.htmlstarCTF2019 OOB【越界读写map字段】 环境搭建 git reset --hard 6dc88c191f5ecc5389dc26efa3ca0907faef3598 git apply oob.diff gclient sync -D # 别忘了 gclient sync 同步一下漏洞分析 diff --git a/src/bootstrapper.cc b/src/bootstrapper.cc index b027d36..ef1002f 100644 --- a/src/bootstrapper.cc +++ b/src/bootstrapper.cc @@ -1668,6 +1668,8 @@ void Genesis::InitializeGlobal(HandleJSGlobalObject global_object,Builtins::kArrayPrototypeCopyWithin, 2, false);SimpleInstallFunction(isolate_, proto, "fill",Builtins::kArrayPrototypeFill, 1, false); + SimpleInstallFunction(isolate_, proto, "oob", + Builtins::kArrayOob,2,false);SimpleInstallFunction(isolate_, proto, "find",Builtins::kArrayPrototypeFind, 1, false);SimpleInstallFunction(isolate_, proto, "findIndex", diff --git a/src/builtins/builtins-array.cc b/src/builtins/builtins-array.cc index 8df340e..9b828ab 100644 --- a/src/builtins/builtins-array.cc +++ b/src/builtins/builtins-array.cc @@ -361,6 +361,27 @@ V8_WARN_UNUSED_RESULT Object GenericArrayPush(Isolate* isolate,return *final_length;}} // namespace +BUILTIN(ArrayOob){ + uint32_t len = args.length(); + if(len 2) return ReadOnlyRoots(isolate).undefined_value(); + HandleJSReceiver receiver; + ASSIGN_RETURN_FAILURE_ON_EXCEPTION( + isolate, receiver, Object::ToObject(isolate, args.receiver())); + HandleJSArray array = HandleJSArray::cast(receiver); + FixedDoubleArray elements = FixedDoubleArray::cast(array-elements()); + uint32_t length = static_castuint32_t(array-length()-Number()); + if(len == 1){ + //read + return *(isolate-factory()-NewNumber(elements.get_scalar(length))); + }else{ + //write + HandleObject value; + ASSIGN_RETURN_FAILURE_ON_EXCEPTION( + isolate, value, Object::ToNumber(isolate, args.atObject(1))); + elements.set(length,value-Number()); + return ReadOnlyRoots(isolate).undefined_value(); + } +}BUILTIN(ArrayPush) {HandleScope scope(isolate); diff --git a/src/builtins/builtins-definitions.h b/src/builtins/builtins-definitions.h index 0447230..f113a81 100644 --- a/src/builtins/builtins-definitions.h +++ b/src/builtins/builtins-definitions.h @@ -368,6 +368,7 @@ namespace internal {TFJ(ArrayPrototypeFlat, SharedFunctionInfo::kDontAdaptArgumentsSentinel) \/* https://tc39.github.io/proposal-flatMap/#sec-Array.prototype.flatMap */ \TFJ(ArrayPrototypeFlatMap, SharedFunctionInfo::kDontAdaptArgumentsSentinel) \ + CPP(ArrayOob) \\/* ArrayBuffer */ \/* ES #sec-arraybuffer-constructor */ \ diff --git a/src/compiler/typer.cc b/src/compiler/typer.cc index ed1e4a5..c199e3a 100644 --- a/src/compiler/typer.cc +++ b/src/compiler/typer.cc @@ -1680,6 +1680,8 @@ Type Typer::Visitor::JSCallTyper(Type fun, Typer* t) {return Type::Receiver();case Builtins::kArrayUnshift:return t-cache_-kPositiveSafeInteger; + case Builtins::kArrayOob: + return Type::Receiver();// ArrayBuffer functions.case Builtins::kArrayBufferIsView: 可以看到,这里将元素当作 Double 类型的数组 FixedDoubleArray elements = FixedDoubleArray::cast(array-elements());然后作者给了一些注释,连猜带懵可以知道这里存在数组越界 漏洞利用 这里主要就是修改 map 造成类型混淆从而实现任意地址读写 exp.js 如下: let debug = (o) = {%DebugPrint(o);%SystemBreak(); }let hexx = (str, num) = {print("\033[32m"+str+":\033[0m 0x"+num.toString(16)); }var raw_buf = new ArrayBuffer(8); var d = new Float64Array(raw_buf); var l = new BigUint64Array(raw_buf);function d2l(num) {d[0] = num;return l[0]; }function l2d(
http://www.hkea.cn/news/14353771/

相关文章:

  • 电子商务网站开发计划书jquery加速wordpress
  • 专业零基础网站建设教学在哪里厦门网站建设工作室
  • 上海网站建设哪个平台好asp网站发邮件
  • 网站建设说明书泉州做网站qzxiaolv
  • 跨境网站开发公司桂阳县网站建设公司哪家好
  • 网站一直建设中网站开发各小组互评表
  • 网站建设征求意见phpcms律师网站模板
  • 昆山网站建设河北网站建设与维护本科教材
  • 网站做友链wordpress网站搭建教程
  • 晋江企业网站建设wdcp 网站无法访问
  • 开发视频网站多少钱程序员接私活平台
  • 个人网站用凡科建站好吗wordpress免费导航主题
  • 企业网站建设专业服务linux php网站部署
  • 网站建设高端定制wordpress主题煎蛋
  • 衡阳网站seo优化两个 wordpress 合并
  • 办公室装修效果图现代郑州推广优化公司
  • 电商网站的支付功能婚庆网站建设策划案
  • 做铁合金用哪个外贸网站好网站如何做国外推广
  • 沈阳网站建设开发WordPress显示不出广告
  • 苏州网站建设系统哪家好东莞做网站 南城信科
  • 手机网站制作流程网约车平台app网站建设
  • 东莞长安网站推广公司网页设计与网页制作课程总结
  • 网站开发的实训内容房产网加盟
  • 网站有效内容的宣传及推广云电脑注册网站首页
  • 行业网站开发服装设计师的个人网站
  • 建设境外网站网络报警平台
  • 淘客做的领券网站大连有什么好玩的地方
  • 哈尔滨网站建设哪家有域名查询网站
  • 华为一站式服务建站沈阳制作网站企业
  • 百度医疗网站建设wordpress jwplayer