- https://chromium.googlesource.com/chromium/src/+/refs/heads/main/docs/linux/build_instructions.md
- https://chromium.googlesource.com/chromium/src.git/+/67.0.3396.79/docs/building_old_revisions.md
Argumentos para compilar:
is_debug = false
is_component_build = false
symbol_level = 2
blink_symbol_level = 0
v8_enable_object_print = true
v8_enable_object_print = true sirve para poder tener info de debug con %DebugPrint sin tener que compilar la version de debug de chromium(que te rompe el exploit), las demas flags son las mismas que en el challenge.
No hace falta buildear todo chromium para hacer el exploit, se puede hacer usando d8. Para inspeccionar memoria durante la ejecución de un script se puede hacer: gdb --args ./d8 --allow-natives-syntax --shell script.js.
Importante: Para levantar la versión local de turbolizer el programa
pythontiene que apuntar a un Python 2.7. También se puede usuar la versión web: https://v8.github.io/tools/head/turbolizer/index.html
Para evitar buildear chromium, se puede usar directamente la verisón de chromium que viene en el challenge, la versión web de turbolizer y esta versión de d8 (la versión es la misma que la del challenge, y está compilada con los parametros que aparecen arriba).
- https://abiondo.me/2019/01/02/exploiting-math-expm1-v8/
- https://googleprojectzero.blogspot.com/2021/01/in-wild-series-chrome-infinity-bug.html
- https://faraz.faith/2019-12-13-starctf-oob-v8-indepth/
- https://sensepost.com/blog/2020/intro-to-chromes-v8-from-an-exploit-development-angle/
- https://gts3.org/2019/turbofan-BCE-exploit.html
- https://bugs.chromium.org/p/project-zero/issues/detail?id=1710