티스토리 뷰

파이썬 pickle을 이용해 직렬화 취약점을 알아보자.

 

 

이 취약점은 __reduce__ 메소드를 이용한다.

__reduce__ 메소드는 객체를 unpickling할 때 객체를 재구성하는 tuple을 반환해 준다.

이 때 tuple은 함수를 반환할 수 있어 함수 실행이 가능하다.

unpickling 되는 객체에 우리가 접근하는 것이 가능하다면 RCE공격이 가능하다.

 

 

 

__reduce__메소드를 재정의해 os.system("id")를 실행하게 했다.

 

객체 vul()을 생성하고,

객체를 직렬화 하는 과정인 pickle.dumps에서 __reduce__ 메소드가 실행되고 

os.system("id")의 내용이 직렬화 된다.

이 후 역직렬화를 통해 제대로 내용을 볼 수 있다.

 

 

이렇게 출력이 된다.

 

밑에 에러는 dumps에 data가 아닌 객체를 넣어서 출력되는 에러인 것 같다.

 

'웹 해킹 > 취약점' 카테고리의 다른 글

SIP 취약점  (0) 2021.04.29
SSTI 취약점  (3) 2020.09.24
type juggling  (0) 2020.09.18
eval 함수  (0) 2020.09.15
php include, wrapper 취약점  (0) 2020.09.14
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
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 31
글 보관함