Htlab_Weekly_Ctf_13&14

simplexxe

一个简单的xml注入题,源码提示说flag在/opt/flag.txt里面,读一下即可得到flag
Htlab_Weekly_Ctf_13&14_第1张图片
payload

 

]>
&a;a

blind xxe

源码发现提示

根据题目名字知道这是个无回显的xxe,因为这题没有回显,是blind xxe,所以我们需要构建一条带外信道提取数据,因此我们需要开启一下本地的阿帕奇服务,通过这个外信道把数据传给我们攻击者的服务器并且引用我们的dtd文件
Htlab_Weekly_Ctf_13&14_第2张图片
构造的payload如下
Htlab_Weekly_Ctf_13&14_第3张图片
写一个dtd文件,目录如图放在www/html的根目录下,内容为


">

bp里面发送的为



  %remote;
  %all;
  %send;
]>

然后本地用nc对我们的1221端口进行监听,来监听从服务器端发过来的请求,对文件内容base64解码得到flag
Htlab_Weekly_Ctf_13&14_第4张图片
这里为什么要用php的伪协议来读取数据呢,开始没有用伪协议,并没有读出来,这是因为通过参数实体引用获取到的数据,并不会进行urlencode,并且解析器对URL有一定限制,只要有回车换行(测试发现php中空格、等制表符也不允许),都会被检查为不合法URL,直接拦截这个请求,所以需要用php的伪协议来进行读取。
blind xxe 参考链接

你可能感兴趣的:(Htlab_Weekly_Ctf_13&14)