逆向路由器固件之SQL注入:web应用上的漏洞

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

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

[[147783]]

初步分析

逆向路由器固件之SQL注入:web应用上的漏洞

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

➜ rootfs git:(master) ✗ find . -name my_cgi.cgi
./usr/bin/my_cgi.cgi
➜ rootfs git:(master) ✗ 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注入: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

***执行的sql就会变成

select level from user where user_name='admin' and user_pwd='' or '1'='1'

这样查询语句就会返回成功的结果。

验证猜想

我们实验一下:

逆向路由器固件之SQL注入:web应用上的漏洞

 

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

' or level = (select level from user order by level desc limit 1)/*

上面这个语句可以确保***查询出来的数据室level***的用户的数据。

这次我们终于看到了逆向分析的冰山一角。下一篇将会讨论使用Qemu虚拟机运行路由器固件,动态调试相关的内容。

责任编辑:蓝雨泪 来源: FreeBuf
相关推荐

2013-01-21 15:18:33

路由器固件程序硬件升级

2009-12-02 12:13:54

路由器新版固件

2009-12-02 11:04:44

路由器新版固件

2015-03-04 11:06:13

2009-12-02 10:22:26

阿尔法路由器固件

2010-08-04 10:02:39

2010-08-13 09:53:21

2017-03-20 16:35:36

2013-05-09 09:38:44

2013-07-27 14:14:25

2009-12-14 09:49:30

路由器设置

2011-03-14 16:36:28

静态路由

2009-11-12 17:08:08

2015-06-15 14:47:43

2017-10-23 11:56:35

路由器升级更新

2024-09-04 14:11:12

2010-08-06 10:33:32

思科路由器限速

2011-04-01 13:01:57

路由表路由器

2009-11-12 10:53:41

路由器应用

2009-12-02 11:28:24

点赞
收藏

51CTO技术栈公众号