查看: 123642|回复: 444

逆向路由器固件之SQL注入(Part3)

[复制链接]
  • TA的每日心情

    2024-4-10 00:14
  • 签到天数: 913 天

    [LV.10]以坛为家III

    发表于 2015-9-2 17:37:42 | 显示全部楼层 |阅读模式
    另寻他径

    在前面的内容中,我们使用TEW-654TR路由器的tftp服务实现了获取目标的管理权限。但是要是tftp没有开放到外网怎么办?另寻他径:在这一篇中会我们来分析一个web应用上的漏洞。

    初步分析

    使用代理软件抓登录时候的数据包,可以看到发送的http请求如上图所示。数据发送给了my_cgi.cgi这个脚本。我们分析一下这个文件看看。

    ➜  rootfs gitmaster) ✗ find . -name my_cgi.cgi
    ./usr/bin/my_cgi.cgi
    ➜  rootfs gitmaster) ✗ file ./usr/bin/my_cgi.cgi
    ./usr/bin/my_cgi.cgi: ELF 32-bit LSB executable, MIPS, MIPS-II version 1 (SYSV), dynamically linked (uses shared libs), stripped
    通过抓包知道用户在登录页面输入的两个参数分别是’user_name’和’user_pwd’,那么我们在CGI脚本中搜索这两个字符串看看。

    有几行字符串看起来是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函数。

    假设&猜想

    用户提交的用户名和密码大概是传递给sprintf函数生成SQL语句。存储在sql变量中,最后进入exec_sql函数。看起来这个过程没有对数据进行转义。除非数据在进入do_login函数之前或者在exec_sql中有做转义,不然很可能存在SQL注入的漏洞。如果我们的假设是正确的,数据没有经过处理进入了SQL语句中,那么我们可以使用最传统的万能密码来绕过登录验证:

    ' or '1'='1
    最后执行的sql就会变成

    select level from user where user_name='admin' and user_pwd='' or '1'='1'
    这样查询语句就会返回成功的结果。

    验证猜想

    我们实验一下:

    果然跟我们预期的一样。这里需要注意的是能够以管理员身份登陆是需要一定运气的。我们构造的SQL语句where条件是or 1=1所以会返回所有的数据。恰好管理员的记录是第一条所以以管理员的身份登陆了。如果第一条是一个普通用户的数据,那么就会以普通用户的身份登陆了。为了确保一定以管理员身份登陆,可以构造如下语句:

    ' or level = (select level from user order by level desc limit 1)/*
    上面这个语句可以确保最后查询出来的数据室level最高的用户的数据。

    这次我们终于看到了逆向分析的冰山一角。下
    回复

    使用道具 举报

    该用户从未签到

    发表于 2015-9-2 21:31:11 | 显示全部楼层
    支持中国红客联盟(ihonker.org)
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2015-10-24 10:52
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    发表于 2015-9-2 23:42:33 | 显示全部楼层
    学习学习技术,加油!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2015-9-3 16:59:07 | 显示全部楼层
    感谢楼主的分享~
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2019-4-14 17:44
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2015-9-3 20:31:02 | 显示全部楼层
    还是不错的哦,顶了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2015-9-4 06:46:02 | 显示全部楼层
    支持中国红客联盟(ihonker.org)
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2015-9-4 08:25:15 | 显示全部楼层
    学习学习技术,加油!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2015-9-5 01:04:03 | 显示全部楼层
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2015-9-5 11:14:13 | 显示全部楼层
    学习学习技术,加油!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2015-9-5 12:29:12 | 显示全部楼层
    感谢楼主的分享~
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    指导单位

    江苏省公安厅

    江苏省通信管理局

    浙江省台州刑侦支队

    DEFCON GROUP 86025

    旗下站点

    邮箱系统

    应急响应中心

    红盟安全

    联系我们

    官方QQ群:112851260

    官方邮箱:security#ihonker.org(#改成@)

    官方核心成员

    Archiver|手机版|小黑屋| ( 苏ICP备2021031567号 )

    GMT+8, 2024-5-5 10:01 , Processed in 0.050212 second(s), 12 queries , Gzip On, MemCache On.

    Powered by ihonker.com

    Copyright © 2015-现在.

  • 返回顶部