xss-labs靶场-第十五关 ng-include XSS – 作者:知非知非知非

1627806125_610659add5c96665a68cb.png!small

URL:http://localhost/xss-labs/level15.php?src=1.gif

图片链接地址:http://localhost/xss-labs/level15.png

查看源代码:

1627806131_610659b334c7aa057ffde.png!small

这里我们试着构造一个攻击PAYLOAD:

1.gif”><script>alert(1)</script>

1627806140_610659bc80a8bdf5420e1.png!small

可见,双引号,大于号和小号都被转义了!!!!

这里有一些问题,我们这里需要确定一下!!

第一:插入输入字段的位置:<span class>前面有一个ng-include 标识!

第二:源代码开头有一个html ng-app,什么意思,需要确认!

第三:开头引用了一个angular.min.js,这样一个JS脚本,啥意思?

小知识:首先,需要知识angular js是个啥?

是一款构建用户界面前端框架!

是一个应用设计框架与开发平台!

用途呢!?就是编写和维护大量的JS代码!!!

ng-include 指令用于包含外部的 HTML 文件。

包含的内容将作为指定元素的子节点。

ng-include 属性的值可以是一个表达式,返回一个文件名。

默认情况下,包含的文件需要包含在同一个域名下。

filename

文件名,可以使用表达式来返回文件名。

看大佬写的内容,这个ng-include有一些注意事项:对解决该XSS问题至关重要!!!

1.ng-include,如果单纯指定地址,必须要加引号2.ng-include,加载外部html,script标签中的内容不执行3.ng-include,加载外部html中含有style标签样式可以识别

4.ng-inclue,记载外部html中的link标签可以加载

angular.min.js 是压缩版的angular.js,主要是删除了注释,去除了所有的回车和空格,也对函数变量等做了缩写处理,在使用上没有任何区别,但是压缩版比较小,在正式环境中,越小的js文件,可以保证网站越快的被打开。

好的,基础知识完事,我们来看:啥思路可以突破这道题!!!

ng-include,加载外部html,script标签中的内容不执行

这个点,我们可以引用其他的外部HTML,但不能通过script标签生成XSS弹窗!!!

这里我们引用同文件夹中的level1.php文件!!!!

1627806153_610659c9ace166ae95fe2.png!small

构造PAYLOAD:

?src=’level1.php?name=<img src=1 onclick=alert(1)>’

?src=’level1.php?name=<img src=1 onerror=alert(1)>’

1627806159_610659cf41c8f7a79ae49.png!small

这里需要一个说明:

但是level1.php不是一个php文件吗?这里解释一下,这是因为我们不是单纯的去包含level1.php,而是在后面添加了name参数值的。这就有点像是在访问了该参数值中地址之后把它响应在浏览器端的html文件给包含进来的意思。

最后,我们这里查看一个该题的后台服务器源代码!!!!

1627806167_610659d70d52789a5fc8a.png!small

来源:freebuf.com 2021-08-01 16:23:36 by: 知非知非知非

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论