• CTFHUB-技能树-Web-文件上传


    无验证

    直接写一个一句话木马,上传,然后连接getshell

     

    前端验证&&MIME绕过

    将一句话木马文件后缀改为允许类型,如jpg等,然后bp拦截数据包,然后改后缀为php,然后放包,最后连接√√√

    文件头检查(/欺骗)

    依然是先把shell文件后缀改为允许的,然后拦截数据包,改文件头,以及文件后缀,然后连接getshell

    也可以上传一个图片马,制作方法:copy 1.jpg/b+1.php/a 2.jpg

    00截断

    把文件后缀改为.php%00.jpg,上传,同理0x00,/00等截断应该也可以,但是这题好像不行

    原理:从后往前判断文件类型,从前往后解析文件,%00相当于截断,也就是不解析%00.jpg了,所以会将文件以php形式执行

    双写后缀

    上传1.php,内容同上,bp截取数据包,修改后缀,也就是双写,双写的原理就是因为会对后缀php进行字符替换,但是只有一次,所以双写之后即使被替换了后缀仍然是php

    .htaccess文件

    先讲一下这个.htaccess文件究竟是何方神圣,百度一下

     对于解题有什么用呢???

    ①它可以用来留后门和绕过黑名单,比如写一个.htaccess文件

    内容:AddType application/x-httpd-php .png

    解释:将png文件解析为php文件  ###以此类推

    ②执行我想让服务器执行的文件,比如写一个.htaccess文件

    内容:

    <FilesMatch "1">

    SetHandler application/x-httpd-php

    </FilesMatch>

    解释:以php文件方式执行文件名包含1的文件

    参考https://www.cnblogs.com/hmbb/p/9689436.html

    利用:

    将一句话文件后缀改为允许类型,用上面任一方法写一个.htaccess文件,上传之后上传一句话文件,连接getshell

    这里就不贴图了,应该是没什么问题的,后面会再介绍一个.user.ini文件,功能强大!!!

    最后!!!总结

    文件上传类题目正常的基本思路就是想办法上传shell,然后连接查看flag,这里再记一个NP操作,就是不需要菜刀/蚁剑/冰蝎连接的(仅适合部分题目),直接在页面上回显,如下

    创建一个无后缀的文件,内容如下

    <?php 
    #passthru("ls /var/www/html/(flag的大概路径)"); //第一次只写这一行,用来找flag文件在哪里
    passthru("cat /flag路径");//第二次是找到了flag文件之后,直接读取内容
    ?>

    参考自https://blog.csdn.net/weixin_42742658/article/details/106132770

  • 相关阅读:
    使用go-fuse开发一个fuse 文件系统
    awesome-fuse-fs
    jdk 容器运行环境指定时区
    几个不错的golang工具包
    golang 一些不错的log 包
    mysql_fdw 集成go-mysql-server 开发的mysql server
    一些不错的golang web 框架
    golang gomail+fasttemplate+mailhog 发送邮件
    golang go-simple-mail+fasttemplate+mailhog 发送邮件
    实现一个简单的golang db driver
  • 原文地址:https://www.cnblogs.com/Web-Fresher/p/13663815.html
Copyright © 2020-2023  润新知