Gh Actions - Context Script Injections

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

Osnovne informacije

Imajte na umu da postoje određeni github konteksti čije vrednosti kontroliše korisnik koji kreira PR. Ako github akcija koristi te podatke da izvrši bilo šta, to može dovesti do izvršavanja proizvoljnog koda. Ovi konteksti obično završavaju sa body, default_branch, email, head_ref, label, message, name, page_name,ref i title. Na primer (lista iz ovog članka):

  • github.event.comment.body

  • github.event.issue.body

  • github.event.issue.title

  • github.head_ref

  • github.pull_request.*

  • github.*.*.authors.name

  • github.*.*.authors.email

Imajte na umu da postoje manje očigledni izvori potencijalno nepouzdanog unosa, kao što su nazivi grana i email adrese, koje mogu biti prilično fleksibilne u pogledu dozvoljenog sadržaja. Na primer, zzz";echo${IFS}"hello";# bio bi validan naziv grane i mogao bi biti mogući vektor napada na ciljni repozitorijum.

Primer napada ubacivanjem skripti

Napad ubacivanjem skripti može se desiti direktno unutar inline skripte workflow-a. U sledećem primeru, akcija koristi izraz za testiranje ispravnosti naslova pull request-a, ali takođe dodaje rizik od ubacivanja skripti:

- name: Check PR title
run: |
title="${{ github.event.pull_request.title }}"
if [[ $title =~ ^octocat ]]; then
echo "PR title starts with 'octocat'"
exit 0
else
echo "PR title did not start with 'octocat'"
exit 1
fi

Pre nego što se izvrši shell skripta, izrazi unutar ${{ }} se procenjuju a zatim zamenjuju rezultujućim vrednostima, što može učiniti da bude ranjiv na ubacivanje shell komandi.

Da bi ubacio komande u ovaj workflow, napadač može napraviti pull request sa naslovom a"; ls $GITHUB_WORKSPACE"

U ovom primeru, karakter " se koristi da prekine izjavu title="${{ github.event.pull_request.title }}", omogućavajući izvršavanje ls komande na runner-u.

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini da podržite HackTricks:

Last updated