xina1i

Results 82 issues of xina1i

Crash: ``` ➜ tests git:(master) ✗ gdb pdf2jp2 pwndbg: loaded 170 commands. Type pwndbg [filter] for a list. pwndbg: created $rebase, $ida gdb functions (can be used with print/break) Reading...

做甲方安全才意识到巡风做的确实很好,在使用过程中发现巡风资产探测周期时间粒度太大,扫描的时间只精确到小时,上网搜了一下关于即时扫描的的问题提,也看到了[issues](https://github.com/ysrc/xunfeng/issues/75)和其中的延伸回答,感觉那样还是太麻烦了,原本想自己添加一个即时扫描的功能,看了巡风实现资产探测周期的源码,发现有更加简单的方法,只要将扫描的时间粒度由小时降低到分钟,这个问题也就基本解决了(虽然还不是即时执行扫描,但是一两分钟的时间可以接受),具体的代码很简单,贴一下吧 ``` ... now_day = now_time.tm_mday now_minute = now_time.tm_min now_date = str(now_time.tm_year) + str(now_time.tm_mon) + str(now_day) cy_day, ac_hour_minute = CONFIG_INI['Cycle'].split('|') ac_hour, ac_minute = ac_hour_minute.split(':') log.write('info', None, 0, u'扫描规则: ' +...

[TWO BIRDS WITH ONE STONE: AN INTRODUCTION TO V8 AND JIT EXPLOITATION](https://www.zerodayinitiative.com/blog/2021/12/6/two-birds-with-one-stone-an-introduction-to-v8-and-jit-exploitation) ## 优化与反优化 https://infosecwriteups.com/zero-day-vulnerability-chromium-v8-js-engine-issue-1303458-use-after-free-in-x64-instruction-e874419436a6 https://doar-e.github.io/blog/2020/11/17/modern-attacks-on-the-chrome-browser-optimizations-and-deoptimizations/

订阅了`chromium-dev groups`频道,有时会看到比较有意思的话题,或者自己认识比较少的内容,就收集一下 ## 1. How to find out when an IO thread is created in the Browser Process [原文](https://groups.google.com/a/chromium.org/g/chromium-dev/c/-LVS6ghmC0M/m/KncfyBvXBAAJ) 说的是如何在`Browser`进程里定位到`IO`线程是何时创建的 解决办法,在`BrowserThreadImpl::BrowserThreadImpl`设下断点 ``` chrome.dll!content::BrowserThreadImpl::BrowserThreadImpl(content::BrowserThread::ID identifier, scoped_refptr task_runner) Line 104 C++ chrome.dll!content::BrowserProcessIOThread::RegisterAsBrowserThread()...

Chromium

# chromium issues 主要记录我阅读或者复现过的一些浏览器漏洞,如果复现复杂会单独开文章,个人对这方面积累有限,难免会存在错误,欢迎批评指正。 阅读这些漏洞不一定是为了深挖什么,然后挖掘相关的漏洞,更多的是为了自己通过对以前漏洞熟悉,然后去了解浏览器的各方面知识,浏览器涉及的内容,实在太多了,直接入手会让人很迷茫,了解漏洞,然后去了解修复的原理,该部分的一些设计模式,代码编写习惯等等。 > 其中很多术语,感觉中文翻译后可能会存在歧义,我一般会使用原始英文术语 ## 1174551 [issue1174551](https://bugs.chromium.org/p/chromium/issues/detail?id=1174551) 这个漏洞是直接`fuzz`出来的,`poc`没有权限拿到,所以直接来看修复代码,修复的[review 2653810](https://chromium-review.googlesource.com/c/v8/v8/+/2653810) 看修复代码前,首先需要理解`javascript`两个概念,`ArrayBuffers`和`SharedArrayBuffers`,我在后面提供了一个相关知识链接,可以通过阅读它来做简要的了解。 > 主线程和`web workers`属于不同的线程,对于`javascript`来说,不同的线程不会共享内存 简单点说,`ArrayBuffers`就是`javascript`提供的一个能够存储原始数据的对象,对于存储的数据,它没有作任何的标识,就是单纯的二进制数据,如果需要类型化,可能需要`typed arrays`。`ArrayBuffers`不支持线程间共享,如果想实现线程共享,比如主线程和`web workers`线程想同时访问它,只能通过`postMessage进`行`transferring memory`,但是有个缺点就是`transfer`之后,原始线程不能再访问该数据,已经被`detached`,可以参见`mdn Transferable objects` > Transferrable objects* are commonly used to share...

# 浏览器漏洞及相关知识阅读 > 最近更新: 2022/06/29 记录一些在做浏览器漏洞修复过程中,阅读过的关于浏览器漏洞和相关基础知识,因为浏览器涉及到的东西特别多,内容不固定,不定期更新 - [浏览器漏洞及相关知识阅读](#浏览器漏洞及相关知识阅读) - [mojo](#mojo) - [blink](#blink) - [web workers](#web-workers) - [webaudio](#webaudio) - [内存管理](#内存管理) - [浏览器测试](#浏览器测试) - [基础库](#基础库) ## mojo ## blink ### web workers...

Chromium

# opessl fuzzing测试学习 `openssl`是一个非常重要的库,并且开源,针对其的`fuzzing`测试也比较多,是一个非常好的学习`fuzzing`的途径 ## 漏洞列表 下面列出搜集的使用`fuzzing`方式测出的`openssl`漏洞,之后对每个漏洞做专门分析 | CVE | 说明 | | :-----------: | :----------------------------------------------------------: | | | | | CVE-2014-0160 | [openssl HeartBleed (CVE-2014-0160)](https://en.wikipedia.org/wiki/Heartbleed) | | CVE-2015-1788 |...

fuzzing

# chromium测试 > 最近更新: 2022/06/16 感觉已经好久没有写相关的技术文章了,主要是因为做后端开发,实在是太忙了,我又对那玩意不太感兴趣,很多东西本来想写的,有时候开个头,写着写着就放弃了,最近刚转浏览器内核开发相关工作,老大分配的第一个任务就是把`chromium`的相关测试跑起来,所以大概花了一周多,大概熟悉了浏览器测试相关部分的内容,可能不太准确,毕竟刚刚开始接触,目前接触的内容,感觉东西可以写的有很多,后期随着内容深入不断更新:) 在经过了解`chromium`相关测试内容后,我个人感觉可以把测试简单分为两大类 1. 单元测试 包含了浏览器测试(`browser_tests`),模糊测试(`fuzzer`)等 2. 性能测试 主要测试浏览器的一些性能,由谷歌开发的测试框架`catapult`负责,它里面包含了很多的内容 ## 环境准备 基础环境 ``` ubuntu 18.04 LTS 64 windows 10 ``` `chromium`相关环境 > 目前chromium的源码,文件比较多,最好挂比较稳定的梯子,一次不行的话,多次尝试吧 1. 安装`depot_tools` ```...

Chromium

1. 查看某个文件对应的开发人员情况 -> [git blame from chromium groups](https://groups.google.com/a/chromium.org/g/chromium-dev/c/yvCzMHqDtgA/m/qxnS0UlwBQAJ?utm_medium=email&utm_source=footer)

浏览器

在遇到大量crash结果时,分析crash结果,归类crash结果,有时会耗费大量的时间,对于我来说,每天上班前,运行一下该脚本,有新类型的crash就分析一下,提交report,节省了我大量的精力和时间 ```python3 #encoding:utf-8 # ==================================================== # python: 3.5+ # 处理fuzz crash脚本 # 执行: python3 handle-crash.py -h 查看帮助选项 # example: # python3.exe handle-crash.py -f D:\FuzzProgram.exe --post_fix dwrite -i D:\fuzz_output # version:...