大前提
不渗透
已备案
且内容合法
的站点!
不渗透企事业单位
站点!
不渗透政府
站点!
前言
这个站是寒假的时候从哪个二次元群看见的,当时站点内容是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