1、简述远程命令执行漏洞原理分别选择dvwa 低、中、高三种安全等级复现
1.实验
打开靶场dvwa,并且把等级调整到Low。输入127.0.0.1时
而加了;后加入ls会显示

A && B:先执行A,如果成功,执行B
A || B:先执行A,如果失败,执行B
A | B:管道符,先执行A后,将A的结果作为B的输入,打印的是B的结果
A & B:先执行A,然后不管成功与否,执行B
把难度提升到中等,源码如下,可以看出过滤了;和&&,所以还是能用其他的符号

再把难度提升到高级。可以看出已经过滤了大部分了,但是我们可以加空格来处理

2、简述文件包含漏洞原理并在dvwa靶场中通过包含中间件日志getshell
程序开发人员一般会把重复使用的函数写到单个文件中,需要使用某个函数时直接调用此文件,而无需再次编写,这种文件调用的过程一般被称为文件包含。程序开发人员一般希望代码更灵活,所以将被包含的文件设置为变量,用来进行动态调用,但正是由于这种灵活性,从而导致客户端可以调用恶意文件,造成文件包含漏洞。
1.分类
本地包含
只能包含本地服务器上存在的文件。
- 用户对输入可控且无过滤
- 可以利用相对路径或绝对路径读取系统敏感文件
远程文件包含
远程文件包含 包含远程服务器上的文件。 需要php.ini开启了allow_url_fopen和allow_url_include的配置。包含的文件是第三方服务器(比如:攻击者搭建的一台Web服务器)的文件。(什么什么.ini一般为配置文件,且不同的php版本文件就不一样。)
- allow_url_fopen=On(默认为On)规定是否允许从远程服务器或者网站检索数据
- allow_url_include=On(PHP 5.2之后默认为Off)规定是否允许include/require远程文件(allow_url_include=On是包含服务器上没有的文件)
包含中间件日志getshell:

root@c1f28c3146d7:/var/log # chmod -R 755 /var/log/apache2(全部更改的)
root@c1f28c3146d7:/var/log/apache2 # chmod 644 access.log

http://127.0.0.1:8080/vulnerabilities/fi/?page=<?php phpinfo();?>
#查看是否有权限
http://127.0.0.1:8080/vulnerabilities/fi/?page=/var/log/apache2/access.log

3、简述ssrf漏洞原理并复现Pikachu靶场ssrf漏洞实现读取文件效果
SSRF(Server-Side Request Forgery:服务端请求伪造)是由攻击者构造形成,**由服务端发起请求的一种安全漏洞。**一般情况下,SSRF攻击的目标是从外网无法访问的内部系统。正是因为它是由服务端发起的,所以它能够访问到与它相连而与外网隔离的内部系统。

大多是由于服务端提供了从其他服务器(相当于中介)应用获取数据的功能,但又没有对目标地址做严格过滤与限制,导致攻击者可以控制后端服务器对传入的任意地址发送请求,并返回对该目标请求的响应。
通过控制Web服务器当作跳板机来发起请求,攻击内网中其他服务从而获得内网的敏感信息。比如,通过控制前端请求的远程地址,来让请求数据由远程URL域名修改为本地或者内网的IP地址及服务,来造成对内网系统的攻击
实验:

更改http后面,或者使用dnslog



还可以利用file协议

4、复习xxe漏洞原理,利用dnslog验证xxe漏洞是否存在
XML文档包含三个主要部分:XML声明、文档类型定义(DTD)和文档元素,而XML 文档类型定义 (DTD),这里也是XXE漏洞所在的地方

当允许引用外部实体时,通过构造恶意内容,可导致读取任意文件、执行系统命令、探测内网端口、攻击内网服务等危害。
读取任意文件:PHP中可以通过FILE协议、HTTP协议和FTP协议读取文件,还可利用PHP伪协议
执行系统命令: 这种情况很少发生,但在配置不当或者开发内部应⽤情况下(PHP expect模块被加载到了易受攻击的系 统或处理XML的内部应⽤程序上),攻击者能够通过XXE执行代码
在服务端开启了DTD外部引用且没有对DTD实体进行过滤的情况下,可以利用DTD实体引用系统关键文件(引用外部实体)。
<?xml version="1.0"?>
<!DOCTYPE ANY [
<!ENTITY magedu SYSTEM "file:///etc/passwd">(如果没有回响的可以更改为DNSlog来查看是否有xxe漏洞)
]>
<x>&magedu;</x>(必须引用的,跟上面的一摸一样)


5、复现tomcat弱口令漏洞并getshell
可以使用vulhub-master靶场自己在本地搭建,可以使用线上环境(vulfocus,虽然很久没有更新了,但是可以的。不过有时间限制,避免有人占着茅坑)。vulfocus
http://your-ip:8080/manager/html
输⼊弱密码 tomcat:tomc



现在开始部署文件。getshell

2.那么什么是war
.war文件,即Web存档文件,是一个包含Web应用程序所有内容的文件格式,它通过将所有文件合并为一个单位来减少传输文件所需的时间。这种文件格式特别适用于Web开发,通常包含一个网站项目下的所有源码,如HTML、CSS、JS、JSP等前端代码,以及编译后的Java代码。(相当于一个压缩包)
生成war包
1.首先生成一个jsp的shell,因为tomcat是java写的,并且保存到

jar -cvf shell.war shell.jsp (前面的名字无所谓,但是后面的名字一定要跟创建的jsp名字相等)

但是我们直接访问网站时显示


然后再用蚁剑连接。

的是404,我们只有加入刚刚war里面的jsp才能成功访问