rce临时文件上传[RCE1]P8

打印 上一主题 下一主题

主题 863|帖子 863|积分 2589

rce临时文件上传[RCE1]P8

/[A-Za-z0-9!~^|&]+/i 匹配了我能想到的所有绕过方法,想到临时文件上传,是否可以执行/tmp/?????????这个文件呢

/tmp/????????? 此文件是php的一个默认临时文件,文件名是随机的,如果php.ini没有设置upload_tmp_dir的时间,默认会读写体系的临时文件目录,(Windows 默以为 C:/windows/temp,Linux 为 /tmp)。
但是是当向服务器上恣意php文件以multipart/form-data方式提交请求上传数据时,才会产生临时文件,可以通过phpinfo.php的信息泄露获得临时文件的路径,便可以让我们构造payload。

php post上传:创建临时文件  >  调用相关php脚本   >   在phpinfo中回显文件信息  >   删除临时文件
在linux体系中./可运行可执行文件,在文件中执行一个运行shell脚本的表明器,表明器有很多,比方:
  1. #!/bin/sh
  2. #!/bin/bash
  3. #!/usr/bin/perl
  4. #!/usr/bin/tcl
  5. #!/bin/sed -f
  6. #!/usr/awk -f
  7. ./shell的时候相当于/bin/bash shell
  8. 还有很多有意思的用法
  9. https://zhuanlan.zhihu.com/p/666028747
复制代码
临时文件内容:
  1. #!/bin/sh
  2. id
复制代码
执行临时文件命令
./tmp/?????????   构造payload  >>  ./???/????????? >> ./???/????????[@-[]
由于/???/?????????无法精准匹配,但是这个临时文件的特点是大小写字母混合随机生成的,以是通过找到一个表示“大写字母”的glob通配符,来实现精准匹配。
glob的通配符我们常用的有(* ? ** []) 在[1-9]中golb支持里面表示一个范围,可以使用ascii找到大写字母范围的一个字符,大写字母的范围位于"@"和[之间,而且不分字符前后顺序。

构建数据包:
需要构造一个post上传文件的数据包,从网上随便找一段html的文件上传代码,然后抓包拦截,把目的ip修改一下就好了。
我这里代码是 multipart/form-data 的方式提交请求上传数据的,别的我没有试过不知道有没有题目,注意在multipart/form-data方式中,作为分割使用的boundary字符串比定义处前面多倆--
附上html代码:
  1. <html>
  2.         <head></head>
  3.         <body>
  4.                 <form action="upload.php" method="post" enctype="multipart/form-data">
  5.                            <label for="file">Filename:</label>
  6.                            <input type="file" name="file" id="file" /><br />
  7.                            <input type="submit" name="submit" value="Submit" />
  8.                   </form>  
  9.         </body>
  10. </html>
复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

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

本版积分规则

小秦哥

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表