http://mdsec.net/employees/31/
http://mdsec.net/employees/49/
2.合取查询
这里我们以另一个类似的应用程序为例,同样,该应用程序允许用户按姓名在授权查看的地理区域内搜索雇员。
如果用户获得授权可以在伦敦进行搜索,并且它搜索姓名daf,则应用程序将执行以下查询:
这里,用户的输入被插入到合取查询中,该查询的第二部分仅通过匹配其中一个伦敦部门的数据项来执行所需的访问控制。
在这种情况下,根据后端LDAP服务的执行细节,攻击者可以成功实施两种类型的攻击。一些LDAP(包括OpenLDAP)允许批量使用多个搜索过滤器,并且选择性地应用这些过滤器。(换言之,应用程序将返回与任意过滤器匹配的目录项。)例如,攻击者可以提交以下输入:
如果将这个输入嵌入原始搜索过滤器中,将得到以下查询:
现在,这个查询中包含两个搜索过滤器,第一个过滤器包含一个通配符匹配条件。因此,应用程序将返回所有地区的所有雇员的资料,从而避开了应用程序的访问控制。