|
分类
1. DOM-based cross-site scripting
页面本身包含一些DOM对象的操作,如果未对输入的参数进行处理,可能会导致执行恶意脚本。如下面一些DOM操作:
| 以下是引用片段: document.URL document.URLUnencoded document.location (and many of its properties) document.referrer window.location (and many of its properties) |
举个例子,假如某个脆弱的页面的代码如下:
| 以下是引用片段: <HTML> <TITLE>Welcome!</TITLE> Hi <SCRIPT> var pos=document.URL.indexOf("name=")+5; document.write(document.URL.substring(pos,document.URL.length)); </SCRIPT> <BR> Welcome to our system … </HTML> |
攻击者使用如下的URL访问时,则非常危险:
| 以下是引用片段: http://www.vulnerable.site/welcome.html?name=<;script>alert(document.cookie)</script> |
试了一下,貌似IE、FireFox等浏览器默认对<script>alert(document.cookie)</script>进行了编码,阻止了脚本的执行。但是对于DOM操作还是要更加谨慎啊,比如把上面的页面修改一下,安全性就增强了不少:
| 以下是引用片段: <SCRIPT> var pos=document.URL.indexOf("name=")+5; var name=document.URL.substring(pos,document.URL.length); if (name.match(/^[a-zA-Z0-9]$/)) { document.write(name); } else { window.alert("Security error"); } </SCRIPT> |
2. Reflected cross-site scripting
也被称为None-Persistent cross-site scripting,即,非持久化的XSS攻击,是我们通常所说的,也是最常用,使用最广的一种方式。它通过给别人发送带有恶意脚本代码参数的URL,当URL地址被打开时,特有的恶意代码参数被HTML解析、执行。它的特点是非持久化,必须用户点击带有特定参数的链接菜能引起。
3. Persistent cross-site scripting
持久化XSS攻击,指的是恶意脚本代码被存储进被攻击的数据库,当其他用户正常浏览网页时,站点从数据库中读取了非法用户存入非法数据,恶意脚本代码被执行。这种攻击类型通常在留言板等地方出现。
| 入侵网站必备经典语句 | 01-17 |
| 说说session | 10-23 |
| 新or注入教程 | 09-10 |
| Mssql2005注入命令总结 | 07-30 |
| 阿D常用注入命令汇总 | 07-30 |
| Penetration Testing 渗透测试 | 07-04 |
| Exploit Sites 和0day公布的站点 | 06-18 |
| 3389得到肉鸡后的命令 | 06-18 |
| Cmd模式下的入侵技术大全 | 05-30 |
| 阿D常用注入命令整理 | 05-17 |
| opendatasource学习记录 | 05-14 |
| SQL Injection规避入侵检测技术总 | 05-06 |