初次尝试
主页没有什么特别的
看看前端源码,发现四个隐藏框,且t_ref
有值
现在地址栏传值试试:?keyword=good%20job!&t_link=1&t_history=2&t_sort=3&t_ref=4
t_sort
成功传入值:
引号被实体转义了?keyword=good%20job!&t_link=1&t_history=2&t_sort=3&t_ref=4
这个t_ref没有过滤,能不能修改他的值呢?
?keyword=123&t_sort=1" type="text"><script>alert(1)</script>
前面看到地址栏是什么,t_ref就是什么,而http头的refer也是那个值,你说巧不巧
hackbar里把refer改为1
t_ref的值也改变了
refer的值改为" type="text " onmouseover="alert(1)
,出现文本框
鼠标移动过去,触发弹窗
源码分析
t_sort的值传给str00,经过实体转义后传入隐藏框
Http的refer经任何过滤<>后传给str33,才让我们有了可乘之机
level-12 Http头修改User Agent初次尝试
打开主页,老川原砾了
看看前端页面,这个user-agent立马引起了我的注意,用脚趾想一想,应该是修改user-agent的值,触发弹窗
修改值为" type="text" onmouseover="alert(1)
隐藏框出现
移动过去触发弹窗
源码分析
和levle11没有什么区别,只是Refer换成了User Agent
level-13 修改Cookie初次尝试
cookie
引起我的警觉
cookie editor
修改cookie
: " type="text" onmouseover="alert(1)
刷新后出现文本框
移动过去触发弹窗
源码分析
和前面两个差不多
level-14自动跳转到那个网址,但是失效了
看看前辈的吧
15 AngularJS的javascript框架漏洞看看前端代码
无从下手,看看源码,就短短的几行,实体转义了src的值
ng-include
使用了ng-include这个表达式的意思是当HTML代码过于复杂时,可以将部分代码打包成独立文件,在使用ng-include来引用这个独立的HTML文件。
定义和用法
ng-include 指令用于包含外部的 HTML 文件。
包含的内容将作为指定元素的子节点。
ng-include
属性的值可以是一个表达式,返回一个文件名。
默认情况下,包含的文件需要包含在同一个域名下。
引用文件名要加单引号 即 ng-include=" ‘index.html ’ "
特别说明
1.ng-include
,如果单纯指定地址,必须要加引号
2.ng-include
,加载外部html,script标签中的内容不执行,不能加载,如果需要控制器处理需要在主页中注册
3.ng-include
,加载外部html中含有style标签样式可以识别
4.ng-inclue
,外部html中的link标签可以加载
分析与实践
由此清楚了ng-include'
的用法,加载一个外部的html文件,尝试加载前面做过的level
竟然在下面出现了level 4的页面!
由于level 4产生XSS的页面是:
http://localhost/xss-lab//level4.php?keyword="onmouseover='alert(1)'
【最终payload】
猜想构造level 5的payload:
http://localhost/xss-lab/level15.php?src='level4.php?keyword=%22%20onmouseover=alert(1)%20%22'
其中%20为空格的url编码,%22为”的url编码,将鼠标移动到下面的输入框中触发,成功!
好吧上面是我粘贴的源码自带的解析,我的不知道怎么回事,无法包含外部html文件