当前位置:首页 > 网络黑客 > 正文内容

服务端模板注入:现代WEB长途代码履行

访客4年前 (2021-04-15)网络黑客608

0x01 开发Exploit
许多的模板引擎都会企图约束模板程序履行恣意代码才能,来防止应用层逻辑对表达式引擎的进犯。还有一些模板引擎则测验经过沙盒等手法来安全处理不可信的用户输入。在这些办法之下,开发一个模板后门变得十分有挑战性。
FreeMarker
FreeMarke是最盛行的Java模板之一,也是最频频的交给用户操作的模板。FreeMarker官网解说了答应“用户供给”模板的危险性:

对应翻译:
22.能够答应用户上传模板文件吗,这对安全性有影响吗? 一般来说,你不应该答应用户做这样的操作,除非是管理员或许可信用户。考虑到模板便是和*.java文件相似的源代码文件。假如你仍然想要答应用户上传模板文件,这里是你应该考虑的东西:http://freemarker.org/docs/app_faq.html#faq_template_uploading_security
在一些相似DoS这种低危险安全问题之后,咱们能够看到下面这个:

对应翻译:
内置的new操作符 (Configuration.setNewBuiltinClassResolver,Environment.setNewBuiltinClassResolver):在模板文件中像这样运用”com.example.SomeClass”?new(),这个对FTL库来说很重要,可是在正常的模板文件中时不需求运用。FreeMarker中包括一个TemplateModel接口,这个接口能够用于结构恣意java目标,new操作符能够实例化TemplateModel的完结类。有一些危险的TemplateModel完结类有或许会在classpath中。 就算一个类没有完结TemplateModel接口,这个类里边的静态代码块也会被履行。为了防止这种状况呈现,你能够运用TemplateClassResolver类来限制对类的拜访,像下面这样:TemplateClassResolver.ALLOWS_NOTHING_RESOLVER
这条正告略显奥秘,可是它让咱们想到经过内置的new操作符来完结exp也许是能够的。让咱们看一下关于new操作符的文档:

对应翻译:
这个内置的操作符需求引起安全重视,由于模板的编写人能够经过它来结构恣意java目标然后运用这些结构处理的java目标,只需他们完结了TemplateModel接口。而且模板编写者还能够触发类中静态代码块中的代码,即便这个类没有完结TemplateModel接口。假如你答应不是很信赖的用户上传模板,你应该看一下下面这个主题。http://freemarker.org/docs/ref_builtins_expert.html#ref_builtin_new
TemplateModel的完结类中存在对咱们有用的类吗?让咱们来看一下这个接口的JavaDoc:

一个类的姓名呈现了:Execute。
检查这个类的概况能够发现它能够做咱们想要做的事:接纳输入而且履行

运用它十分简略:
 
${ ex("id") }
uid=119(tomcat7) gid=127(tomcat7) groups=127(tomcat7)
这个payload在后面将会十分有用。
弥补:
经过对TemplateModel的其他完结类进行研究,发现ObjectConstructor类相同很有用,从姓名上就能够看出来,这个类是用来结构其他类的目标的,看一下代码就能够理解怎么运用了:

