WebShell(2)| 内存马(不死马)
什么是内存马
内存马是无文件攻击的一种常用手段,随着攻防演练热度越来越高:攻防双方的博弈,流量分析、EDR等专业安全设备被蓝方广泛使用,传统的文件上传的webShell或以文件形式驻留的后门越来越容易被检测到,内存马使用越来越多。
webShell内存马,是在内存中写入恶意后门和木马并执行,达到远程控制Web服务器的一类内存马,其瞄准了企业的对外窗口:网站、应用。
但传统的webShell都是基于文件类型的,攻击者可以利用上传工具或网站漏洞植入木马。
而其中的区别在于webShell内存马是无文件马,利用中间件的进程执行某些恶意代码,不会有文件落地,给检测带来巨大难度。
Java内存马可参考文章——一文看懂内存马
PHP内存马
PHP内存马,也叫做PHP不死马、不死僵尸,在线下AWD比赛中是常用手段之一,用于权限维持。
在蚁剑中也有专门的插件可以一键注入内存马。原理也很简单,相对于Java可以直接把整个shell写入内存,php内存马的实现则是将一个木马反复写入,达到无法删除的目的。
不死马原型如下:
12345678910111213<?php ignore_user_ ...
WebShell(1)| 基础详解
前段时间忙着项目,awd比赛等,都没怎么写博客,不是没学,是不知道写啥。
好了,话不多说,2022年的第一篇博客。
WebShell基础
什么是WebShell?
顾名思义,web的含义是显然需要服务器开放web服务,shell的含义是取得对服务器某种程度上操作权限。
webShell常常被称为入侵者通过网站端口对网站服务器的某种程度上操作的权限。由于webShell其大多是以动态脚本的形式出现,也有人称之为网站的后门工具。
webShell就是以asp、php、jsp或者cgi等网页文件形式存在的一种代码执行环境,也可以将其称做为一种网页后门。
入侵者在入侵了一个网站后,通常会将asp或php后门文件与网站目录下正常的网页文件混在一起,然后就可以使用浏览器来访问asp或者php后门,得到一个命令执行环境,以达到控制网站服务器的目的。
Shell是一个人机交互页面,能操控服务器并获取权限。
Shell文件有个变态的地方,就是可从服务器那边接收数据并执行、返回结果,也就是说只要把shell文件上传到目标服务器,就能操控服务器了。
利用webShell可以在Web服务器上执行系统命令、 ...
Scrapy爬虫框架
Scrapy框架概念
Scrapy是一个Python编写的开源网络爬虫框架。它是一个被设计用于爬取网络数据、提取结构性数据的框架。
Scrapy文档地址:http://scrapy-chs.readthedocs.io/zh_CN/1.0/intro/overview.html
Scrapy框架作用
少量的代码,就能够快速的抓取。一般用于爬取大量数据。
Scrapy框架工作流程
回顾request的爬虫流程
我们可以在此基础上改写流程:
而上面改写的流程图也更加便于大家去理解scrapy的流程
Scapy的流程
其流程详细如下:
爬虫中起始的url构造成request对象——>爬虫中间件——>引擎——>调度器
调度器把request——>引擎——>下载中间件——>下载器
下载器发送请求,获取response响应——>下载中间件——>引擎——>爬虫中间件——>爬虫
爬虫提取url地址,组装成request对象——>爬虫中间件——>引擎——>调度器,重复步骤2
爬虫提取数据——>引擎——&g ...
Redis学习笔记(3)
Redis应用问题
前言
用户的数据一般都是存储于数据库中,数据库的数据是落在磁盘上的,磁盘的读写速度可以说是计算机里硬件中最慢的了。
当用户的请求,都访问数据库的话,请求数量一上来,数据库很容易就崩溃,所以为了避免用户直接访问数据库,会用Redis作为缓存层。
Redis是内存数据库,将数据库的数据缓存在Redis中,相当于数据缓存在内存中,内存的读写速度比硬盘快好几个数量级,这也大大提高了系统性能。
引入了缓存层,随之而来的是有关缓存异常的一些问题:缓存穿透、缓存击穿、缓存雪崩、缓存颠簸、缓存预热、缓存降级…而前三个也正是有些企业面试经常考察的问题。
缓存穿透
概念
缓存层和数据库中都没有的数据,而用户不断发起请求,导致请求在访问缓存时,发现缓存缺失,再去访问数据库,如果从数据库中查不到该数据则不写入缓存,这将导致这个不存在的数据每次请求都要到存储层去查询,失去了缓存保护后端持久的意义。
而我们数据库的 id 都是1开始自增上去的,如发起为id值为 -1 的数据或 id 为特别大不存在的数据。这时的用户很可能是攻击者,攻击会导致数据库压力过大,严重会击垮数据库。
造成原因
自身 ...
Redis学习笔记(2)
前方多图提醒,请耐心等待加载或刷新页面,已参考多种资料,作图不易,且看且珍惜。(快累趴了)
Redis主从复制
概述
主从复制,主机数据更新后根据配置和策略,自动同步道备机的master/slaver机制,Master以写为主,Slave以读为主。
其作用有以下几点:
读写分离:主服务器负责写,各从服务器负责读,即主机写,从机读
容灾快速恢复:主从多台服务器进行持久化操作,任意一台服务器宕机也不会影响数据恢复,有效避免了单点故障问题,使数据持久化更加安全
其他:主从复制是实现哨兵模式和Redis集群的前提
实现主从复制
每一台Redis服务器启动时,默认都为主服务器(master),可通过命令info replcation查看
配置文件修改
123mkdir /myredis # 创建文件夹存储配置文件cd /myredis # 进入文件夹cp /etc/redis.conf /myredis/redis.conf # 复制原配置文件,以便操作
创建reids6379.conf、reids6380.conf、reids6381. ...
Spring boot整合Redis
Jedis、Spring-data-redis的配置以及区别
Jedis如何配置
jedis引入依赖
12345<!-- Jedis引入依赖--> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> </dependency>
连接Redis客户端
Jedis直连
123Jedis jedis = new Jedis("192.168.30.0", 6379); jedis.set("hello", "world");String value = jedis.get("hello");
JedisPool 连接池的使用
配置文件jedis.properties
12345678# 资源池最大连接数maxTotal=50 # 资源池 ...
Redis学习笔记(1)
Redis键(key)
命令
描述
keys *
查看当前库所有key
exists <key>
判断某个key是否存在
type <key>
查看key是什么类型
del <key>
删除指定的key数据
expore <key> <time>
为给定的key设置过期时间time(单位秒)
ttl <key>
查看还有多少秒过期,-1表示永不过期,-2表示已过期
select <index>
切换当前数据库(共16个数据库,0为默认库)
dbsize
查看当前数据库key的数量
flushdb/flushall
清空当前库/全部库
Redis字符串(String)
String类型是二进制安全的,意味着Redis的String可包含任何数据,比如jpg图片或者序列化的对象。
一个Redis中字符串value最多可以是512M。
命令
描述
set <key> <value>
添加键值对
get <key ...
Centos安装Redis及相关操作
Centos导入Redis安装包
第一种方案
前往Redis官网下载安装包
通过Xftp将已下载好的安装包拖拽到centos的新建目录下
查看安装包是否在选定目录下
第二种方案
在Centos直接安装,下载之前,建议新建一个文件夹来存放安装包
1wget http://download.redis.io/releases/redis-6.2.4.tar.gz #下载最新版即可
准备工作
安装C语言的编译环境gcc
依次输入以下命令
123yum install centos-release-scl scl-utils-buildyum install -y devtollset-8-toolchainscl enable devtoolset-8 bash
查看gcc是否安装成功
检测gcc版本
1gcc --version
安装成功如下:
解压并安装
解压安装包
1tar -zxvf redis-6.2.4.tar.gz
解压完成后进入目录
1cd redis-6.2.4
在目录下执行make命令,编译成C文件
注意:如果没有安装C ...
Redis详细概述
技术分类
解决问题类型
技术
功能性
JAVA、Jsp、RDBMS、Tomcat、HTML、Linux、JDBC、SVN
扩展性
Struts、Spring、SpringMVC、Hibernate、Mybatis
性能
NoSQL、Java线程、Hadoop、Nginx、MQ、ElasticSearch
随着web技术的不断发展,用户访问量的大幅度提升,同时也产生了大量的用户数据,加之智能移动设备的普及,
所有的互联网平台都面临着巨大的性能挑战。
web服务器面临着CPU及内存压力,数据库服务器面临着IO压力。
问题及主要解决方案
CPU及内存压力:主要为session存储问题
但session应该存在哪里呢?
存储在cookie中
优点:极高的扩展性和可用性
缺点:不安全
存储在文件服务器或者数据库里
优点:简单高性能,支持分布式与集群
缺点: 数据库的大量IO效率问题
session复制
优点: 实现简单、配置较少、当网络中有机器Down掉时不影响用户访问
缺点: 广播式复制有一定廷时,会带来一定网络开销;session对象内容相同 ...
Hello World
Welcome to my blog!
by zeker