2020ciscn
Day 1 0x01 Web3 伪协议 md5碰撞 file_get_contents($shell1)==='first blood' 利用php://input 来绕过 $shell2==md5($shell2) 利用PHP松散比较特性来绕过, **0e开头的字符串md5值也是0e开头即可绕过,**写脚本找到一个合适的数字: 0e215962017 12php > var_dump('0e215962017'=='0e291242476940776845150308577824');bool(true) $shell3 = preg_replace('/php/','',$shell3); 只过滤了一次php,并且没有对大小写限制 构造伪协议读取PHP://filter/read=convert.base64-encode/resource=flag.pphphp 脚本: 12345678910111213141516171819202122import string,hashlibimport...
java反序列化
java序列化操作函数 实现Serializable接口 ObjectOutputStream类的writeObject(Object obj)方法,将对象序列化成字符串数据 ObjectInputStream类的readObject(Object obj)方法,将字符串数据反序列化成对象 12345678910111213public class Person implements Serializable { private String name; private int age; //省略构造方法,get及set方法 private void writeObject(ObjectOutputStream out) throws IOException { //将名字反转写入二进制流 out.writeObject(new StringBuffer(this.name).reverse()); out.writeInt(age); } ...
Windows快捷键延时
在windows上设置快捷键打开终端总会有莫名其妙的延时,按下快捷键终端会延迟 3 秒才打开。终于找到了解决办法,这是某些版本的 windows 上普遍存在的的一个 bug。 直接按 Win 键,搜索「服务」并打开,找到 sysMain,禁用它并重启电脑可解决。 这个服务如果找不到,就找它的旧名 superFetch,此服务其实是针对机械硬盘的缓存服务,对固态没用,可以放心禁用掉。
Git对象
git先把文件放在暂存区 然后就可以git update-index xxx.txt来生成一个index索引,注意这种生成方式是先把数据对象存储到objects数据库中,然后再生成索引 如果xxx.txt是之前已经通过git hash-object -w写入到objects数据库中的话,生成索引的命令就是下面的,其中--add参数表明这个文件是第一次被加入暂存区的 12git update-index --add --cacheinfo 100644 \ 83baae61804e65cc73a7201a7252750c76066a30 test.txt 最后git write-tree来生成树对象 git file-ls -s 查看暂存区 https://gitee.com/progit/9-Git-内部原理.html#底层命令-(Plumbing)-和高层命令-(Porcelain)
git学习
https://www.w3cschool.cn/lvmihi/domnuozt.html 版本控制的优势 协同修改 多人协同工作 数据备份 保存数据以及历史版本 版本管理 SVN 增量式管理,Git 文件系统快照 权限控制 对开发人员进行权限控制,Git 还可对代码进行审核 历史记录 查看修改人、修改时间、修改内容、日志信息 分支管理 允许多线程推进同一个任务,提高效率 Git 与 Github 关系 其实 Git 就是一个同步工具,而 Github 就是一个代码仓库 + 程序员交友网站,主要是下载 Git 来进行同步。 Git 与 Svn...
docker镜像与分层
目录 *关于base镜像* 关于存储结构(About storage drivers) 先来创建一个自己的镜像 docker镜像的分层结构 容器的大小 修改时复制策略 copy-on-write (CoW) Copying makes containers efficient 关于base镜像 base 镜像有两层含义: 不依赖其他镜像,从 scratch 构建。 其他镜像可以之为基础进行扩展。 所以,能称作 base 镜像的通常都是各种 Linux 发行版的 Docker 镜像,比如 Ubuntu, Debian, CentOS 等。 base 镜像提供的是最小安装的 Linux 发行版。 我们大部分镜像都将是基于base镜像构建的。所以,通常使用的是官方发布的base镜像。可以在docker hub里找到。比如centos: https://hub.docker.com/_/centos 点击版本可以看到github里的Dockerfile 12345678910FROM scratchADD centos-7-docker.tar.xz /LABEL...
cat手动输入
一 关于cat << EOF语句的意思 在linux shell脚本中cat << EOF的语句,起到什么作用? 首先必须要说明的是EOF在这里没有特殊的含义,你可以使用FOE或OOO等(当然也不限制在三个字符或大写字符)。 接下来,简单描述一下几种常见的使用方式及其作用: cat<<EOF,以EOF输入字符为标准输入结束: cat>filename,创建文件,并把标准输入输出到filename文件中,以ctrl+d作为输入结束: cat>filename<<EOF,以EOF作为输入结束,和ctrl+d的作用一样: 二 cat <<EOF与cat <<-EOF的区别 两个都是获取stdin,并在EOF处结束stdin,输出stdout。 但是<<-是什么意思呢? 先来看man中的说明: If the redirection operator is <<-, then all leading tab characters are stripped from...
docker修改容器端口映射
方法一 1、停止容器(docker stop d00254ce3af7) 2、停止docker服务(systemctl stop docker) 3、修改这个容器的hostconfig.json文件中的端口(原帖有人提到,如果config.v2.json里面也记录了端口,也要修改) 12345678910cd /var/lib/docker/containers/d00254ce3af7* #这里是CONTAINER IDvim hostconfig.json如果之前没有端口映射, 应该有这样的一段:"PortBindings":{}增加一个映射, 这样写:"PortBindings":{"8080/tcp":[{"HostIp":"","HostPort":"60000"}]}前一个数字是容器端口,...
docker的run-exec-attach区别
docker run;创建和启动一个新的容器实例,操作对象是镜像,选项较多,如果你要创建和启动一个容器,只能用run; 官方命令解释:Run a command in a new container,翻译过来是在一个新的容器中中运行命令,所以主要作用有两点:一是创建和启动一个新的容器,二是启动时通过加选项和参数在容器运行命令; 123docker run [OPTIONS] IMAGE [COMMAND] [ARG...] IMAGE: 镜像名称,run操作的是镜像images COMMAND:命令,可选 123# docker run -p 80:80 -d --name=nginx-1 nginx // 在后台创建和启动容器nginx-1,不执行命令# docker run -p 81:80 -d --name=nginx-2 nginx bash -c 'ls & tail -f /dev/null' // 在后台创建和启动容器nginx-2,同时执行组合命令# docker logs...