Gh Actions - Context Script Injections

Dowiedz się, jak hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

Podstawowe informacje

Zauważ, że istnieją pewne konteksty githuba, których wartości są kontrolowane przez użytkownika, tworzącego PR. Jeśli akcja githuba używa tych danych do wykonania czegokolwiek, może to prowadzić do wykonania dowolnego kodu. Te konteksty zazwyczaj kończą się na body, default_branch, email, head_ref, label, message, name, page_name,ref i title. Na przykład (lista z tego opisu):

  • github.event.comment.body

  • github.event.issue.body

  • github.event.issue.title

  • github.head_ref

  • github.pull_request.*

  • github.*.*.authors.name

  • github.*.*.authors.email

Zauważ, że istnieją mniej oczywiste źródła potencjalnie niezaufanego wejścia, takie jak nazwy gałęzi i adresy e-mail, które mogą być dość elastyczne pod względem dozwolonej zawartości. Na przykład, zzz";echo${IFS}"hello";# byłoby poprawną nazwą gałęzi i mogłoby stanowić potencjalny wektor ataku na docelowe repozytorium.

Przykład ataku wstrzykiwania skryptów

Atak wstrzykiwania skryptów może wystąpić bezpośrednio w skrypcie w linii workflow. W poniższym przykładzie akcja używa wyrażenia do sprawdzenia poprawności tytułu pull requestu, ale także naraża na ryzyko wstrzyknięcie skryptu:

- 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

Przed uruchomieniem skryptu powłoki, wyrażenia wewnątrz ${{ }}oceniane a następnie zastępowane wynikającymi wartościami, co może sprawić, że jest podatny na wstrzyknięcie poleceń powłoki.

Aby wstrzyknąć polecenia do tego workflow, atakujący mógłby utworzyć żądanie pull z tytułem a"; ls $GITHUB_WORKSPACE"

W tym przykładzie znak " jest używany do przerwania instrukcji title="${{ github.event.pull_request.title }}", co pozwala na wykonanie polecenia ls na runnerze.

Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

Last updated