【XSS爬坑之路一】初识XSS
XSS入门与介绍
1. XSS简介
XSS,跨站脚本攻击(Cross Site Scripting),是一种注入式攻击。为了不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。
2. XSS成因
对于用户输入过滤不足
对于非预期输入的信任
3. XSS的危害
盗取各类用户帐号,如机器登录帐号、用户网银帐号、各类管理员帐号
窃取数据,如盗取企业重要的具有商业价值的资料
控制企业数据,如读取、篡改、添加、删除企业敏感数据
非法转账
网站挂马
强制发送电子邮件
控制受害者机器向其它网站发起攻击
…
4. XSS分类
反射型XSS:反射型跨站脚本(Reflected Cross-site Scripting),也称非持久型(Non-persistent XSS)、参数型跨站脚本。主要用于将恶意脚本附加到URL地址的参数中,只是简单地把用户输入的数据反射给浏览器,攻击者需要诱使用户点击该链接。
存储型XSS:存储型跨站脚本(Stored Cross-site Scripting),也称持久型(Persistent Cross-site Scripting。比反射型跨站脚本更具有威胁,并且可能影响到Web服务器自身的安全。攻击者先将恶意脚本代码上传或者存储到漏洞服务器中,只要受害者浏览了有该恶意代码的页面就会执行恶意代码。
DOM XSS:DOM XSS从效果上来说是一种反射型XSS,但相比反射型XSS需要更进一步思考。通过修改页面的DOM节点形成的XSS。
5. 实例分析
1. XSS输出在HTML中的情况
这里是我自己搭建的环境,发现输出是直接输出在HTML中,并且没有过滤任何东西
那么我们直接构造
<script>alert(1)</script>
网页会解析这段代码,从而达到弹窗的效果
2. XSS在input value中的情况
在对话框中输出,发现直接显示在下方框中
那么如果我们直接输入
<script>alert(1)</script>
这段代码就会被当作文本被输出
那么我们需要把输出不放在input里,则可以通过闭合
构造payload为
"><script>alert(1)</script>
成功弹框
3. XSS输出在HTML属性中的情况
本来文本框中得到get参数,但是当我们闭合为
"><script>alert(1)</script>
时,发现过滤了script标签
那么我们只能换一种弹框方式,构造payload为
"><img src="1" onerror="alert(1)">
成功实现弹窗,当然这里也可以构造成
" onclick="alert(1)"
这样当用户点击时则发生弹框
4. XSS输出在script标签中的情况
发现输出的数据为get的参数,但是是通过javascript输出的
所以我们需要将
</script><script>alert(1)
5. XSS输出在textarea中的情况
这是一个留言板,那么就只能用存储型XSS,那么我们需要向留言板中插入
<script>alert(1)</script>
插入后,当其他人点击后,则会弹框。我们可以用这个留言板来获取他人的cookie信息,从而登录别人的帐号
暂时就先学到这里,以后的学了再写出来
上一篇: mysqldump实现数据库的备份
下一篇: MyISAM和InnoDB区别关联详解