核心:攻击的是前端,
一、课程引入
1、开发一个简单的PHP页面,代码如下:
<?php
// xss 基础演示代码:从浏览器中接受一个URL地址参数名为content
if(isset($_GET['content'])){
$content=$_GET['content'];
echo "你输入的内容:$content";
}else{
echo "请在地址栏输入content值";
}
?>
2、在地址栏输入:http://localhost/shentou/xss/testxss.php?content=hello,world 可以正常输出:你输入的内容是hello,world
3、如果在地址栏输入:http://localhost/shentou/xss/testxss.php?content=
也可以是alert("hello,world")或者试试快来点我
4、如果在地址栏输入:
http://localhost/shentou/xss/testxss.php?content=<script> var result = 0; for (var i=0; i<999;i++){result+=i;}alert(relslt);</script>
其中+号变成了空格
5、如果地址栏输入
http://localhost/shentou/xss/testxss.php?content=<script> var result = 0; for (var i=0; i<999;i++){result+=i;}alert(relslt);</script>
xss的核心要求是构造出能够让前端执行的JavaScript代码,所以要求我们对Javascript的代码必须要熟悉
xss也算是注入类的漏洞,JavaScript的代码注入,所以xss漏洞更主要是去攻击系统用户,而不是系统本身
先试探
二、xss概述
xss全程为:Cross site scripting,指跨站攻击脚本,XSS漏洞发生在前端,攻击的是浏览器的解析引擎,
Xss就是让攻击者的JavaScript代码在受害者的浏览器上执行
xss攻击者的目的就是寻找具有xss漏洞的网页,让受害者在不知情的情况下,
在有xss漏洞的网页上执行攻击者的JavaScript代码
XSS是提前埋伏好漏洞陷阱,等着受害者上钩。既然攻击者是执行JavaScript代码,所以攻击的语句应该能让JavaScript运行
JavaScript运行条件:
1)代码位于""标签中
<script>alert(1)</script>
2)代码位于onclick事件中,此类事件带有onerror,onfocus,onblur,onchange,onmouseover等
http://localhost/shentou/xss/testxss.php?content=<script>alert(1)</script> <img src="http:/"> http://localhost/shentou/xss/testxss.php?content=<a href="地址">点击有惊喜</a>
3)代码位于超链接的href属性中,或者其他类似属性中
xss 的攻击payload一定满足上述条件
XSS是以Web站点用户为攻击目标,而不是服务器,所以是一种钓鱼攻击,攻击目标是不确定的。
但是,如果是针对cookie类的攻击,隐含一个目标(越权类的操作):网站管理员,
就可以获取网站管理员的coolie,通过网站管理员cookie登录,可以管理网站
基于xss配置钓鱼网站:自行构造一个与淘宝页面一样的页面,
用户一旦输入用户和密码,将直接发送账密发送到攻击者的后台服务器,
然后将后台账密保存后,再跳转到真实的淘宝网站,让用户完成后续工作,服务器代码类似于
// 获取用户的淘宝账密 $username=$_POST['username']; $password=$_POST['possword']; // 将数据保存起来,文件或数据库 // 让他直接跳转到真实的网站 echo "<script>location.href='https://www.taobao.com';</script>"
利用ifame完成XSS攻击,将攻击者的模仿页面嵌入被攻击网页中,:
五、xss的危害
1)网页挂马
2)盗取用户Coolie并扮演用户角色。
3)DOS(拒绝服务攻击)客户端浏览器
4)钓鱼攻击,高级的钓鱼技巧
5)删除目标文章、恶意篡改数据、嫁祸
6)劫持用户Web行为,甚至进一步渗透内网
7)爆发web 2.0蠕虫
8)蠕虫式的DDOS攻击
9)蠕虫式挂马攻击、刷广告、刷流量、破环网上数据
一言以弊之,具体实现何种危害,完全取决于你的JavaScript代码执行何种功能。
(其实就是js能干什么,我就可以干什么)