这一章主要讲的是XSS(cross site scipt)跨站脚本攻击,这种攻击方式主要是在客户端(浏览器)中通过非法的JavaScript脚本来更改页面
例如:在php页面中有如下代码:
Document ".$input.""; ?>
这段代码主要功能是显示Param变量,如果在浏览器中输入:http://localhost/test.php?param=这是一个测试
页面就会显示:
如果将param变量换成<script>alert(/xss/)</script>页面是显示:
P.S.如果在chrome中会报错,chrome会显示: Chrome 在此网页上检测到了异常代码。为保护您的个人信息(例如密码、电话号码和信用卡信息),Chrome 已将该网页拦截。
分成几种类型:
1.反射型 XSS(非持久型Non-persisitentXSS)
把用户输入的数据反射给浏览器
2.存储型XSS(持久型 peristen XSS)
将恶意JavaScript脚本存储在服务器,每个访问这个服务器网站的用户都会执行这段代码。这种方法比上面的更加复杂。
3.DOM based XSS
根据DOM的XSS,实际上是一种反射型的xss。
例如如下的代码:
XSS test
如果在输入框中输入的内容是普通的内容,此时<a>标签的内容就是
这样,因为localhost里面没有相应的资源,此时会返回一个页面错误。
可是,如果在input标签里输入的内容是如下内容的话:
' οnclick=alert(/这是一个xss/)//
此时链接的内容就变成这样:
点击链接,就会发生
因为testLink此时就变成了
因为构造输入的文本为:
' οnclick=alert(/这是一个xss/)//
前面一个单引号与JavaScript中的单引号配对,而且后面一个单引号也会被注释不会显示。
同理,如果输入的文本为:
'><'
,将显示以下内容:
P.S.这是在Chrome下完成的。