- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
XXE漏洞
XXE漏洞介绍:
是XXE就是XML外部实体注入。当XML允许引用外部实体时,通过构造恶意内容,就可能导致任意文件读取、系统命令执行、内网端口探测、攻击内网网站等危害。
例如,如果你当前使用的程序为PHP,则可以将libxml_disable_entity_loader设置为TRUE来禁用外部实体,从而起到防御的目的。
XXE漏洞
XXE文件读取:
?xml version=1.0 encoding=UTF-8?
!DOCTYPE a [!ENTITY passwd SYSTEM file:///etc/passwd]
foo
valuepasswd;
/value
/foo
XXE命令执行(需要配合expect扩展)
?xml version=1.0 encoding=UTF-8?
!DOCTYPE a [!ENTITY passwd SYSTEM expect://id]
foo
valuepasswd;
/value
/foo
SSRF漏洞
SSRF漏洞介绍:
SSRF 形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能且没有对目标地址做过滤与限制。比如从指定URL地址获取网页文本内容,加载指定地址的图片,下载等等。利用的是服务端的请求伪造。ssrf是利用存在缺陷的web应用作为代理攻击远程和本地的服务器
SSRF漏洞
SSRF漏洞利用:
1. 可以对外网、内网、本地进行端口扫描,某些情况下端口的Banner会回显出来(比如3306的);
2. 攻击运行在内网或本地的有漏洞程序(比如溢出);
3. 可以对内网Web应用进行指纹识别,原理是通过请求默认的文件得到特定的指纹
4. 攻击内网或外网有漏洞的Web应用
5. 使用file:///协议读取本地文件
SSRF漏洞
SSRF漏洞挖掘:
PHP反序列化
反序列化和序列化:
PHP序列化在我们实际项目运行过程中是一种非常常见的操作。比如当我们想要将数组值存储到数据库时,就可以对数组进行序列化操作,然后将序列化后的值存储到数据库中。其实PHP序列化数组就是将复杂的数组数据类型转换为字符串,这样就方便数组存库操作。
序列化是将变量转换为可保存或传输的字符串的过程;
反序列化就是在适当的时候把这个字符串再转化成原来的变量使用。这两个过程结合起来,可以轻松地存储和传输数据,使程序更具维护性。
PHP数组进行序列化和反序列化操作,主要就用到两个函数,serialize和unserialize。
PHP反序列化漏洞
PHP序列化:
serialize() --- 函数用于序列化对象或数组,并返回一个字符串。如下:
?php
$sites = array(t1, tt2, ttt3’);
$serialized_data = serialize($sites);
echo $serialized_data;
?
输出结果:
a:3:{i:0;s:2:t1;i:1;s:3:tt2;i:2;s:4:ttt3;}
各个字符的意义 --- o表示对象,a表示数组,s表示字符,i表示数字
a:3 表示有三个数组
i:0,表示第一个数组,s:2:t1,表示第一个数组是字符,2表示有两个字符,为t1
PHP反序列化漏洞
PHP反序列化:
unserialize() --- 函数用于将通过 serialize()函数序列化后的对象或数组进行反序列化,并返回原始的对象结构,如:
?php
$sites = array(t1, tt2, ttt3’);
$serialized_data = serialize($sites);
#echo $serialized_data;
$unserialized_data = unserialize($serialized_data);
print_r($unserialized_data);
?
输出结果:
Array ( [0] = t1 [1] = tt2 [2] = ttt3 )
PHP反序列化漏洞
PHP反序列化:
PHP反序列化漏洞中可能会用到的魔术方法:
void __wakeup ( void )
unserialize( )会检查是否存在一个_wakeup( ) 方法。如果存在,则会先调用_wakeup 方法,预先准备对象需要的资源。
void __construct ([ mixed $args [, $... ]])
具有构造函数的类会在每次创建新对象时先调用此方法。
void __destruct ( void )
析构函数会在到某个对象的所有引用都被删除或者当对象被显式销毁时执行。
public string __toString ( void )
__toString( ) 方法用于一个类被当成字
文档评论(0)