• Via浏览器插件小漏洞以及利用

    缘起

    Via浏览器大概是我最喜欢的浏览器,也一直是我一直用着,用了几年的一个浏览器。曾经也用过夸克等等号称轻量的浏览器,功能是不错,然而简约的外表背后谁知道还留了一(几)道。

    至于Via小脚本一直很有特色,到2019年5月份才动手打算自己写一点什么。但是开发过程中发现任何站点是可以直接安装插件,这个过程不需要用户参与太多,仅仅提示安装上了。插件js可以在任何页面执行,这造成了一些安全隐患。比如表单咱可以做点手脚,劫持登录信息,装js矿机,或者上个beef之类的。

    可以说这个文章没有什么溢出,没有什么二进制,没有怎么逆向,全程简单web,没有解密,只能水坑,没有什么价值。写着玩玩。

    过程

    首先,分析了一下官方安装插件的站点页面,没什么东西,审查元素,安装按下后执行operate()函数,还有一些一眼就能看出是base64的东西,核心部分也就一个JS,关键的js。

    格式化后如下:

    至于base64可以不看了。捋了一下:

    大概就是把一个插件json字符串base64一下,丢给window.via.addon(),检查状态,就这样。至于json,主要是code,是已经base64的js,还有url,指定了工作的域名,* Bedeutet alles。

    咱们来照猫画虎,按瓢画葫芦

    写一个html,里面就运行一js:(也是点开看完整)

    直接复制过来,base64代码

    如图,直接访问地址就装上了,顺道还已经执行了。

    这里还有一个beef:

    解决方案

    我能想的到的,大概就是给插件加开关。默认禁用,除非用户手动打开。不知道实现是否困难?

  • xiunoBBS出现 Server Response Empty! 错误捉虫记

    很有没有写文章了。感觉也没啥好写的。博客偶尔出故障上来看看折腾下,故障拖久了bai度居然还把我删了。 最近在布置论坛的问题。在服务器上布置的很好,一点问题都没有。xiuno4就跑起来了。 但是这几天我想在自己的Manjaro上(打肿脸充Arch(其实这是祸根))部署xiunobbs,在设置数据库时却遇到了Server Response Empty! 诶这就很讨厌……但是貌似不止我一个人这么倒霉,去搜了一下。别人建议换服务商,,诶大兄弟我自己开发环境您要我换电脑?好吧,开始干活。 等不及的,请直接去最后看解决方案。

    正文开始

    机器也没有xdebug。手动进去,进install/index.php打断点。发现 install_sql_file() 这里断了。跟进去,这个函数是拆分install.sql导入数据库建立表结构的。

    手打断点。

    到了这句。

    很明显,只有db_exec返回bool(false)才会触发。于是我试了一下子,诶?返回的int(0)然而不能触发。折腾了半天,突然想起这是一个循环。

    跟进db_exec函数,看看它怎么写的:

    哦?继续打断点,当即对$n进行输出。

    最后一个……我,看见你了。鬼头鬼脑的东西。

    这里的false触发了message函数,然而message函数在参数为-1情况下会exit。然而并没有$errno, $errstr。所以返回empty。

    这很可能是出错但是没有返回任何错误信息!!

    带着返回值和$sql一起输出看看,,很容易就发现了这句:

    这里反回错误。明显,建立表bbs_forum失败了。赶快去mysql看看。

    果然这样!没有bbs_forum!!

    于是拖进mysql执行试试。

    ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘rank tinyint(3) unsigned NOT NULL default ‘0’,

    threads mediumint(8) unsigned N’ at line 5

    发现错误。rank关键字污染。

    原因找到了:

    因为我用的Arch,Arch特性是软件都是最新版本。结果我安装的就是:

    Server version: 8.0.12 MySQL Community Server (GPL)

    这个版本和前面的版本有很多变化。

    估计是rank成了关键字

    那么解决方法也简单,用区别就行,把rank改成rank.

    所以解决方案:

    进install/install.sql,修改bbs_forum表结构如下:

    其实就是rank加了两个点…

     

  • IOauthdog

    大约的算是完成了并且丢在github上了

    发下链接https://github.com/littlerest/ioauthdog

    说明是readme.php