一.介绍xss
1.xss跨站脚本,是一种针对网站应用程序的安全漏洞攻击技术,是代码注入中的一种,他允许恶意用户将代码注入网页,其他用户在浏览网页时就会受到影响,恶意用户利用xss代码攻击成功后,可能得到很高的权限(如执行一些操作),私密网页等内容,会话和cookie等各种内容,可以用于钓鱼攻击,挂马,cookie获取前端js等攻击行为,而且广泛适用于和其他漏洞结合,达到攻击服务器的目的。
2.xss漏洞一直被认为是web安全中危害较大的漏洞,xss成为今天很多黑客更喜欢的漏洞利用方式。
3.xss攻击分为反射型,存储型,DOM型。
二.xss原理
攻击者在有漏洞的前端界面中嵌入恶意代码,导致受害者访问该页面时在不知情的情况下触发恶意代码,被获取信息。
三.各种类型
1.反射性xss
又称非持久型。
攻击方式就是通过电子邮件等方式将包含xss代码的恶意链接发给目标用户,当目标用户访问该链接时,服务器接受目标用户的请求并且进行处理,然后服务器把带有xss代码的数据发送给目标用户的浏览器,浏览器解析这段带有xss代码的恶意脚本后,就会触发xss攻击,完成攻击者攻击的功能。(url,cookie浏览器等)
2.存储型xss
持久型。。
攻击脚本永久的存留在目标服务器的数据或者文件中,具有很高的隐蔽性。
攻击方式就是多见于论坛,博客和留言板,攻击者在发布过程中,,将恶意脚本联同正常的信息一起发布,随着发布的内容被存储在服务器后端中,当其他用户浏览这个被注入恶意的帖子时,恶意脚本会在他的浏览器中被执行。
3.DOM型xss

使用DOM可以使程序和脚本能够动态访问和更新文档的内容,结构及其样式。

可能触发DOM型XSS的属性:

document.referer属性

window.name属性

location属性

innerHTML属性

documen.write属性

可能用到的函数
1.trim(string,charlist)
trim() 函数移除字符串两侧的空白字符或其他预定义字符。
2.stripslashes(string)去掉字符串string的反斜杠。
3.addslashes(函数返回在预定义字符之前添加反斜杠的字符串,预定义字符是单引号,双引号,反斜杠,NULL)。
mysqli_real_escape_string(string,connection)会对string中特殊字符进行转义。