大前提
不渗透
已备案且内容合法的站点!
不渗透企事业单位站点!
不渗透政府站点!
前言
这个站是寒假的时候从哪个二次元群看见的,当时站点内容是ghs的来着,访问者还能自己传图啥的,当时因为比较忙,没注意到。
过了大概半星期想起来有这么个站,翻了半天聊天记录才找到这个站(群太多了
)
然后就随手试了一下,发现获取评论的api能注sql,然后看评论数据的时候发现表情是html存储的,于是搞出来个xss。
加过疑似站长的QQ,没反应,留了个xss提醒网站不安全,似乎也没太重视(也可能重视了但是技术有限
)。
现在大概过了半个月了,抽空补写逛站的过程吧(对比刚开始的时候,站长确实有加固过的痕迹了)。
过程
打开站点,发现和刚开始的时候有区别了,换成https协议了。
虽然
https确实比http安全,但是这个安全是对用户而言啊,对你网站本身的安全性并没啥帮助。
然后js屏蔽了F12,这个也是刚开始没有的东西。
脚本小子可能确实会在这里被拦住,但实际上也没啥用。
拦F12的话,我在你js加载之前按F12不就行了,也就是新标签页的时候。

大概找到了这个些个xhr数据。

先看第一个,/apiss/setu?currentPage={1}&types={0},果然是之前那个ghs的站没错了,神tmsetu。

试了一下可以注入。

拉文章评论的这个,articleId也可以注。

这里可以看见返回的内容有html<img>被浏览器解析了,所以推出是有xss的。
另一个文章api,还是可以注。

最后一个去水印的api似乎有ssrf,但是报错了。


试了一下去访问我服务器上的靶站,但是靶站没打出日志,所以可能不是先访问后解析的脚本,而是直接分析url拿参数去构造无水印视频地址。
这里记录一下,站点路径是C:\Users\Administrator\Desktop\wxofficailAccpint,web程序是Node.js+express.js 4.17.1,服务器系统是Windows,然后似乎还有Nginx作为反向代理。
大概手测就这么多,因为感觉没必要测了,完全没有针对sql的防护,直接上sqlmap可能更方便吧。

而且还有dba权限。--is-dba

但是新版本没有读写文件的权限,比较难受。-sql-shell
show variables like '%secure%';
SELECT @@secure_file_priv;

于是想着用慢日志进行写shell,但是nodejs的shell写不来,告辞。
然后/static的目录穿越漏洞CVE-2017-14849也没成功,大概是用的高版本,已经修复了。
结语
由于技术比较菜,没能成功渗透进服务器,最多就拿sqlmap拉个整个数据库下来而已,对于这种小站没啥实质性影响。(毕竟没啥重要数据)
建议
- 使用SQL预编译功能。
- 表情包实现方式重构,摒弃
html存储。 - 减少不必要的数据返回。
- 不要相信
用户传递的参数,如IP归属地。(低风险的数据伪造) debug模式(报错功能)随用随关,管理员离线时依旧开启报错是憨批行为。
……





Comments NOTHING