小秦哥 发表于 2024-5-13 19:20:01

rce临时文件上传[RCE1]P8

rce临时文件上传P8

/+/i 匹配了我能想到的所有绕过方法,想到临时文件上传,是否可以执行/tmp/?????????这个文件呢
https://img2023.cnblogs.com/blog/2759911/202403/2759911-20240311201742347-910897581.png
/tmp/????????? 此文件是php的一个默认临时文件,文件名是随机的,如果php.ini没有设置upload_tmp_dir的时间,默认会读写体系的临时文件目录,(Windows 默以为 C:/windows/temp,Linux 为 /tmp)。
但是是当向服务器上恣意php文件以multipart/form-data方式提交请求上传数据时,才会产生临时文件,可以通过phpinfo.php的信息泄露获得临时文件的路径,便可以让我们构造payload。
https://img2023.cnblogs.com/blog/2759911/202403/2759911-20240311233910572-198266107.png
php post上传:创建临时文件>调用相关php脚本   >   在phpinfo中回显文件信息>   删除临时文件
在linux体系中./可运行可执行文件,在文件中执行一个运行shell脚本的表明器,表明器有很多,比方:
#!/bin/sh
#!/bin/bash
#!/usr/bin/perl
#!/usr/bin/tcl
#!/bin/sed -f
#!/usr/awk -f

./shell的时候相当于/bin/bash shell

还有很多有意思的用法
https://zhuanlan.zhihu.com/p/666028747临时文件内容:
#!/bin/sh

id执行临时文件命令
./tmp/?????????   构造payload>>./???/????????? >> ./???/????????[@-[]
由于/???/?????????无法精准匹配,但是这个临时文件的特点是大小写字母混合随机生成的,以是通过找到一个表示“大写字母”的glob通配符,来实现精准匹配。
glob的通配符我们常用的有(* ? ** []) 在中golb支持里面表示一个范围,可以使用ascii找到大写字母范围的一个字符,大写字母的范围位于"@"和[之间,而且不分字符前后顺序。
https://img2023.cnblogs.com/blog/2759911/202403/2759911-20240311235601367-794866116.png
构建数据包:
需要构造一个post上传文件的数据包,从网上随便找一段html的文件上传代码,然后抓包拦截,把目的ip修改一下就好了。
我这里代码是 multipart/form-data 的方式提交请求上传数据的,别的我没有试过不知道有没有题目,注意在multipart/form-data方式中,作为分割使用的boundary字符串比定义处前面多倆--
附上html代码:
<html>
        <head></head>
        <body>
                <form action="upload.php" method="post" enctype="multipart/form-data">
                           <label for="file">Filename:</label>
                           <input type="file" name="file" id="file" /><br />
                           <input type="submit" name="submit" value="Submit" />
                </form>
        </body>
</html>https://img2023.cnblogs.com/blog/2759911/202403/2759911-20240312000929753-212297347.png

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: rce临时文件上传[RCE1]P8