HeadlinesBriefing favicon HeadlinesBriefing.com

SourceHut XSS in Build-Logs

Hacker News •
×

Willkommen zu meinem ersten Write-up über eine Schwachstelle mit großer Wirkung! Ich mag gute Geschichten, also lassen Sie mich zuerst etwas Hintergrund beschreiben. Ich hatte kürzlich eine 'großartige' Idee, eine sr.ht-Instanz einzurichten, die Leute dafür bezahlt, ihre Projekte zu hosten. Der erste Schritt war, eine minimale Teilmenge der sr.ht-Repos zu klonen und mit dem Hacken zu beginnen.

Source Hut ist in mehrere Mikrodienste strukturiert, die wichtigsten sind meta.sr.ht und git.sr.ht oder hub.sr.ht. Und natürlich builds.sr.ht, das CI. Ich versuchte, den Seitenquellcode des Build-Logs anzusehen, weil es immer dorthin scrollte, wo ich nicht wollte, was mich ein wenig ärgerte. Da fand ich das: /* ... */ .ansi38-150150150 { color: #969696; } /* ... */ Ich beschloss, genauer zu untersuchen, wie es gemacht wird, und es vielleicht zu beheben.

Ich sah mir die Logik an, die ANSI-Escape-Codes in HTML umwandelt, und reichte ein Issue dazu ein. Zu diesem Zeitpunkt gab es seit über einem Jahr keine Aktivität im Repo. Dies führte schnell zur Einreichung eines PR, der genau dieses Problem behebt. Angesichts meines Capture-The-Flag-Hintergrunds begann ich, ansi2html etwas genauer zu untersuchen, auf der Suche nach weiteren Fehlern. Da der Code noch nicht gut strukturiert ist, konnte ich nach dem Lesen dieses großartigen XSS-Spickzettels eine bösartige Eingabezeichenfolge erstellen.

Ersteres ist eine Erklärung wert. Keine Ahnung warum, aber wie Sie überprüfen können, wird es in denselben DOM-Baum geparst wie: <a href="https://exa...