work on ctf download

This commit is contained in:
David Westgate 2024-05-14 12:52:18 -07:00
parent 6966d33826
commit da6217324a

View File

@ -6,11 +6,12 @@ from langchain_core.prompts import PromptTemplate
from langchain_core.output_parsers import StrOutputParser from langchain_core.output_parsers import StrOutputParser
from langchain_community.document_loaders import AsyncHtmlLoader from langchain_community.document_loaders import AsyncHtmlLoader
from dotenv import load_dotenv from dotenv import load_dotenv
import requests
from validators import url from validators import url
from time import time from time import time
""" """
Comments, TODO This application attempts to automatically solve CTF levels for CS492/CS592 Malware Reverse Engineering.
""" """
load_dotenv() load_dotenv()
promt = "You are a malware reverse engineer" promt = "You are a malware reverse engineer"
@ -22,19 +23,47 @@ def get_rag_chain():
| StrOutputParser() | StrOutputParser()
) )
session = requests.Session()
llm = ChatOpenAI(model_name="gpt-4-turbo", temperature=0) llm = ChatOpenAI(model_name="gpt-4-turbo", temperature=0)
url = "https://cs492.oregonctf.org/"
def start_session():
payload = {
'username': 'demo0',
'passwd': 'malware'
}
headers = {
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
'Content-Type': 'application/x-www-form-urlencoded'
}
session.post(url, data=payload, headers=headers)
def download(setname):
payload = {
'setname': setname,
}
headers = {
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
'Content-Type': 'application/x-www-form-urlencoded'
}
p = session.post(url+'/download', data=payload, headers=headers)
print(p.headers.get('Content-Type'))
zip = p.raw
print(zip)
print(
"Welcome to HW4"
)
while True: while True:
try: try:
start_session()
print(session.cookies)
download('Ch01-08')
line: str = input("llm>> ") line: str = input("llm>> ")
if line: if line:
start_time = time() start_time = time()
result: str = get_rag_chain.invoke(line) result: str = get_rag_chain.invoke(line)
end_time = time() end_time = time()
elapsed_time = round(end_time - start_time, 2) elapsed_time = round(end_time - start_time, 2)