今年我12岁,我学习网络安全技术已经有半年了。
一切的起因,是爸爸跟我说起网络安全领域存在巨大的人才缺口。
他认为这是个很有前景的方向,于是给我报了玲珑安全的漏洞挖掘课程,还叮嘱我要跟着两位师傅好好学,说以后上初高中说不定自己就能赚点生活费了。
像往常一样,结束了在网球场的商务时光后,我回到家,径直走向了书房的电脑......
这段时间,我一直在测试一个事件组织应用程序。它主要供管理员组织活动并管理成员,在别人眼中,这或许只是一个普通的网站,但在我眼中,它却是一座矿山。为什么这么说?文章最后你就知道了。
我的目标很明确,就是要深入了解该应用程序如何处理请求的授权和认证。
进入www.example.com后,我创建了两个账户,我发现每个账户的用户ID都是随机的。
接下来,我尝试测试垂直越权,但在很多功能点都没发现漏洞。
我进入了“Customers”标签页,这里清晰地罗列着所有客户信息。我拦截了请求,原本的请求体是这样的:
{"eventID":23423423}
我将它修改为:
{"eventID": victimID}
但点击发送后,服务器返回了403 Unauthorized响应。
由于他们使用的是数字ID来访问数据,我使用了Burp Suite的Autorepeater插件,使每个包含我的eventID的请求都尽可能地匹配受害者的victimEventID。
我对所有功能进行了测试,但到目前为止仍然没有成功。
最终,我发现了一个电子邮件模板编辑功能,该功能允许我向电子邮件模板添加新的内容块。于是,我添加了一个文本块,内容为“this is test123”。
拦截请求后,发现它是这样保存的:
{"json":"%7b%0a%22%64%61%74%61%22%3a%22%7b%74%65%78%74%3a%74%68%69%73%20%69%73%20%74%65%73%74%31%32%33%7d%22%2c%0a%65%76%65%6e%74%49%44%3a%32%33%34%32%33%0a%7d","eventID":43534}
其中json参数包含了URL编码后的文本数据。
我解码后得到了:
{"data":"{text:this is test123}","eventID":23423}
于是,我怀着试一试的心态,向text参数中注入XSS payload:
{"data":"{text:<img/src=x onload=confirm(1)>}","eventID":23423}
然后我小心翼翼地重新进行 URL 编码,并发送请求。刷新页面后,XSS成功执行!但它是Self-XSS = =接着,死马当活马医了吧,我将eventID修改为受害者的ID,然后发送请求。
没想到,服务器返回了200 OK响应,且响应体为空。
我的心提到了嗓子眼,立刻检查了受害者的账户,眼睛紧紧盯着屏幕,当看到成功修改了他们的电子邮件模板时,我兴奋得差点从椅子上跳起来。
是的,成功了,我成功了!
由于 eventID 是一个数值 ID,这就为我们提供了一种可行的攻击思路。我们完全可以使用暴力枚举的方式遍历所有可能的 eventID,将 XSS 注入到所有平台用户的电子邮件模板中。一旦成功,我们就能够窃取任意用户的账户信息。
我很开心,因为爸爸答应我,如果我再挖到一个高危严重漏洞,他就带我去玲珑安全线下见面会。
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...