查看: 141954|回复: 444

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

[复制链接]
发表于 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)
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

使用道具 举报

发表于 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备2021026908号 )

GMT+8, 2025-3-10 10:31 , Processed in 0.021384 second(s), 9 queries , Gzip On, MemCache On.

Powered by ihonker.com

Copyright © 2015-现在.

  • 返回顶部