首页 > 其他分享 >学习笔记-.net安全

学习笔记-.net安全

时间:2022-11-07 10:59:25浏览次数:80  
标签:string extension -. 笔记 Current ToString net aspx HttpContext

0x00 简介

本章内容:

1.xss

2.csrf

3.文件上传

0x01 XSS

在asp.net中我们插入XSS代码经常会遇到一个错误A potentially dangerous Request.Form

这是因为在aspx文件头一般会定义一句<%@ Page validateRequest="true" %> ,当然也可以在web.config中定义,值得注意的是validateRequest的值默认为true ,所以通常情况下asp.net基本上是不存在XSS的,除非程序员把他的值改变,如同这套源码的web.config

<pages validateRequest="false" controlRenderingCompatibilityVersion="3.5" enableEventValidation="false">
    <controls>
    <add tagPrefix="pg" namespace="SiteUtils" assembly="DNHelper" />
    <add tagPrefix="pop" namespace="EeekSoft.Web" assembly="EeekSoft.Web.PopupWin" />
    <add tagPrefix="dnc" namespace="Dotnetcms.Controls" assembly="DNHelper" />
    <add tagPrefix="DayPilot" namespace="DayPilot.Web.Ui" assembly="DotnetControl" />
    </controls>
</pages>

简单的分析

CK_New.aspx

$.post("ajax/Out_Store_Handler.aspx" 确认提交,通过ajax传送到Out_Store_Handler.aspx

Out_Store_Handler.aspx

整个过程是把传入过来的数据进行替换、插入数据库并没有经行任何过滤。

来到输入页面Purchase_AuditingList.aspx

从上往下看 查询->输出也没有过滤,所以造成了XSS

0x01 CSRF

点击add_Click获取表单值后直接,传入UsersHelper.AddUser 函数最后由UsersHelper.AddUser函数插入数据库,整个过程没有验证CSRF。

0x02 文件上传

这套程序是最新版本所以任意文件不存在,只做粗略分析

_uploadpic.ashx

private void SaveFile()
{
    string text = "../uploads/" + DateTime.Now.ToString("yyyy-MM") + "/";
    string text2 = HttpContext.Current.Server.MapPath(text);
    if (!Directory.Exists(text2))
    {
        Directory.CreateDirectory(text2);
    }
    HttpFileCollection files = HttpContext.Current.Request.Files;
    string fileName = Path.GetFileName(files[0].FileName);
    string extension = Path.GetExtension(files[0].FileName);
    string text3 = Helper.ReadConfigValue(Helper.ReadConfigXml("~/app_data/allow_ext.xml"), "allow_ext").ToString().ToLower();
    if (text3.Contains(extension.ToLower()))
    {
        string str = Guid.NewGuid().ToString() + extension;
        string filename = text2 + str;
        files[0].SaveAs(filename);
        string s = string.Concat(new string[]
        {
            "{\"jsonrpc\" : \"2.0\", \"result\" :\"",
            HttpContext.Current.Server.HtmlEncode(fileName),
            "\", \"id\" : \"",
            HttpContext.Current.Server.HtmlEncode(text + str),
            "\"}"
        });
        HttpContext.Current.Response.Write(s);
    }
}

文件名由uploads + DateTime.Now.ToString("yyyy-MM") + Guid.NewGuid().ToString() + extension (../uploads/2019-10/30777b5a-bd82-48eb-9104-24afffd97243.png) 所以能控制的只有extension,他由Path.GetExtension 直接获取文件后缀,但是ReadConfigXml读取~/app_data/allow_ext.xml的文件做比较,比较典型的白名单所以这里不存在任意文件上传。

allow_ext.xml

<?xml version="1.0" standalone="yes"?>
<PItems>
  <PItem Name="allow_ext" Value=".rar.zip.jpg.png.gif.doc.docx.xls.xlsx.ppt.pptx.jpeg.pdf" />
</PItems>

0x03 文末

其他以后遇到慢慢补充

点击关注,共同学习!
安全狗的自我修养

github haidragon

https://github.com/haidragon

标签:string,extension,-.,笔记,Current,ToString,net,aspx,HttpContext
From: https://www.cnblogs.com/haidragon/p/16865209.html

相关文章

  • 学习笔记-.net安全越权
    0x00ASP.NET安全认证1.在web.config中有四种验证模式:方式描述windowIIS验证,在内联网环境中非常有用Passport微软集中式身份验证,一次登录便可访问所有成员......
  • AxureRP9的学习笔记之登录密码的可见隐藏切换
    2022年11月,我开始琢磨起了axure,安装了RP9之后便开始了我的原型设计学习。刚开始便从网页的登录界面开始学习吧。我从摹客的网页找到了一个关于电商的网页原型,链接:https://......
  • The rate shock 利率冲击 | 经济学人中英双语精读笔记
    译 /柳下婴(微信公众号:王不留)选自TE20221001,LeadersTherateshock利率冲击Marketsarereelingfromhigherrates.Theworldeconomyisnext股市已遭受加息的沉重打击,下......
  • networkQuality
    基本使用networkQuality 是一个命令行工具,需要使用「终端」App(或者你首选的其他终端模拟器)运行。方法是:首先,点按「程序坞」(Dock)中的「启动台」(LaunchPad)图标,在搜索栏中......
  • Ubuntu系统中CUDA套件nvvp启动后报错Unable to make protected void java.net.URLClas
    最近在看cuda方面的内容,需要对cuda代码做一些性能分析,于是需要使用nvvp,但是启动nvvp后报错:Causedby:java.lang.reflect.InaccessibleObjectException:Unabletomakepr......
  • ASP.NET Core教程-Configuration(配置)- Cache(缓存)
    更新记录转载请注明出处:2022年11月7日发布。2022年11月5日从笔记迁移到博客。缓存缓存的概念缓存(Caching)是系统优化中简单又有效的工具,投入小收效大。数据库中......
  • 基于 .NET 7 的 QUIC 实现 Echo 服务
    前言随着今年6月份的HTTP/3协议的正式发布,它背后的网络传输协议QUIC,凭借其高效的传输效率和多路并发的能力,也大概率会取代我们熟悉的使用了几十年的TCP,成为互联网的......
  • Java 日志框架学习笔记
    日志概念1.日志文件日志文件是用于记录系统操作事件的文件集合1.1调试日志1.2系统日志系统日志是记录系统中硬件、软件和系统问题的信息,同时还可以监视系统中发生......
  • 练习-笔记-jcmaxx33
    记录MATLAB数字信号处理练习笔记eg-1(2022-11-04)symsx;f=sin(x)/(x^2+4*x+3);y=diff(f,x,4)定义符号函数求指定阶导数 eg-2(2022-11-06)Fs=1000;%Sampling......
  • uniapp云数据库笔记
    1.使用客户端API直接操作数据库获取数据和对应的集合(表)//获取数据库constdb=uniCloud.database()//获取表constcollection=db.collection('contacts')调用......