일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- ATT&CK
- forensic
- 랜섬웨어
- filesystem
- 프론트엔드개발자
- PetitPotam
- Threat Intelligence
- exploit
- Index
- node.js
- error 583066
- elasticsearch
- Credential Access
- pwnable
- #C언어 #연산자
- 정보보안
- AD
- rce
- Mitre
- windows
- 가이드라인
- SQLMap
- 백엔드개발자
- elk stack
- 침해사고
- #whitespace #
- 시스템해킹
- software
- wargame
- sql인젝션
- Today
- Total
Plit00's Story
DEFCON CTF Qualifier 2018 - Easy Pisy 본문
Easy pisy의 문제유형은 Web , Cryto 이다.
문제를 풀기전에 Sign your payload 와 Execute your signed payload의 php 소스를 어떤원리로 동작하는지 이해가 필요했습니다.
--------------
처음 들어가면 samples.tgz 를 받게되는데
filename text
echo-ciao.pdf -> ECHO ls
echo-ciao.sign(pdf파일의 시그니처)
execute-ls.pdf -> EXECUTE ls
execute-ls.sign("")
로 확인할 수 있습니다.
Execute.php와 shellme.php 를 보게된다면
openssl_sign 과 openssl_verfiy에 대한 php docs를 확인할 수 있었고
동작과정에서 SHA-1 Signature Algorithm을 사용한다는것을 알게 되었다,
이과정에서 어떤것을 사용하여 파일을 올려야 할까 라는 생각으로 오랜시간을 보내게 되었지만
SHA1COLLIDER 을 사용해야한다는것을 알게되었다.
# SHA1 해쉬가 동일한 두 개의 PDF파일 생성
# PDF는 JPG로 렌더링되고 출력파일로 된다 페이지 크기와 페이지 수는 동일해야한다.
print”I can't recognize the command type. Go away.”
Sign your payload = execute your signed payload
=> 페이지 수 와 크기가 동일 해야함
> $ python3 desktop/collide.py execute-ls.pdf execute-catflag.pdf
> $ Python3 desktop/collide.py samples/echo-ciao.pdf samples/execute-ls.pef —progressive
Text: "EXECUTE cat flag"
About to execute: "cat flag"
Output: OOO{phP_4lw4y5_d3l1v3r5_3h7_b35T_fl4g5}
Flag : OOO{phP_4lw4y5_d3l1v3r5_3h7_b35T_fl4g5}
'Security > CTF ' 카테고리의 다른 글
[Plaid CTF] (0) | 2019.04.15 |
---|