Plit00's Story

DEFCON CTF Qualifier 2018 - Easy Pisy 본문

Security/CTF

DEFCON CTF Qualifier 2018 - Easy Pisy

plit00 2018. 5. 14. 20:36

 

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
Comments