htARTE (HackTricks AWS Red Team Expert)를 통해 AWS 해킹을 처음부터 전문가까지 배워보세요!
HackTricks를 지원하는 다른 방법:
- 회사를 HackTricks에서 광고하거나 HackTricks를 PDF로 다운로드하려면 SUBSCRIPTION PLANS를 확인하세요!
- 공식 PEASS & HackTricks 스웨그를 얻으세요.
- The PEASS Family를 발견하세요. 독점적인 NFTs 컬렉션입니다.
- 💬 Discord 그룹 또는 텔레그램 그룹에 참여하거나 Twitter 🐦 @hacktricks_live를 팔로우하세요.
- Hacking 트릭을 공유하려면 PR을 HackTricks와 HackTricks Cloud github 저장소에 제출하세요.
PR을 생성하는 사용자가 제어하는 특정 github 컨텍스트가 있음을 유의하세요. 만약 github action이 해당 데이터를 실행하는 데 사용한다면, 임의의 코드 실행으로 이어질 수 있습니다. 이러한 컨텍스트는 일반적으로 body
, default_branch
, email
, head_ref
, label
, message
, name
, page_name
, ref
, title
로 끝납니다. 예를 들면 (이 글에서 가져온 목록):
- github.event.comment.body
- github.event.issue.body
- github.event.issue.title
- github.head_ref
- github.pull_request.*
- github.*.*.authors.name
- github.*.*.authors.email
브랜치 이름과 이메일 주소와 같은 덜 명확한 소스도 있으며, 허용되는 내용에 대해 유연할 수 있습니다. 예를 들어, zzz";echo${IFS}"hello";#
는 유효한 브랜치 이름이며 대상 저장소에 대한 가능한 공격 벡터가 될 수 있습니다.
스크립트 삽입 공격은 워크플로우의 인라인 스크립트 내에서 직접 발생할 수 있습니다. 다음 예에서는 액션이 풀 리퀘스트 제목의 유효성을 테스트하기 위해 표현식을 사용하지만 스크립트 삽입의 위험도를 추가합니다:
- 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
쉘 스크립트가 실행되기 전에 ${{ }}
내부의 표현식이 평가되고 결과 값으로 대체되므로, 이는 쉘 명령어 인젝션에 취약할 수 있습니다.
공격자는 이 워크플로에 명령어를 인젝션하기 위해 제목이 a"; ls $GITHUB_WORKSPACE"
인 풀 리퀘스트를 생성할 수 있습니다.
이 예시에서는 "
문자가 title=
"${{ github.event.pull_request.title }}"
문을 중단시키고, ls
명령어가 실행되도록 합니다.
htARTE (HackTricks AWS Red Team Expert)를 통해 AWS 해킹을 처음부터 전문가까지 배워보세요!
HackTricks를 지원하는 다른 방법:
- 회사를 HackTricks에서 광고하거나 HackTricks를 PDF로 다운로드하려면 SUBSCRIPTION PLANS를 확인하세요!
- 공식 PEASS & HackTricks 상품을 구매하세요.
- The PEASS Family를 탐색하여 독점적인 NFTs 컬렉션을 확인하세요.
- 💬 Discord 그룹 또는 텔레그램 그룹에 참여하거나 Twitter 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks와 HackTricks Cloud github 저장소에 PR을 제출하여 여러분의 해킹 기법을 공유하세요.