DNS 域传送漏洞
0x00 DNS域传送
DNS服务器分为:主服务器、备份服务器和缓存服务器,在主备服务器之间则通过“DNS域传送”同步数据。
若DNS服务器配置不当,可能导致匿名用户获取某个域的所有记录,从而节省许多搜集资产的时间。
more...DNS服务器分为:主服务器、备份服务器和缓存服务器,在主备服务器之间则通过“DNS域传送”同步数据。
若DNS服务器配置不当,可能导致匿名用户获取某个域的所有记录,从而节省许多搜集资产的时间。
more...#查看服务器运行权限
$ ps aux|grep apache|grep -v grep
$ sudo lsof -i:80
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
apache2 1377 root 4u IPv6 12596 0t0 TCP *:http (LISTEN)
apache2 21121 www-data 4u IPv6 12596 0t0 TCP *:http (LISTEN)
apache2 21122 www-data 4u IPv6 12596 0t0 TCP *:http (LISTEN)
apache2 21123 www-data 4u IPv6 12596 0t0 TCP *:http (LISTEN)
apache2 21124 www-data 4u IPv6 12596 0t0 TCP *:http (LISTEN)
apache2 21125 www-data 4u IPv6 12596 0t0 TCP *:http (LISTEN)
apache2 24800 www-data 4u IPv6 12596 0t0 TCP *:http (LISTEN)
apache2 127488 www-data 4u IPv6 12596 0t0 TCP *:http (LISTEN)
第一行是Apache主进程,以root权限运行的,因为Apache的Web端口是80或443,而在Ubuntu(Linux)中开启小于1024的端口需要root权限,所以主进程必须以root权限运行。
第二行起为Apache子进程,其执行用户为www-data,www-data是Ubuntu中运行Web服务的默认用户,权限较低。
Windows中Apache安装完成后默认是administrator权限,所以需要降权,创建一个用户Apache,用户组为Guests,然后将Apache目录下的日志的可写权限赋给Guests账户。
#目录及文件权限
修改配置文件,vim /etc/apache2/apache2.conf解决目录遍历漏洞
#Options Indexes FollowSymLinks
Options FollowSymLinks
或者使用chmod进行权限限制也可以,比如使用chmod o-r flag.txt命令将www-data的读权限去掉
windows也可以通过配置文件或者权限的设置达到上面设置的效果
#错误重定向一
$ sudo vim /etc/apache2/apache2.conf
<Directory /var/www/>
Options Indexes FollowSymLinks
#AllowOverride None
AllowOverride All #设置如此
Require all granted
</Directory>
$ cat .htaccess
ErrorDocument 404 /404.html
#错误重定向二
$ sudo vim /etc/apache2/apache2.conf
LoadModule rewrite_module modules/mod_rewrite.so #去掉前面的注释符
$ sudo a2enmod rewrite #开启跳转
$ cat .htaccess
ErrorDocument 404 /404.html
RewriteEngine on
RewriteRule "ttt\.html$" aa.html
#隐藏apache版本号
$ sudo vim /etc/apache2/conf-available/security.conf
ServerTokens Prod
ServerSignature Off
#隐藏php版本号
$ sudo vim /etc/php5/apache2/php.ini
expose_php = Off
#禁止执行脚本
$ vim /etc/apache2/apache2.conf
<Directory /var/www/html/upload/> #禁止执行php
php_flag engine off
</Directory>
vim /etc/apache2/apache2.conf
more...Docker镜像是由多个文件系统(只读层)叠加而成的。
当一个容器启动时Docker会加载只读镜像层并在其上添加一个读写层。
读写层中的修改在镜像重新启动后会全部丢失。
在Docker中,只读层及在顶部的读写层的组合被称为Union File System(联合文件系统)。
如果想要保存数据,则可以使用数据卷来在容器外面保存数据,主要为如下两种方式:
* 使用docker run运行容器时指定数据卷
* 在Dockerfile中直接指定数据卷
#运行完后容器中的根目录下就会多个data文件夹,这个就是数据卷
$ docker run -itd --name v_test -v /data debian:jessie /bin/bash
root@d145e8c6f874:/# ls
bin data etc lib media opt root sbin sys usr
boot dev home lib64 mnt proc run srv tmp var
root@d145e8c6f874:/# exit
exit
#查看数据卷的对应位置,前者是宿主机的位置,后者是容器中的位置
$ docker inspect -f {{.Mounts}} v_test
[{volume 8f39f7de0f851e0bfbcfdd4561fbb20484f01f864ce00a159b09bdcdf743e068 /var/lib/docker/volumes/8f39f7de0f851e0bfbcfdd4561fbb20484f01f864ce00a159b09bdcdf743e068/_data /data local true }]
# 本机的/home/var/docker_data和容器的/data对应
$ docker run -itd -v /home/var/docker_data:/data debian:jessie /bin/bash
root@d853c4ca7632:/# exit
exit
$ docker inspect -f {{.Mounts}} d853c4ca7632
[{bind /home/var/docker_data /data true rprivate}]
$ docker inspect -f {{.Mounts}} d853c4ca7632
[{bind /home/var/docker_data /data true rprivate}]
# 本机创建文件,容器中就会同时出现
#宿主机创建文件
$ sudo touch /home/var/docker_data/a.txt
#容器可以查看到文件同样被创建
root@8e1ccd30fe33:/# ls data/
a.txt
FROM debian:jessie VOLUME /data #之后的任何命令都不能更改Volume的任何东西
使用–volumes-from参数项即可访问另外一个容器的Volume。
因为数据容器不启动也可以被其它容器访问,所以一般不推荐启动数据容器。
操作系统:macOS Sierra 10.12.6
Docker版本:Docker version 18.09.0, build 4d60db4
Dockerfile里面其实是一条条的指令,Docker会把Dockerfile的指令翻译为linux命令,
每一条指令都会创建一个镜像,下一条指令将在这个镜像的基础上进行修改操作后再生成一个镜像。
让你可以对下载好的镜像进行一些操作(比如安装软件、向镜像复制文件等),从而构造定制化的镜像。
FROM <image name>:指定新的镜像基于什么创建(可以尝试使用alpine:latest和debian:jessie)
MAINTAINER <author name>:设置该镜像的作者
COPY <source> <dest>:复制文件,dest要以 / 结尾
WORKDIR /path/to/workdir:相当于切换目录,对RUN、CMD、和ENTRYPOINT生效
RUN <command>:在shell执行命令
EXPOSE port1 port2:容器运行时监听的端口
CMD:容器默认的执行命令,Dockerfile只允许使用一次CMD命令(使用数组)
ENTRYPOINT:类似于CMD,Dockerfile只允许使用一次(使用数组)
ENV <key> <value>:设置环境变量
USER <uid>:镜像正在运行时设置一个uid,即设定启动容器的用户,默认为root
VOLUME ['/data']:授权访问从容器内到主机的目录
CMD与ENTRYPOINT的区别:
more...操作系统:Ubuntu14.04.1
Docker版本:Docker version 17.06.0-ce, build 02c1d87
#一般镜像、容器的id和name可以互换
$ docker search ubuntu #从公共registry搜索镜像
$ docker pull ubuntu #从公共registry下载镜像
$ docker pull ubuntu:14.04
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu 14.04 7e4b16ae8b23 11 days ago 188MB
ubuntu latest 1d9c17228a9e 11 days ago 86.7MB
$ docker history ubuntu:14.04 # ubuntu:14.04可以用7e4b16ae8b23替代,用id和images_name:tag效果一样
$ docker rmi ubuntu:latest # 也可docker rmi 1d9c17228a9e
运行容器(exit后容器就停止了)
more...学习Docker需要了解4个概念:镜像、容器、数据卷、链接
more...原文链接:http://www.cnblogs.com/JeffreySun/archive/2010/06/24/1627247.html
more...SAX (simple API for XML)
python 标准库包含SAX解析器,SAX用事件驱动模型,通过在解析XML的过程中触发一个个的事件并调用用户定义的回调函数来处理XML文件。
因为mrq依赖于redis和mongo,所以先安装设置下
more...