经过代码能够看到供给类称号和结构函数的参数,就能够使用ObjectConstructor类结构咱们想要的类,有了这个咱们就能够履行恣意java代码了,下面给出两个实例,一个是履行指令,另一个是文件读取。
指令履行:
 
       
   
   
       
   
    ${line}
    ${"
"}
文件读取:
 
       
   
   
       
   
    ${line?html}
    ${"
"}
Velocity
Velocity是另一个盛行的Java模板结构,十分难exploit。没有“安全注意事项”页面来指出存在危险的函数和内部变量。下面这张截图显现的是用Burp暴力破解变量名,左边是payload右边是服务器的返回值。

变量class看起来有用,由于它返回了一个Object类的Class目标。经过Google找到了这个链接https://velocity.apache.org/tools/releases/2.0/summary.html:

能够看到一个办法和一个特点:

[1] [2] [3]  黑客接单网

扫描二维码推送至手机访问。

版权声明:本文由黑客接单发布,如需转载请注明出处。

本文链接:https://therlest.com/106665.html

分享给朋友:

“服务端模板注入:现代WEB长途代码履行” 的相关文章

华流年京东618怎么个便宜法

京东618年中大促作为京东活动力度最大的一个购物节,自然是受到很多人关注的,有些小伙伴一早就想好要在京东618上面买什么东西了,还有些小伙伴连今年京东618怎么个便宜法都不知道,下面就由百思特小编来给大家说说吧! 2020京东618便宜多少...

淘宝什么时候发货(淘宝一般都是什么时候发货)

随着12月的到来,“双12推广”也如约而至。作为2020年电商最后一次推广,三天爆发也需要提前布局。 1双十二赛马规则 过去双十一促销,很多商家说没有达到预期,甚至很多免费流量也没有改变。问题的关键其实在于赛马规则。大推广前会有额外的赛马规则分配免费流量。想要在推广期获得更确定性的流量,必须了解...

【干货知识】高級不断渗透第八季-demo就是远程控制

本季度是《高級不断渗透-第七季demo的发展》的持续。 点一下文尾左下角“阅读”可阅读文章第七季文章正文。 在第一季有关后门中,文章内容提及再次编译程序notepad ,来引入有目标源代码后门结构。 在第六季有关后门中,文章内容假定不在获知notepad 的源代码,来引入无目标源代码沟...

我老公老是让他家的亲戚来我家,我该怎么办?请各位帮我想想办法,我

我老公老是让他家的亲戚来我家,我该怎么办?请各位帮我想想办法,我 请各位帮我想想办法,开网店怎么找女装货源唔爱神起助您成就财富人生,想做微商?想开实体店?想开淘宝店?什么才是你创业的最重要步骤?货源!想在微商卖童装母婴用品纸尿裤女装,开童装女装店铺,你去哪里找最好的货源?如何找童装女装一手货源呢?...

为什么反复烧开的水会有毒?

为什么反复烧开的水会有毒? 千滚水就是在炉上沸腾了一夜或很长时间的水,还有电热水器中反复煮沸的水。这种水因煮过久,水中不挥发性物质,如钙、镁等重金属成分和亚硝酸盐因浓缩后含量很高。久饮这种水,会干扰人的胃肠功能,出现暂时腹泻、腹胀;有毒的亚硝酸盐还会造成机体缺氧,严重者会昏迷惊厥,甚至死亡。 蒸...

怎样辨别有农药残留的蔬菜?

怎样辨别有农药残留的蔬菜? 一、不吃形状、颜色异常的蔬菜: 形状:颜色正常的蔬菜,一般是常规栽培,是未用激素等化学品处理的,可以放心地食用。 “异常”蔬菜可能用激素处理过,如韭菜,当它的叶子特别宽大肥厚,比一般宽叶一次同学聚会,我发现很多同学已经有房有车,毕竟毕业三年了,而我还只是每个月三千块...

评论列表

可难春慵
2年前 (2022-07-05)

emarker.org/docs/ref_builtins_expert.html#ref_builtin_newTemplateModel的完结类中存在对咱们有用的类吗?让咱们来看一下这个接口的JavaDoc:一个类的姓名呈现了:Execute。检查这个类的概况能够发

怎忘奚落
2年前 (2022-07-04)

上传模板文件,这里是你应该考虑的东西:http://freemarker.org/docs/app_faq.html#faq_template_uploading_security在一些相似DoS这种低危险安全问题之后,咱们能够看到下面这个:对应翻译:内置的new操作符 (Configurati

掩吻榆西
2年前 (2022-07-04)

仍然想要答应用户上传模板文件,这里是你应该考虑的东西:http://freemarker.org/docs/app_faq.html#faq_template_uploading_security在一些相似DoS这种低危险安全问题之后,咱们能够看到下面这个:对应翻译:内置的new操作符

弦久南简
2年前 (2022-07-04)

exp也许是能够的。让咱们看一下关于new操作符的文档:对应翻译:这个内置的操作符需求引起安全重视,由于模板的编写人能够经过它来结构恣意java目标然后运用这些结构处理的java目标,只需他们完结了TemplateModel接口。而且模板编写者还能够

礼忱橘欢
2年前 (2022-07-04)

/docs/app_faq.html#faq_template_uploading_security在一些相似DoS这种低危险安全问题之后,咱们能够看到下面这个:对应翻

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。