如果需要安全保护的应用程序逻辑由查询结果控制,攻击者就可以通过修改查询来更改应用程序的逻辑。举一个典型的例子,在后端数据存储区的用户表中查询与用户提供的证书匹配的记录。许多实施基于表单的登录功能的应用程序使用数据来储存用户证书,并执行简单的SQL查询来确认每次登录尝试。以下是一个典型的示例:
SELECT*FROM users WHERE username='marcus'and password='secret'
这个查询要求数据库检查用户表中每一行,提取出每条username列值为marcus、password列值为secret的记录。如果应用程序收到一名用户的资料,登录尝试将取得成功,应用程序将为该用户建立一个通过验证的会话。
无论访问操作是由普通用户还是应用程序管理员触发,应用程序访问数据存储区的过程都大致相同。
眉山网页设计Web应用程序对数据储存区都实施自主访问控制,构建查询基于用户的账户和类型来搜索、添加或修改数据储存区中的数据。
假如攻击者不知道管理员的用户名,该如何实施攻击呢?在打多数应用程序中,数据的第一个账户为管理用户,因为这个账户通常手工创建,然后再通过它生成其他应用程序账户。而且,如果查询返回几名用户的资料,许多应用程序只会处理第一名用户。因此,攻击者可利用这种行为,以数据库的第一个用户的身份登录:
OR 1=--
应用程序将执行以下查询:
SELECT * FROM users WHERE username='' OR 1--' AND password= 'foo'
因为其中使用了注释符号,上面的查询等同于:
SELECT * FROM users WHERE username='' OR 1=1
该查询将返回全部应用程序用户的资料。
网页名称:避开应用程序的自主访问控制
本文URL:https://www.cdcxhl.com/news/166779.html
成都网站建设公司_创新互联,为您提供网站收录、网站导航、品牌网站制作、网站设计公司、建站公司、网站策划
广告
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源:
创新互联