1、偶然间发现一个菠菜站点,遂测试一番,思路如下:既然是菠菜站,肯定会让用户注册,否则怎么收钱了?注册这种和用户强交互的页面,可能存在的漏洞如下:
- sql注入:用户输入的账号信息,如果不经过滤直接用来写入或查询数据库,肯定存在sql注入
- xss:在输入框输入的个人信息,大概率会被展示在用户的页面;同时管理员肯定有权限在后台查看用户的个人信息,这里可能会有存储型xss;就算是反射型或DOM型xss,由于这类站点有客服,可以想办法诱骗客户点击链接,达到偷cookie或其他目的;
- 平行越权:用户登陆时、登陆后查看某些页面,此时抓包,如果有类似id字段,通过更改id号可能能看到其他用户、甚至管理员的信息
- CSRF:修改账号信息,比如密码;或则修改邮箱,再通过邮箱修改密码;
- 支付漏洞:抓包改参数,造成0元支付
2、顺着这个思路,不管三七二之一,先上工具试试注册页面,结果如下:发现2个高危的xss;
(1)先看第二个:把提示的参数换成检测工具的payload后,页面如下:自己的payload居然被完整的在页面展示,没有任何过滤,高兴死我了;
由于payload本身就在JS内部,所以刚开始并未构造script标签,而是直接用类似 '19736%0a',}%0aalert(666);%0a' 这种payload,目的是让alert(666)直接暴露在后台原有的script标签里,但反复尝试了好多个都不行,只能调整思路,重新构造script标签,这次成功,如下;说明这个xss没误报;
另一个是cookie里面的,把sessionid改了,也能直接出现在页面的html源码;和上面第一个类似,都可以构造script执行自己的js代码;不过由于不知道后台源码,不能确定这里是否是存储型xss,也不能通过构造url诱骗别人点击,我个人觉得意义不大,这里不再验证;
由于目前还无法登陆后台,其他xss是否是存储型还不确定,现阶段暂不继续验证其他xss漏洞;
(2)登陆界面抓包,用户名和密码居然明文传输,WTF.......
放过后,又抓到新包,放入repeater尝试:里面有个字段captcha是验证码,删掉后服务器任然会执行,并且不会提示验证码错误,而是用户名或密码错误,省了不少事;先用正确的账号测试,发现返回的status是Y,一切正常;
然后开始用 单引号、双引号、括号、') or 1=1 -- qwe 等各种sql注入的payload尝试,返回都如下:
右边那一串native编码解码后为: “请输入4-15个字元, 仅可输入英文字母以及数字的组合”; 看来是有意做了过滤,只能输入字母和数字,并且不能输入任何特殊符号,这里大概率不存在sql注入;(有些站点前端页面也有说说明,并且实在后台服务器端检验,不是再前端用js检验,想用burp抓包后改字段也不行)
(3)平行/垂直越权:有些站点登陆后,cookie里面会带上各种id,比如uid=123、groupid=456、telno=135000387465等等,很容易看出字段的含义,并且更改数值后看到其他用户甚至管理员的数据;但这里的cookie都是各种session,剩下各种数字的字段无法看出啥含义,用burp尝试不同的数值都返回status:N,这条路也走不通;
(4)0元支付:在支付界面抓包,把request包的内容解码,发现里面又sign字段,会对其他字段做校验,改金额的话需要逆向校验算法,再重新计算sign值,这里暂时放弃;PS:这里终于暴露了user_id;
3、通过xray扫描,发现一个resin-viewfile漏洞。
根据扫描提示,改file=xxxx的内容,果然能查到部分文件,比如下面的配置文件;
这个漏洞类似SSRF,可以遍历内网文件;遂在github找漏洞利用的工具,同时用burp跑字典挨个穷举目录和文件,但只发现了如下文件,都是常规的文件和路径,没找到预期的各种配置(比如账号)文件;
想遍历C盘,貌似有防护;
这个漏洞暂时放弃;
4、截至目前,已发现能利用的只有XSS,而且还是反射型的,只能先找个xss平台生成一个偷cookie的script标签,嵌入到有xss漏洞的url,然后找到客服MM,诱骗其点击;结果客服MM不但没上当,还发我新链接,让我重新试试新的站点,WTF.........
好吧,重试就重试,于是继续搞新站点;用账号登陆新站点后,主要找和用户有交互的页面(这里涉及大量传参,可以改动的空间很大,出现漏洞的几率比静态网页大很多);花了大量时间,查看了无数链接后,貌似出现了转机,如下:
这里返回了一个json串,里面有账号名、电话、昵称、权限等各种敏感数据,url里面还有client关键词,难道这是查看用户信息的接口?马上用burp抓包,更改url中纯数字的参数(纯数字意味着索引,而且容易穷举),果然不出所料,炸出部分注册用户的信息:
5、另外,通过xray还发现了CORS漏洞(数以CSRF的一种),也要想办法诱骗客户、管理员或平台其他的用户点击,这里暂时不深入;
这个菠菜站点总结:1、用户在form的输入做了严格限制,sql注入和xss都屏蔽 2、resin漏洞不痛不痒,拿不到敏感数据 3、支付:有sign字段校验,需要先破解校验算法 4、最终有个页面传参未做校验,通过更改数字类参数的值爆破出了部分用户信息; 5、可能是因为业务原因,前端页面暂时没有找到任何上传文件的地方,目前还找不到上传小马的方法;
参考:1、 https://blkstone.github.io/2017/10/30/resin-attack-vectors/ 针对Resin服务的攻击向量整理