zoukankan      html  css  js  c++  java
  • Upfile的几种常见姿势

    记录一下文件上传的常见姿势,更全面的可以做upload-labs。

    实验环境:win2003 phpstudy

    实验平台:upfile

    一、准备上传的一句话木马

    eval函数将接受的字符串当做代码执行

    二、实验步骤

    2.1 无防护上传

    可以直接上传一句话木马文件

    可以看到已经成功上传,并返回了相关信息。

    可以使用菜刀连接

    实际上权限已经有很多,但是也可以用一句话木马上传大马进行其他操作。

     

    2.2 前台脚本检测扩展名

    这里增加在前端增加了限制,如果直接上传php文件会被拒绝

    可以先把文件改成允许上传的格式,比如jpg格式,

    然后进行抓包,通过前端的检测之后再进行改包:

    这样上传成功了,再通过工具连接:

    2.3 服务器验证Content-type检测文件类型

    这样直接上传也是不能通过的:

    因为检测的地方是Content-type,所以抓包替换成可以上传的type就可以了:

    可以看到,文件本身没有变化,但是最后也成功上传了。

     

    2.4 服务器端验证文件扩展名

    这样后端进行验证,利用办法是修改文件上传的扩展名,结合解析漏洞利用。

    首先对上传的php文件进行抓包:

    最后修改不再黑名单内的扩展名。成功上传,但是要配合阿帕奇的解析漏洞(2.0-2.2版本),否则不能执行成php文件

     

    也可以根据情况使用00截断(这里是举例记录):
    首先文件改名为1.phpp.jpg

    然后上传时候进行抓包:

    把phpp的第二个p的16进制改成00,这样p就变成了空格

    这样上传成功后变成了1.php空.jpg

    这样就能执行php文件,但是这样上传的时候如果后端用函数也检测到时php文件,那么也上传不成功,所以根据情况利用。

     

    2.5 服务端验证图片文件头

    这种防护方式会对文件内容进行检测:

    如果只是修改文件的扩展名,也是不能绕过检测,所以这时候利用的方式就是用真的图片加上一句话木马构造成图片马上传(可以直接txt格式打开图片或者利用命令行),然后再根据场景把图片还原成php文件进行执行。

  • 相关阅读:
    牛客练习赛51 D题
    Educational Codeforces Round 72 (Rated for Div. 2) C题
    Codeforces Round #583 (Div. 1 + Div. 2, based on Olympiad of Metropolises) C题
    Codeforces Round #583 (Div. 1 + Div. 2, based on Olympiad of Metropolises) A题
    Codeforces Round #583 (Div. 1 + Div. 2, based on Olympiad of Metropolises) A题
    Educational Codeforces Round 72 (Rated for Div. 2) B题
    Educational Codeforces Round 72 (Rated for Div. 2) A题
    《DSP using MATLAB》Problem 7.2
    《DSP using MATLAB》Problem 7.1
    《DSP using MATLAB》Problem 6.24
  • 原文地址:https://www.cnblogs.com/hzk001/p/12884418.html
Copyright © 2011-2022 走看看