TCExam <=11.2.011 Multiple Cross-Site Scripting Vulnerabilities
Vendor: Tecnik.com s.r.l.
Product web page: http://www.tcexam.org
Affected version: 11.2.009, 11.2.010 and 11.2.011
Summary: TCExam is a FLOSS system for electronic exams (also know as
CBA - Computer-Based Assessment, CBT - Computer-Based Testing or e-exam)
that enables educators and trainers to author, schedule, deliver, and
report on quizzes, tests and exams.
Desc: TCExam suffers from multiple pre and post auth XSS vulnerabilities
when parsing user input to multiple parameters via GET and POST method in
multiple scripts. Attackers can exploit these weaknesses to execute arbitrary
HTML and script code in a user's browser session.
Tested on: Microsoft Windows XP Professional SP3 (EN)
Apache 2.2.14 (Win32)
PHP 5.3.1
MySQL 5.1.41
Vulnerability discovered by Gjoko 'LiquidWorm' Krstic
liquidworm gmail com
Zero Science Lab
High five to Dr. Nicola Asuni!
Vendor status:
[09.07.2011] Vulnerability discovered.
[10.07.2011] Initial contact with the vendor.
[11.07.2011] Vendor responds asking more details.
[11.07.2011] Sent details to vendor.
[12.07.2011] Vendor confirms the issues.
[12.07.2011] Working with the vendor.
[13.07.2011] Vendor releases version 11.2.012 to address these issues.
[13.07.2011] Coordinated public security advisory released.
Advisory ID: ZSL-2011-5025
Advisory URL: http://www.zeroscience.mk/en/vulnerabilities/ZSL-2011-5025.php
Vendor Patch: http://sourceforge.net/projects/tcexam/files/tcexam_11_2_012.zip
Vendor Changelog: http://sourceforge.net/projects/tcexam/files/CHANGELOG.TXT
09.07.2011
--
********** Cross-Site Scripting Reflected (script name / parameter(s) / http method) **********
1. /admin/code/tce_colorpicker.php (frm, fld, tag) - GET
2. /admin/code/tce_edit_backup.php (backup_file) - POST
3. /admin/code/tce_edit_group.php (group_name, group_id) - POST
4. /admin/code/tce_edit_module.php (module_id, module_user_id) - POST
5. /admin/code/tce_edit_rating.php (test_id) - POST
6. /admin/code/tce_edit_subject.php (subject_module_id, subject_id) - POST
7. /admin/code/tce_edit_test.php (test_id) - POST
8. /admin/code/tce_filemanager.php (file) - POST
9. /admin/code/tce_select_mediafile.php (frm, fld, file) - GET, GET, POST
10. /admin/code/tce_select_users.php (new_group_id) - POST
11. /admin/code/tce_show_all_questions.php (subject_module_id) - POST
12. /admin/code/tce_show_result_user.php (test_id) - POST
13. /public/code/tce_user_change_email.php (xl_user_email) - POST
14. /public/code/tce_user_change_password.php (xl_newpassword) - POST
15. /public/code/tce_user_registration.php (xl_user_email, xl_newpassword, xl_user_birthdate) - POST
********** Cross-Site Scripting URI Based (script name) **********
1. /admin/code/index.php
2. /admin/code/tce_csv_users.php
3. /admin/code/tce_edit_answer.php
4. /admin/code/tce_edit_backup.php
5. /admin/code/tce_edit_group.php
6. /admin/code/tce_edit_module.php
7. /admin/code/tce_edit_question.php
8. /admin/code/tce_edit_rating.php
9. /admin/code/tce_edit_subject.php
10. /admin/code/tce_edit_test.php
11. /admin/code/tce_edit_user.php
12. /admin/code/tce_filemanager.php
13. /admin/code/tce_import_omr_answers.php
14. /admin/code/tce_import_xml_questions.php
15. /admin/code/tce_import_xml_users.php
16. /admin/code/tce_menu_modules.php
17. /admin/code/tce_menu_tests.php
18. /admin/code/tce_menu_users.php
19. /admin/code/tce_page_info.php
20. /admin/code/tce_select_mediafile.php
21. /admin/code/tce_select_users.php
22. /admin/code/tce_show_all_questions.php
23. /admin/code/tce_show_allresults_users.php
24. /admin/code/tce_show_online_users.php
25. /admin/code/tce_show_result_allusers.php
26. /admin/code/tce_show_result_questions.php
27. /admin/code/tce_show_result_user.php
28. /admin/code/tce_xml_users.php
29. /public/code/index.php
30. /public/code/tce_page_user.php
31. /public/code/tce_user_change_email.php
32. /public/code/tce_user_change_password.php
33. /public/code/tce_user_registration.php
********** Cross-Site Scripting in path (script name) **********
1. /admin/code
2. /public/code
-------------------------------------------------
XSS: GET http://localhost/tcexam/admin/code/{script}.php?{parameter}={value}">
XSS: POST http://localhost/tcexam/admin/code/{script}.php HTTP/1.0
- {parameter}={value}&{parameter}={value}
XSS URI: GET http://localhost/tcexam/admin/code/index.php?zsl=>">
XSS Path: GET http://localhost/tcexam/admin/code/?=>"'>