医院网站建设,多用户商城思维导图,阿里云域名购买,佛山网络公司排名前十XSS漏洞介绍#xff1a; 跨站脚本攻击XSS(Cross Site Scripting)#xff0c;为了不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆#xff0c;故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意Script代码#xff0c;当用户浏览该页面时#xff0c;嵌入We…XSS漏洞介绍 跨站脚本攻击XSS(Cross Site Scripting)为了不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意Script代码当用户浏览该页面时嵌入Web里面的Script代码会被执行从而达到恶意攻击用户的目的。XSS攻击针对的是用户层面的攻击
XSS漏洞原理 服务器对用户提交的数据过滤不严导致浏览器把用户的输入当成了JS代码并直接返回给客户端执行从而实现对客户端的攻击目的
例如 我在网页中输入js的弹框代码前后端没有对这段代码进行过滤那就会造成客户使用的时候出现弹框或者跳转至黑客想要的页面在那个页面输入用户信息造成信息泄露 up现在实力有限拿本地靶场初步示例请多谅解 这里我让这个页面弹出了XSS 如果我让页面中途跳转至一个相似的页面也需要用户输入信息如果用户把私人信息填上去了信息就传到黑客手上 XSS手段甚至可以获得用户的cookie然后模仿用户登录登录账号
初步演示一下哈
插入的js代码 本代码会弹出一个搜索框然后输入之后会在百度搜索里面搜索你输入的内容
script
function openBaiduSearch() {var searchQuery prompt(请输入要搜索的内容);if (searchQuery) {var url https://www.baidu.com/s?wd encodeURIComponent(searchQuery);window.open(url, _blank);}
}openBaiduSearch();
/script 输入sztu之后会跳转至 三大XSS漏洞 1.反射性XSS 反射型跨站脚本Reflected Cross-Site Scripting是最常见也是使用最广的一种可将恶意脚本附加到 URL 地址的参数中。 反射型 XSS 的利用一般是攻击者通过特定手法如电子邮件诱使用户去访问一个包含恶意代码的 URL当受害者点击这些专门设计的链接的时候恶意代码会直接在受害者主机上的浏览器执行。此类 XSS 通常出现在网站的搜索栏、用户登录口等地方常用来窃取客户端 Cookies 或进行钓鱼欺骗。
不带过滤的情况下服务端的代码
?php
// Is there any input?
if( array_key_exists( name, $_GET ) $_GET[ name ] ! NULL ) { // Feedback for end user echo preHello . $_GET[ name ] . /pre;
}
?
如果输入的javascript会直接解析并且被输出出来 2.存储型XSS 持久型跨站脚本Persistent Cross-Site Scripting也等同于存储型跨站脚本Stored Cross-Site Scripting。 此类 XSS 不需要用户单击特定 URL 就能执行跨站脚本攻击者事先将恶意代码上传或储存到漏洞服务器中只要受害者浏览包含此恶意代码的页面就会执行恶意代码。持久型 XSS 一般出现在网站留言、评论、博客日志等交互处恶意脚本存储到客户端或者服务端的数据库中。 不带过滤的服务端源码
?phpif( isset( $_POST[ btnSign ] ) ) {// Get input$message trim( $_POST[ mtxMessage ] );$name trim( $_POST[ txtName ] );// Sanitize message input$message stripslashes( $message );$message mysql_real_escape_string( $message );// Sanitize name input$name mysql_real_escape_string( $name );// Update database$query INSERT INTO guestbook ( comment, name ) VALUES ( $message, $name );;$result mysql_query( $query ) or die( pre . mysql_error() . /pre );//mysql_close(); }
?
trim() 函数用于去除字符串两端的空白字符包括空格、制表符、换行符等并返回去除空白字符后的结果。stripslashes() 函数用于去除字符串中的反斜杠\。 在某些情况下字符串中的特殊字符前可能会有一个反斜杠这是为了对特殊字符进行转义以确保它们在字符串中正常显示。例如如果你想在字符串中包含引号 或 你可以使用反斜杠进行转义即 \ 或 \。然而有时你可能希望将这些反斜杠从字符串中移除以便得到原始的未转义字符串。mysql_real_escape_string() 函数用于在 PHP 中对字符串进行转义以便在 MySQL 数据库中安全地插入或更新数据。mysql_query()用于传入对数据库的指令
tips 如果输入的javascript指令被存入数据库里那所有用户在使用的时候数据库返回的包都会执行一次这段指令所有用户都会受到影响。 3.DOM型XSS 传统的 XSS 漏洞一般出现在服务器端代码中而 DOM-Based XSS 是基于 DOM 文档对象模型的一种漏洞所以受客户端浏览器的脚本代码所影响。客户端 JavaScript 可以访问浏览器的 DOM 文本对象模型因此能够决定用于加载当前页面的 URL。换句话说客户端的脚本程序可以通过 DOM 动态地检查和修改页面内容它不依赖于服务器端的数据而从客户端获得 DOM 中的数据如从 URL 中提取数据并在本地执行。另一方面浏览器用户可以操纵 DOM 中的一些对象例如 URL、location 等。用户在客户端输入的数据如果包含了恶意 JavaScript 脚本而这些脚本没有经过适当的过滤和消毒那么应用程序就可能受到基于 DOM 的 XSS 攻击。 DOM型XSS的特点
攻击向量DOM 型 XSS 的攻击向量主要是用户的输入数据例如 URL 参数、表单输入等。攻击者通过操纵用户的输入来构造恶意代码。服务器不参与DOM 型 XSS 攻击不需要服务器端的响应来触发而是完全在浏览器中进行。因此防护措施需要更多地侧重于前端的安全性。需要客户端执行恶意脚本必须通过浏览器的 JavaScript 引擎来执行因此攻击者需要通过诱导用户访问恶意页面或点击恶意链接来触发攻击。 XSS攻击的危害 盗取用户信息攻击者可以利用XSS漏洞注入恶意脚本当用户浏览包含这些脚本的网页时恶意脚本可以窃取用户的敏感信息如登录凭据、会话令牌、银行账户信息等。 会话劫持通过XSS攻击攻击者可以窃取用户的会话令牌或cookie并利用这些信息冒充用户身份进行未经授权的操作例如盗取用户账号、篡改用户数据等。 恶意操作攻击者可以在受影响的网页上注入恶意代码通过控制用户的浏览器执行恶意操作例如重定向到恶意网站、发送恶意请求、执行未经授权的操作等。 网站破坏攻击者可以通过XSS攻击破坏网站的完整性和可用性。他们可以修改网页内容、篡改数据库、删除或损坏关键数据导致网站无法正常运行或数据丢失。 传播恶意软件攻击者可以利用XSS漏洞在受影响的网站上注入恶意代码并将网站作为传播恶意软件的平台。当用户访问受感染的网页时他们可能会被重定向到包含恶意软件的网站导致他们的设备感染病毒、间谍软件或勒索软件。 声誉损害如果一个网站受到XSS攻击攻击者可以在该网站上显示虚假信息、恶意广告或误导用户的内容。这可能会导致用户对网站的信任下降影响网站的声誉和可靠性。 参考如果京东淘宝购物时一直给你弹出奇奇怪怪的东西你还会想在这购物吗... XSS攻击的防护 1.反射型防护
输入验证和过滤对所有用户输入的数据进行验证和过滤确保只接受预期的数据类型和格式。可以使用白名单过滤用户输入拒绝或删除包含恶意脚本的内容。输出编码在将用户输入的数据插入到HTML页面中之前对数据进行适当的编码。例如使用HTML实体编码如将编码为或JavaScript编码如将编码为来防止恶意脚本的执行。CSPContent Security Policy使用CSP来限制页面可以加载的资源和执行的代码。CSP可以阻止执行内联脚本和外部脚本的注入并限制可执行的脚本来源。 2.存储型防护
输入验证和过滤对所有用户输入的数据进行严格的验证和过滤确保只接受预期的数据类型和格式。避免将未经验证的用户输入直接存储到数据库或文件中。输出编码在将用户输入的数据从数据库或文件中提取并插入到HTML页面中之前对数据进行适当的编码以防止恶意脚本的执行。安全的存储在将用户输入存储到数据库或文件时使用安全的存储方式如参数化查询或预编译语句以防止恶意脚本的插入。 3.DOM型防护
输入验证和过滤对所有用户输入的数据进行验证和过滤确保只接受预期的数据类型和格式。避免将未经验证的用户输入直接用于DOM操作。输出编码在将数据插入到DOM中之前对数据进行适当的编码。可以使用DOM API提供的安全方法来插入文本内容如使用textContent而不是innerHTML。最小化DOM操作尽量减少对DOM的直接操作特别是使用用户输入作为操作的一部分。可以考虑使用现有的安全库或框架如React或Angular来帮助防止DOM型XSS攻击。 今日分享就到这吧等up努力成长为一个合格的hacker再来看看怎么完善。 up会努力成为能自己写脚本找漏洞的hacker