提示
- xml注入
一般遇到像登录页之类的就因该想到sql注入、弱口令或者xml等

随便输入抓包

这里明显就是xml注入

这里我们来简单了解一下xml注入

这里是普通的xml注入
xml注入其实和sql注入类似,利用了xml的解析机制如果系统没有将'<''>'进行转义,那么攻击者就可以修改或者添加xml信息
例如:
这里是正常的注册的xml
<?xml version="1.0" encoding="UTF-8" ?>
<user role="guest">用户输入</user>
假如我添加一个呢,这样是否就将我们输入的用户名变成了权限
<?xml version="1.0" encoding="UTF-8" ?>
<user role="guest">用户输入</user>
<user role="admin">输入</user>
xml外部实体注入
大概意思呢就是程序在解析的时候同时也把攻击者构造的外部实体也解析了
XML声明:<?xml version="1.0" encoding="utf-8" ?>
内部DTD声明:<!DOCTYPE 根元素名称 [元素声明]>
在DTD中定义属性:<!ATTLIST 元素名 (属性名 属性类型 缺省值)*>
外部实体声明:<!ELEMENT 实体名称 SYSTEM "URI/URL">
构造payload尝试注入
&admin;这里的admin类似于css中的id和class,资源定位器,和<!ENTITY admin这里的admin相对应

得到passwd里的信息,直接读flag

获得flag
