Web: BNV— 155 point:
这是一个beginner quest,也进一步学习了一下XXE。首先给定一个网站https://bnv.web.ctfcompetition.com/。打开它,是一个盲人网,可以根据他们的城市找到最近的盲人协会。。还有一个提交按钮,可用于搜索最近的盲人协会。
首先使用BurpSiute检查搜索功能的请求和响应:
这个请求将发送带有键“ message”和数值的JSON。研究这个数字是多少!在阅读有关PharmaBraille上的盲文代码的文章后,我了解到message值代表了我们在盲文点上所选择的城市的代表。
这里就不得不说一下XML的参数实体,XML的DTD可以定义普通实体和参数实体两种实体类型,而这两种类型也可以再分别为内部实体和外部实体。XXE,全称就为XML外部实体注入漏洞。通过外部实体SYSTEM请求本地文件uri,通过某种方式返回本地文件内容就导致了XXE漏洞。声明内部实体和外部实体区别如下:
<!ENTITY 实体名 SYSTEM url > //外部实体
<!ENTITY 实体名 实体的值 > //内部实体
Blind XXE 需要使用到DTD约束自定义实体中的参数实体。参数实体是只能在DTD中定义和使用的实体,以 %为标志定义,定义和使用方法如下
<?xml version="1.0"?>
<!DOCTYPE message [
<!ENTITY normal "hello&#