[NPUCTF2020]ezlogin

[NPUCTF2020]ezlogin

考点

  • XPath盲注

wp

F12发现main.js,打开找到登录代码,把数据以XML形式传入

functiondoLogin(){
  var username =$("#username").val();
  var password =$("#password").val();
  var token =$("#token").val();
  if(username ==""|| password ==""){
    $(".msg").text("用户名和密码不能为空!");
    return;
  }

  var data ="<username>"+username+"</username>"+"<password>"+password+"</password>"+"<token>"+token+"</token>"; 
  $.ajax({
    type:"POST",
    url:"login.php",
    contentType:"application/xml",
    data: data,
    anysc:false,
    success:function(result, status, xhr){
      if(result =='成功'){
        window.location.href ='admin.php';  
      }
      $(".msg").text(result);

    },
    error:function(XMLHttpRequest,textStatus,errorThrown){
      $(".msg").text(errorThrown +':'+ textStatus);
    }
  }); 
}

但是它的POST数据又不是XML形式,实际上这是Xpath

使用x' or 1=1 or ''=' 绕过登录失败。尝试Xpath盲注

使用脚本注入,得到账号密码为adm1n/gtfly123

然后跳转到admin.php?file=welcome很明显的文件包含,并且给了提示,解码后是flag is in /flag

使用php://filter 读取文件,结果返回nonono ,是过滤了什么

可以对php://filter 使用大小写

小结

  1. Content-type是XML,但是POST的数据不是XML格式,可能是XPath

  2. php://filter伪协议被过滤时可以使用大小写绕过

  3. XPath注入

最后更新于