长亭百川云 - 文章详情

记一次惊心动魄的XSS

猎户攻防实验室

57

2024-07-13

本文共 2172 字,预计阅读时间 10 分钟

在一次授权的渗透测试过程中,发现系统似乎没有对前台数据进行过滤或校验(也就是小破站),导致用户名处可能存在存储型XSS漏洞,随即对用户名和Email处插入了XSS脚本,然后页面就成白板了……

拿到测试目标

因为并没有提供太多的关于系统的信息,只有IP加端口,打算扫扫端口、扫扫目录、弱口令走一波就可以轻松飘过然后喝茶的。

进入系统

进入系统页面,仔细一看被惊到了,用户名密码写的明明白白,这个系统是认真的吗?

泄露系统默认用户名密码

这辈子都没见过这么嚣张的,简直就是来送菜的。既然如此也不能辜负金主爸爸的厚爱,那就试试这个账号密码吧。

输入完成点击登录,WTF,竟然真的登录成功了,我都对我自己产生怀疑了。

成功登录

出现事故

端口目录扫下来,度娘走了一波,没啥收获,那就对功能进行评估测试。

注意到在『常规管理』-『个人配置』功能处是管理员信息配置页面,还有操作日志。

个人配置功能页

随手在昵称和Email处打了个XSS。

测试XSS

呃呃,邮箱还不让随便写,那我抓包改总行了吧。

抓包插入XSS Payload

嘿嘿,操作成功了,大力刷新页面,然后进入XSS平台看看有没有鱼呀。

获取Cookie

嗯,不错,还真能打到Cookie,完美。

哎,等等,页面怎么成白板了?啥意思?

页面显示异常

一定的是我刷新的姿势不对,F5刷新,还是白板,换个浏览器,额,还是白板。

一定是我的网不好,但是访问其他网站没问题。

咋个情况……别搞我呀,我慌了。

程序员守则:重启解决90%的问题,重装解决99%的问题。

那我就重新登录试试吧,啊啊啊,还是白板,不会是把金主的系统搞崩了吧,我也没进行啥大操作呀。

重启电脑试试吧,死马当成活马医。

不出意外肯定还是不行,怎么办,要不跟金主爸爸摊牌,认怂吧……

峰回路转

就没见过打个XSS能把系统搞崩了的,一定是系统太脆弱了,对,一定是,要跟组织上反应一下了,系统抗压不行。

但是……这样也解决不了问题。

冷静下来看一下页面,他总不能连个菜单都没有吧,只要有个菜单我就能把刚才的操作还原了。

但是确实没有,怎么办,审查元素吧。

抱着试一试的心态,审查了元素。

审查元素

不出意外,超级管理员那里存在注入的Payload,那我把它删了系统岂不是就好了?嘿嘿,我可真机灵。

然后现实给我一巴掌,页面根本没变化,也对,页面都加载完毕了,看起来也不能触发点JS事件局部刷新,那怎么办呢。

看下白板里边是什么,原来是页面元素。

奇怪的解析结果

好像是后边的菜单被注释了,然后就白板了?

看到这真是欲哭无泪呀,先不管是不是被注释的原因,把系统还原了才是正事。

下边一定有修改管理员信息的个人配置菜单。

找到个人配置元素位置

对对对,就是这个菜单,从这个菜单改的管理员账户信息,然后系统就崩了,那就进入这个菜单改回来吧。

更妙的是这个菜单用的是 a 标签链接。

获取个人配置功能页URL

如果是 javascript:void(0) 的形式或者Layer弹框的形式,还真不一定能这么轻易重新进入个人配置页面。

接下来的事情就好办了,浏览器地址栏拼接一下这个目录菜单的URL。

访问个人配置功能页

WTF?一定是上天给我开的一个玩笑,别搞我呀,我*&……@#¥%……

再生波折

没别的办法了,继续审查元素。

继续审查元素

可以看到,东西都在,原来是被当成JS处理了。咋办呢?

要不我自己把这些用户名、Email的信息拿出来建一个HTML,然后提交一波吧,希望系统还有CSRF漏洞,那样的话不用验证Token,就直接能执行成功了。

说干就干,新建一个HTML页面,把刚才站点内的审查元素得到的页面元素粘贴进去。

创建HTML

就这样,浏览器里看一下效果。

浏览HTML效果

嗯,不错不错,像那么回事。那就把用户名和Email改成正常的然后提交。

提交修改

拜托了拜托了,希望可以成功吧。

提交以后,没反应……呃呃,摊牌了,不装了,搞不定了。

眼看就要成功了,差了点运气,运气也是实力的一部分,所以……我就是那个菜鸡,一定是的。

一波三折

再看看刚才新建的HTML文件,没有错,是我的问题, form 表单根本没有 action 等属性。也就是系统没有提交的路径。

找到BUG

把表单信息也粘贴进去,完成后是这样子滴。

修改HTML

注意到这里的 script 。

定位异常点

正常情况下 script 标签是有一对的,需要后边的  来闭合。

正常script元素形式

而这个XSS平台的Payload是这样的: 

为了追求更短,算是没有进行闭合,页面把后面的用户信息都当成了 script 来执行。

所以把一定要把这个Payload删除掉然后重新在浏览器打开预览。

再次访问HTML

用户名和Email修改成原来的再提交。

又出BUG

我无了,你们呢,今天没看黄历,诸事不宜。

哦,原来是没加URL地址,还是把URL也加上,再提交,我感觉自己仿佛是个智障……

重新修改。

重新修改HTML

再次预览,三过页面而不入也是够了。

gyyyy

再次提交。

修改成功

啊啊啊,成功了,蓝瘦香菇,幸好还有个CSRF漏洞等着我(这样说不知道会不会被打死),终于成功了,我可真是个小机灵鬼。

又看见了熟悉的主页面,这个页面真的好亲切,颜色、线条真棒……

重见天日

熟悉的个人配置也回来了。

再见个人配置

后记

个人测试XSS时候不太喜欢使用 alert 或者 confirm 之类的弹窗,虽然简单粗暴,但是总感觉这样的形式直接弹窗不太友好,一连弹出几个弹框就会感觉很烦,所以使用XSS平台来验证互联网的XSS漏洞,Payload用了很多次了,也没出现啥问题,这次发现问题还是真的被吓到了。

在这里给各位老爷提个醒,慎用 <sCRiPt/SrC=//x> 这种类型的XSS脚本。

写的不好或者不对的地方各位表哥轻喷。

小编提示:测试时(尤其是小破站),在Burp之类的代理抓包软件中留好完整的请求包是个好习惯。

喜欢您来,喜欢您再来

相关推荐
关注或联系我们
添加百川云公众号,移动管理云安全产品
咨询热线:
4000-327-707
百川公众号
百川公众号
百川云客服
百川云客服

Copyright ©2024 北京长亭科技有限公司
icon
京ICP备 2024055124号-2