[NPUCTF2020]ezlogin

1

首先发现一个

1
<username></username><password></pwssword><token></token>

的模板,以为是xss,注入半天搞不了,(content-type:application/xml)结果是xpath注入:

xpath注入

xpath注入详细介绍

在我对xpath注入的理解是类似于SQL注入。

在xpath中的查询语句为:

1
"/root/users/user[username/text()='".$name."' and password/text()='".$pwd."']";

其中$name和$pwd是我们输入的字符,这里对字符没有经过任何的过滤。

当$name= admin‘ or 1=1 or ‘’=’

拼接后的语句为:

1
"/root/users/user[username/text()='admin' or 1=1 or ''='' and password/text()='".$pwd."']";   //成为永真使,万能密码

值得注意的是在xpath的查询语句中没有注释。

输入:

1
'or count(/)=1  or ''='     //count函数是查询节点个数

2

输入:

1
'or count(/)=2  or ''=' 

3

存在有不同的特征值,可以用布尔盲注

先附上一句playload,并解释一下:

4

里面的{X}中的X是一个变量,它指的是查询的元素X个字符,Y也是一个变量,是指我们猜测的字符,如果X=Y那么就会返回true,对应的我们的题目就会返回“非法操作!”

要注意的是,因为页面会不断的刷新,这个token的值也会一直变化,注意拿到最新的token值

注意在第八行设置head时候千万不要用cookie和UA,一定要有content-type,我看其他人的脚本都有这个,结果爬出的数据都是“超时”的界面。

最后爆出来直接登录在?flie=welcome加入php伪协议(大小写去掉read):

1
Php://filter/convert.Base64-Encode/resource=/flag

5参考链接:https://www.cnblogs.com/lthlsy/p/14843052.html