实验来源:合天网安实验室
预备知识
1、攻击原理:恶意浏览者构造巧妙的脚本恶意代码 通过网站功能存入到网站的数据库里面,如果程序没有经过过滤或者过滤敏感字符不严密就直接输出或者写入数据库,合法用户在访问这些页面的时候 程序将数据库里面的信息输出, 这些恶意代码就会被执行。
2、XSS漏洞的分类
本地利用漏洞,这种漏洞存在于页面中客户端脚本自身;
反射式漏洞,这种漏洞和类型A有些类似,不同的是Web客户端使用Server端脚本生成页面为用户提供数据时,如果未经验证的用户数据被包含在页面中而未经HTML实体编码,客户端代码便能够注入到动态页面中;
存储式漏洞,该类型是应用最为广泛而且有可能影响到Web服务器自身安全的漏洞,骇客将攻击脚本上传到Web服务器上,使得所有访问该页面的用户都面临信息泄漏的可能,其中也包括了Web服务器的管理员。
3、了解点php和javascript,下面给出了学习网址。
http://www.w3school.com.cn/js/index.asp
http://www.w3school.com.cn/php/php_syntax.asp
<?php echo $_GET['name']; ?>解析:echo就是php的输出函数,那么这里就是输出URL上字段为name的值,如https://www.baidu.com/?name=test,$_GET['name']的值就是test,直接上图
简单分析:首先javascript代码一般要放在<script>和</script>两个标签之间,当然放在HTML的事件属性也可以(如:<button onclick="javascript:location.href='test.php'" type=”button“ >按钮</button>),alert()函数就是弹出一个简单对话框来提示(警告)用户,带有一个确定按钮。那么php的echo输出之后,对应的网页的源代码为<script>alert('XSS')</script>,结果当然就如图所示啦
根据实例一的代码提示,下面哪个语句能成功: 【单选题】 题目已完成,2
关键代码:
这里是将<script>和</script>替换成空字符,其中/是正则的开始结束,但不是^$的开始结束的意思,\ / 就是转义/,我们像第一个一样输入<script>alert('XSS')</script>试试,看看<script>和</script>都过滤掉了吧
我们稍微改一下<scripT>alert('XSS')</scRipt>,这就不能被替换掉了吧
根据实例二的代码提示,下面哪种方式能成功: 【单选题】 题目已完成,2
关键代码:
加个i参数的话就忽略大小写了,这样的话我们就不能用<script>,</script>标签了,我们要考虑其他标签啦,img有个onerror属性,试试<img src=1 onerror=alert(1)>,src就是图片的来源,赋值为1,肯定会出错啊,onerror就是一旦出错就会触发,所以就会调用alert(1),弹出对话框。
根据实例三的代码提示,下面哪种方式能成功: 【单选题】 题目已完成,2