docker进阶学习(二)
Docker Compose
DockerFile 单个容器 手动运行。
Docker Compose 定义多个容器,高效管理。
安装curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod a+x /usr/local/bin/docker-compose
官方demo
mkdir compose
cd compose
创建app.py,写入以下代码
import timeimport redisfrom flask import Flaskapp = Flask(__name__)cache = redis.Redis(host='redis', port=6379)def get_hit_count(): retries = 5 while True: try: return ...
docker入门学习(二)
容器数据卷容器的持久化和同步操作。容器数据也是可以共享的
方式一:直接使用命令挂载目录 -v
docker run -it -v 主机目录:容器目录docker run -it -v /home/ceshi:/home centos /bin/bash
通过docker inspect 容器id 查看是否挂载成功
测试文件同步
使用容器卷后,以后修改只需要在本地进行修改,容器内会自动同步。
实战:安装MySQL
下载容器 docker pull mysql:5.7运行容器(挂载目录) docker run -d -p 3310:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=qihukeji360@123 --name mysql01 mysql:5.7 -d 后台运行-p 端口映射-v 卷挂载-e 环境配置--name 容器名字
容器即使被删除,数据仍在本地,即容器数据持久化功能!
具名挂载和匿名 ...
docker入门学习(一)
卸载旧版本
$ sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine
查看服务器版本信息
cat /etc/os-release
配置阿里云镜像地址
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
更新yum软件包索引
yum makecache fast
配置阿里云加速器
cd /etc/dockervim daemon.json { ...
docker基础学习
0x00 docker基础命令docker images 查看本地存在的docker镜像docker search 搜索docker镜像库docker inspect 查看镜像详细信息docker rmi image:tag 删除docker镜像docker ps 查看运行的容器docker kill 容器ID 杀死容器进程docker rm 容器ID 删除容器docker stop 容器ID 暂停运行容器docker exec -ti 容器ID /bin/bash 进入容器docker cp 文件 容器ID:路径 宿主机复制到容器docker cp 容器ID:文件 路径 容器复制到宿主机
0x01 创建镜像命令: docker commit参数说明: -a , --author : 作者信息 -m , --meassage : 提交消息 &nbs ...
记一次OneThinkPHP的审计学习(暂未更新)
CMS:OneThinkphp 1.0
0x01 文件缓存漏洞1、在Thninkphp.php中文件缓存目录定义为Runtime/Temp
在ThinkPHP/Conf/convenion.php中同时定义了DATA_CACHE_PATH也为Runtime/Temp:
在Think/Cache/Driver/File.class.php中构造函数定义了File缓存类的options['temp']为DATA_CACHE_PATH,因此File缓存类的存放路径在Runtime/Temp/
Typrcho反序列化漏洞学习
/img/x.jpg
漏洞点:install.php 64行,检测HTTP_REFERER
if (!empty($_GET) || !empty($_POST)) {//get和post都不为空 if (empty($_SERVER['HTTP_REFERER'])) {//HTTP_REFERER如果为空,终止程序 exit; } $parts = parse_url($_SERVER['HTTP_REFERER']);//解析URL,返回组成部分 if (!empty($parts['port']) && $parts['port'] != 80) { $parts['host'] = "{$parts['host']}:{$parts['port']}"; } //判定条件不成功,终止程序 if (empty($parts['host']) || $_SERVER['HTTP_HOST'] != $parts['host']) { exit; }}
序列化入口点232行,满足漏洞 ...
PHP反序列化之基础学习
0x00 什么是序列化通俗的讲就是把一串代码转化成字符串存储在一个对象中。反序列化是把对象中的字符串转化成可执行代码。在程序执行结束时,内存数据便会立即销毁,变量所储存的数据便是内存数据,而文件、数据库是“持久数据”,因此PHP序列化就是将内存的变量数据“保存”到文件中的持久数据的过程。
0x01 序列化函数和魔术方法PHP手册中对序列化函数的解释 serialize() 序列化函数 返回字符串,此字符串包含了表示value的字节流,可以存储于任何地方。 unserialize() 反序列化函数 对单一的已序列化的变量进行操作,将其转换回PHP的值。 魔术方法 __construct 当一个对象创建时被调用, __destruct 当一个对象销毁时被调用, __toString 当一个对象被当作一个字符串被调用。 __wakeup() 使用unserialize时触发 __sleep() 使用serialize时触发 __destruct() 对象被销毁时触发 ...
PHP反序列化之基础学习
0x00 伪协议PHP伪协议大致有如下几种
file:// — 访问本地文件系统http:// — 访问 HTTP(s) 网址ftp:// — 访问 FTP(s) URLsphp:// — 访问各个输入/输出流(I/O streams)zlib:// — 压缩流data:// — 数据(RFC 2397)glob:// — 查找匹配的文件路径模式phar:// — PHP 归档ssh2:// — Secure Shell 2rar:// — RARogg:// — 音频流expect:// — 处理交互式的流
伪协议了解的较多的是包含文件,利用php://、data://、file://、zlib://等协议特性,包含恶意代码文件,或读取,或下载。
本次需要了解的是phar伪协议,PHP文档中解释为PHP归档,可解压缩包,也可包含文件,读取文件等操作。而在2018年BlackHat USA大会上,来自Secarma的安全研究员Sam Thomas公布的针对PHP新型攻击技术,利用phar流包装在不使用unserialize函数的情况下触发反序列化漏洞。
0x01 phar文件格式ph ...
李雷PHP博客程序之初级代码审计
0x00 前言作为菜鸡做审计,又不想看着大佬们的文章一步一步的跟进漏洞点,所以在CVND找了一套源码,提示在new*_sh*.php存在注入,然后官网下载一个源码直接开刚。。
作者部分借用了Thinkphp框架,但是大部分都是自己原生写法。。。mdaima_var_inc核心类、配置文件、函数等,mdaima_com_admin后台文件,外置的其他文件为前台文件。
0x01 news_show文件SQL注入根据CVND大佬提示,找到符合提示文件的只有news_show文件,查看代码
<?include_once("./mdaima_var_inc/config_system.php");$wap_mobile='';if (isMobile() && $_SESSION["mobile_wap"]!='pc'){ $wap_mobile='true'; include_once("wap/news_show_wap.php"); exit;}include_once("./mdaima_var_inc/config_system_info.php");/ ...
Image图片库漏洞总结
0x00最近phpstudy爆出Nginx解析漏洞,由于nginx默认配置存在错误配置,导致任意文件都可以解析为php代码。
漏洞原理可参考此链接:https://www.cnblogs.com/yang34/p/13653893.html
当然本文肯定不会是专门讲nginx解析漏洞,而是讲漏洞复现时发现的一个小问题点。本次漏洞复现使用了mkcms和74cms作为漏洞环境进行复现。
下载phpstudy8.1.0.7版本。
cms安装成功后,找到可上传图片点
mkcms
上传图片马
解析成功。
74cms:
图片的确解析了,但是phpinfo没被解析。
百思不得其解,度娘了一波,大致了解,图片上传时调用图片处理函数对图片进行了剪裁啥的然后重新生成了一张新的图片。而这种方法叫二次渲染。
作为菜逼的我代码也看不懂,只能跟着百度方法C32ASM一波了。
mkcms,原图片和上传后图片的对比,阔以发现没得啥变化,怪不得可以执行成功。
74cms,原图片和上传后图片对比,图片前面已经全部被修改了。。。
尝试了n+++++久。。。。。。好像整个图 ...