daemon-sec-lotl

DÆMONBins: GTFOBins × LOLBAS × WADComs × LOOBins in one filterable catalog
git clone https://git.daemon-sec.xyz/daemon-sec-lotl.git
Log | Files | Refs | Submodules | README | LICENSE

commit 6b61e24699ff260926575224bb1f9d676076ef0d
parent 7cb38e9ec3c394483a752985ad26912ab4956364
Author: DAEMON <zer0sec.xp@icloud.com>
Date:   Thu,  3 Sep 2026 06:53:41 +0100

fix: route home/source/tool links through url() (base-path slash on the four decks)

Diffstat:
Msrc/pages/[source]/[tool].astro | 5+++--
Msrc/pages/[source]/index.astro | 5+++--
Msrc/pages/index.astro | 8++++----
3 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/src/pages/[source]/[tool].astro b/src/pages/[source]/[tool].astro @@ -7,6 +7,7 @@ import { toolSlug, routeSourceOf } from '../../lib/techniques'; import type { Technique, Tool } from '../../lib/techniques'; import { SOURCE_ROUTE, SOURCE_META, PLATFORM_META, CAPABILITY_META } from '../../lib/taxonomy'; import { highlightCommand } from '../../lib/highlight'; +import { url } from '../../lib/url'; import '../../styles/catalog.css'; export async function getStaticPaths() { @@ -47,9 +48,9 @@ const upstream = tool.references?.find((r) => /gtfobins|lolbas|wadcoms/.test(r)) <div class="wrap tool" style="padding-top:1.5rem;" data-pagefind-body> <span class="sr-only" data-pagefind-meta={`source:${src.label}`}></span> <p class="tool__crumb"> - <a href={`${import.meta.env.BASE_URL}catalog`}>Catalog</a> + <a href={url('catalog')}>Catalog</a> <span aria-hidden="true">/</span> - <a href={`${import.meta.env.BASE_URL}${SOURCE_ROUTE[routeSourceOf(tool.id)]}`}>{src.label}</a> + <a href={url(SOURCE_ROUTE[routeSourceOf(tool.id)])}>{src.label}</a> </p> <SlantTitle eyebrow={`${src.tag} · ${tool.toolType || 'Tool'}`} title={tool.name} tone={src.accent}> diff --git a/src/pages/[source]/index.astro b/src/pages/[source]/index.astro @@ -6,6 +6,7 @@ import allTechniques from '../../data/techniques.json'; import { toolSlug, routeSourceOf } from '../../lib/techniques'; import type { Tool, Technique } from '../../lib/techniques'; import { SOURCE_ROUTE, SOURCE_META, SOURCES, PLATFORM_META } from '../../lib/taxonomy'; +import { url } from '../../lib/url'; import type { SourceId } from '../../lib/taxonomy'; export async function getStaticPaths() { @@ -37,7 +38,7 @@ const stats = [ <div class="wrap src" style="padding:2.5rem 0 4rem;"> <p class="src__lead"> - <a href={`${import.meta.env.BASE_URL}catalog`}>← Full catalog</a> + <a href={url('catalog')}>← Full catalog</a> <span aria-hidden="true"> · </span> <a href={src.homepage} target="_blank" rel="noopener">{src.homepage.replace(/^https?:\/\//, '')}</a> <span aria-hidden="true"> · </span> @@ -46,7 +47,7 @@ const stats = [ <div class="src__grid"> {tools.map((t) => ( - <a class="src__tool" href={`${import.meta.env.BASE_URL}${SOURCE_ROUTE[sourceId]}/${toolSlug(t.id)}`} style={`--acc: var(--${src.accent});`}> + <a class="src__tool" href={url(`${SOURCE_ROUTE[sourceId]}/${toolSlug(t.id)}`)} style={`--acc: var(--${src.accent});`}> <span class="src__tname">{t.name}</span> <span class="src__tmeta"> <span class="src__tcount">{t.count}</span> diff --git a/src/pages/index.astro b/src/pages/index.astro @@ -5,9 +5,9 @@ import Marquee from '../components/Marquee.astro'; import Callout from '../components/Callout.astro'; import facets from '../data/facets.json'; import { SOURCES, SOURCE_META, SOURCE_ROUTE } from '../lib/taxonomy'; +import { url } from '../lib/url'; const c = facets.counts; -const base = import.meta.env.BASE_URL; const marqueeTitles = [ { n: 'NIX', title: 'GTFOBins', accent: 'foam' }, @@ -48,7 +48,7 @@ const marqueeMeta = [ </SlantTitle> <div class="home-cta"> - <a class="home-cta__go" href={`${base}catalog`}>Open the catalog →</a> + <a class="home-cta__go" href={url('catalog')}>Open the catalog →</a> <span class="home-cta__hint">or press <kbd>/</kbd> to search</span> </div> </section> @@ -68,7 +68,7 @@ const marqueeMeta = [ {SOURCES.map((id, i) => { const s = SOURCE_META[id]; return ( - <a class="home-source" href={`${base}${SOURCE_ROUTE[id]}`} style={`--acc: var(--${s.accent});`}> + <a class="home-source" href={url(SOURCE_ROUTE[id])} style={`--acc: var(--${s.accent});`}> <div class="home-source__top"> <span class="home-source__tag">{String(i + 1).padStart(2, '0')} · {s.tag}</span> <span class="home-source__n">{c.bySource[id] ?? 0}</span> @@ -89,7 +89,7 @@ const marqueeMeta = [ MITRE ATT&CK. For authorized testing, CTFs, detection engineering and education only. Know your scope. </Callout> <p class="home-scope__cred"> - GTFOBins, LOLBAS and WADComs are each GPL-3.0; this merged work is GPL-3.0. See <a href={`${base}credits`}>credits &amp; licenses</a>. + GTFOBins, LOLBAS and WADComs are each GPL-3.0; this merged work is GPL-3.0. See <a href={url('credits')}>credits &amp; licenses</a>. </p> </section> </Base>