长亭百川云 - 文章详情

XSS基础教学2【输出在HTML标签属性中的情况】

不忘初心px1624

56

2024-07-13

    上一节的XSS基础教学1里面讲到了输入输出的概念,在实际情况中,输出往往会出现在HTML标签的属性之中。

例如: 、  .. 这个时候怎么办呢?

这种情况,直接用前面提到的方法写入markdown-img的话,页面中标签是不会被解析的。因为这段内容在标签属性中的时候,是不会被当做标签进行解析的。如下图,这段代码会以字符串文本的形式,输出在输入框里面。

比较常见的情况是下面这样的。

http://xxxx.com/search.php?word=11111

对应的网页源代码如下:

关键词:<input type="text" value="11111" />

如果这里的word没过滤双引号。就会有以下的情况发生。

http://xxxx.com/search.php?word=111" onclick="alert(1)

对应的网页源代码如下:

<input type="text" value="111" onclick="alert(1)" />

这时候当用户点击页面中的text文本框的时候,就会执行onclick事件,执行alert代码,这种构造方法是不破坏跳出原有标签,直接构造添加事件属性,从而执行js代码。

当然,如果同时没有过滤"><的情况下,我们也可以把代码这么写:

http://xxxx.com/search.php?word=111"><img src=x onerror=alert(1)>

对应的网页源代码如下:

<input type="text" value="111"><img src=x onerror=alert(1)>" />

这种情况 源码中会侧漏一部分(这个侧漏也经常被作为可能存在XSS漏洞的一个特征),可以自动触发XSS漏洞。

综上所述,当输出点在HTML标签的属性中时,我们构造代码的时候,就要先用双引号去闭合属性,跳出该属性限制,然后再根据实际情况,去构造最终写入XSS代码。

这节课,你学会了吗?

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

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