분류 전체보기
-
Script injection in GitHub ActionWeb 2024. 5. 25. 02:05
Automation을 위한 github의 CI/CD 서비스, Github Action에서 발생할 수 있는 취약점이다.많은 다른 injection 취약점들처럼 개발자가 의도한 타입(ex. string, number...)이 아니라 프로그래밍 언어로써 해석되게 하는 것이 목표다. name: Thank you for issuingon: issues: types: [opened, edited]jobs: comment: runs-on: ubuntu-latest steps: - uses: actions/github-script@v7 with: github-token: ${{ secrets.GITHUB_TOKEN }} script: | ..
-
AWS Certified Security - Specialty (SCS-C02) 취득 후기Web 2024. 5. 21. 19:07
공식 홈페이지의 overview를 통해서도 알 수 있지만 솔루션 운영, 보안 아키텍쳐 구축과 같은 분야에 적합한 내용을 다룬다. AWS Certified Cloud Practitioner를 취득하고 나서 받은 50% 할인 바우처를 사용해서 약 20만원에 응시할 수 있었다.(만약 Specialty 등급의 자격증을 취득할 예정이라면 AWS Certified Cloud Practitioner를 응시한 후에 지원하는 것을 추천함. AWS 자격증 취득 시 50% 할인 바우처를 주는데 난이도도 높지않고 결과적으로 50달러(치킨 3마리) 더 저렴하게 취득할 수 있음.) 여러 교육 플랫폼에서 자격증 취득과 관련된 강의를 판매하고 있었는데 추가로 결제하는 게 부담돼서 그냥 AWS Skill Builder에서 제공하는 무..
-
CCE 2023 Writeup (일반 부문)CTF 2023. 6. 11. 00:18
Babyweb (1)PHP의 include()에서 발생하는 path traversal과 nginx에서의 race condition을 이용해 flag를 얻을 수 있다. * https://medium.com/@emmapinheiro42/php-include-ignore-4a3ba81371af* https://bierbaumer.net/security/php-lfi-with-nginx-assistance/ #!/usr/bin/env python3import sys, threading, requests# exploit PHP local file inclusion (LFI) via nginx's client body buffering assistance# see https://bierbaumer.net/secu..
-
pwnable.kr - horcruxespwnable.kr 2023. 6. 7. 14:15
canary와 PIE가 미적용되어있다. hex-rays로 본 main함수의 모습이다. 순서대로 호출되는 함수들을 확인한다. 랜덤한 값을 a, b, c, d, e, f, g 에 넣은 후 모두 더한 값을 sum 변수에 저장하고 있다. 시스템 콜을 제한적으로 적용(ALLOW LIST)하고 있다. unintended solution을 방지하기 위한 코드로 보인다. sum 변수의 값과 v4의 값이 일치한 경우 flag를 출력한다. gets()에서 stack buffer overflow가 발생하고 있으며 canary, PIE가 미적용되어 있기 때문에 코드 내 임의의 영역으로 실행흐름을 변조할 수 있다. from pwn import * shell = ssh(user='horcruxes', host='pwnable.k..
-
pwnable.kr - unlinkpwnable.kr 2023. 6. 6. 16:49
#include #include #include typedef struct tagOBJ{ struct tagOBJ* fd; struct tagOBJ* bk; char buf[8]; }OBJ; void shell(){ system("/bin/sh"); } void unlink(OBJ* P){ OBJ* BK; OBJ* FD; BK=P->bk; FD=P->fd; FD->bk=BK; BK->fd=FD; } int main(int argc, char* argv[]){ malloc(1024); OBJ* A = (OBJ*)malloc(sizeof(OBJ)); OBJ* B = (OBJ*)malloc(sizeof(OBJ)); OBJ* C = (OBJ*)malloc(sizeof(OBJ)); // double linked ..
-
-
San Diego CTF 2023 - 'tROPic-thunder' Write UpCTF 2023. 5. 31. 17:54
checksec에서는 canary가 적용되어 있다고 나와있는데 실제로 main함수를 보면 canary를 검증하는 로직이 없다. 추가로 pie는 적용되어있지 않고 fgets()에서 stack buffer overflow가 발생하고 있다. 코드를 조금 더 살펴보면 바이너리가 정적 링크되어 있음을 알 수 있다. 여기에 system()과 같은 주요 함수들은 포함되어 있지 않다. 애초에 execve와 같은 system call들이 seccomp 필터링에 의해 DENY LIST로 등록되어 있다. 단, puts, fgets 등 파일 입출력에 필요한 함수들은 여전히 사용가능하고 Dockerfile을 통해 flag의 위치를 알려주기 때문에 flag를 읽는데는 문제가 없다. ROP로도 문제를 풀 수 있지만 SROP를 이용..