一个PHP代码注入漏洞

PHP escapeshellarg() 与escapeshellcmd()

最近在对某产品的漏洞进行复现与发散绕过,遇到了一个将escapeshellarg()与escapeshellcmd()一起使用导致命令执行的漏洞,因此就记录一下漏洞成因以及绕过手法。

首先补充一下背景知识,在unix系统中,被单引号包裹的部分如果存在变量,则这个变量不会被解析,但是被双引号包裹的部分在执行时,bash会先将变量名解析为变量的值再使用。

PHP反序列化漏洞成因、防御、绕过

0x01 PHP反序列化漏洞成因

序列化与反序列化

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

serialize() :返回带有变量类型和值的字符串

unserialize() :想要将已序列化的字符串变回 PHP 的值

Java反序列化漏洞分析

序列化与反序列化简介

Java 提供了一种对象序列化的机制,该机制中,一个对象可以被表示为一个字节序列,该字节序列包括该对象的数据、有关对象的类型的信息和存储在对象中数据的类型。

将序列化对象写入文件之后,可以从文件中读取出来,并且对它进行反序列化,也就是说,对象的类型信息、对象的数据,还有对象中的数据类型可以用来在内存中新建对象。

整个过程都是 Java 虚拟机(JVM)独立的,也就是说,在一个平台上序列化的对象可以在另一个完全不同的平台上反序列化该对象。

类 ObjectInputStream 和 ObjectOutputStream 是高层次的数据流,它们包含反序列化和序列化对象的方法。

https://www.runoob.com/java/java-serialization.html

PHP文件上传漏洞原理以及防御姿势

本文用到的代码地址:https://github.com/Levones/PHP_file_upload_vlun,好评请给小星星,谢谢各位大佬!

0x00 漏洞描述

在实际开发过程中文件上传的功能时十分常见的,比如博客系统用户需要文件上传功能来上传自己的头像,写博客时需要上传图片来丰富自己的文章,购物系统在识图搜索时也需要上传图片等,文件上传功能固然重要,但是如果在实现相应功能时没有注意安全保护措施,造成的损失可能十分巨大,为了学习和研究文件上传功能的安全实现方法,我将在下文分析一些常见的文件上传安全措施和一些绕过方法。

我按照最常见的上传功能–上传图片来分析这个漏洞。为了使漏洞的危害性呈现的清晰明了,我将漏洞防御措施划分为几个不同的等级来作比较

WordPress小于等于4.6 命令执行漏洞(PHPMailer)(CVE-2016-10033)实验

0x00

此漏洞利用的是HTTP头部注入,参考资料:http://www.freebuf.com/articles/web/164817.html

首先放出实验来源:http://vulapps.evalbug.com/w_wordpress_6/

实验环境需要docker来挂载,docker安装教程:https://blog.csdn.net/levones/article/details/80474994

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×