本文共 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之类的代理抓包软件中留好完整的请求包是个好习惯。
喜欢您来,喜欢您再来