加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_丽江站长网 (http://www.0888zz.com/)- 科技、建站、数据工具、云上网络、机器学习!
当前位置: 首页 > 服务器 > 安全 > 正文

逆向路由器固件之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所以会返回所有的数据。 

(编辑:应用网_丽江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读