逆向路由器固件之SQL输入 web应用上的漏洞
发布时间:2022-05-13 09:52:17 所属栏目:安全 来源:互联网
导读:在前面的内容中,我们使用TEW-654TR路由器的tftp服务实现了获取目标的管理权限。但是要是tftp没有开放到外网怎么办?另寻他径:在这一篇中会我们来分析一个web应用上的漏洞。 有几行字符串看起来是SQL查询的语句,尤其是: 复制 select level from user where
在前面的内容中,我们使用TEW-654TR路由器的tftp服务实现了获取目标的管理权限。但是要是tftp没有开放到外网怎么办?另寻他径:在这一篇中会我们来分析一个web应用上的漏洞。 有几行字符串看起来是SQL查询的语句,尤其是: 复制 select level from user where user_name='%s' and user_pwd='%s' 看起来应该是根据用户名和密码去数据库查询,看密码是否正确。上一篇文章的分析我们可以知道,这个路由器是使用SQLite做数据库存储密码的。 使用IDA载入my_cgi.cgi。查询”select level from user where user_name“字符串,可以定位到do_login函数。 逆向路由器固件之SQL注入:web应用上的漏洞 假设&猜想 用户提交的用户名和密码大概是传递给sprintf函数生成SQL语句。存储在sql变量中,***进入exec_sql函数。看起来这个过程没有对数据进行转义。除非数据在进入do_login函数之前或者在exec_sql中有做转义,不然很可能存在SQL注入的漏洞。如果我们的假设是正确的,数据没有经过处理进入了SQL语句中,那么我们可以使用最传统的***密码来绕过登录验证: 复制 ' or '1'='1 1. ***执行的sql就会变成 复制 select level from user where user_name='admin' and user_pwd='' or '1'='1' 1. 这样查询语句就会返回成功的结果。 果然跟我们预期的一样。这里需要注意的是能够以管理员身份登陆是需要一定运气的。我们构造的SQL语句where条件是or 1=1所以会返回所有的数据。 (编辑:应用网_丽江站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |