xss跨站脚本攻击

XSS (Reflected)

用phpstudy搭了一个渗透测试环境,从xss开始吧,难度从低到高的源码


low难度没有任何过滤直接 就可以得到弹窗,medium难度加了str_replace,high难度加了preg_replace,这两个函数有什么区别呢?搜索一波,

str_replace():

定义和用法

str_replace() 函数以其他字符替换字符串中的一些字符(区分大小写)。

该函数必须遵循下列规则:

如果搜索的字符串是数组,那么它将返回数组。
如果搜索的字符串是数组,那么它将对数组中的每个元素进行查找和替换。
如果同时需要对数组进行查找和替换,并且需要执行替换的元素少于查找到的元素的数量,那么多余元素将用空字符串进行替换
如果查找的是数组,而替换的是字符串,那么替代字符串将对所有查找到的值起作用。
注释:该函数区分大小写。请使用 str_ireplace() 函数执行不区分大小写的搜索。

(1)大小写绕过< sCript>
(2)双写绕过< scr< script>ipt>

(原文:https://blog.csdn.net/caoyouming0609/article/details/75208002)

preg_replace():

.: 匹配除“\n”之外的任何单个字符。
*: 匹配前面的子表达式零次或多次。
所以< script>标签不可用,< img src=”javascript:alert(‘xss’);”>也不可用,我们无法依靠属性值进行跨站,但可以产生自己的事件
< img src=”1” onerror=alert(‘xss’)>

onerror是IMG标记的一个事件,只要页面发生错误,该事件立即被激活,语句中浏览器解释IMG标记时,会加载src属性引用的图片地址,该图片不存在则触发onerror事件。

盗取cookie

(咕~)

0%