CTFSHOW-Web入门题解(更新中)
信息收集
web1
F12查看源代码即可
web2
提示js前台拦截 === 无效操作
同时无法查看源代码
根据提示,我们禁用js。这里可以使用插件,javascript switch
之后刷新就能查看了
或者在url前拼接view-source:
XSS
以下题目均需要使用xss平台获取Cookie,这里为了学习演示只弹窗
这里可以看这位大佬的博客,很详细:https://veo.pub/2019/xsscode/#
web316
直接输入即可弹窗
web317
script标签好像被过滤了,用img
web318
过滤了img和script
<svg/οnlοad=alert(1)>
web319
一样用svg即可
<svg/οnlοad=alert(1)>
web320
同上(后来才发现320-322过滤了空格,但是我都用的没有空格的代码,也就是用’/'代替空格所以都能绕过,师傅们做的时候注意一下就好)
web321
同上
web322
同上
web323
JWT
web345
提示在admin目录下
访问/admin会直接跳转到index,可能是因为没有权限,我们将数据包中的auth进行jwt解密
提示不是一个jwt格式,是怎么回事呢,观察可以发现这个auth只有两个部分,也就是缺少了signature,只需要将payload中的user改为admin即可
这里的加密算法因为是none,所以我们没法直接在网站上加密,不过只需要把payload拿出来bse64解密之后,将user改为admin再加密,最后和原头拼接一下即可
最后结果:
eyJhbGciOiJIUzI1NiIsInR5cCI6Imp3dCJ9.W3siaXNzIjoiYWRtaW4iLCJpYXQiOjE3MTI5MTMwMzcsImV4cCI6MTcxMjkyMDIzNywibmJmIjoxNzEyOTEzMDM3LCJzdWIiOiJhZG1pbiIsImp0aSI6IjMwNjk4ODlmYWE1MDA1ZDQ2NDM0NTE2ZTE1ZGU1NTY2In1dAA==
web356
一样访问admin,这次jwt三部分倒是齐了
尝试删除signature并将header头中的加密方式改为none,同时将payload中的user改为admin
成功,记得即使删除了signature也要在最后留个 .
web347
jwt中的signature是由密钥加密得来的,如果密钥太过简单就有可能被爆破
这里使用vmware自带的hashcat工具进行爆破
# hashcat -a 0 -m 16500 eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJhZG1pbiIsImlhdCI6MTcxMjkzMDM2OCwiZXhwIjoxNzEyOTM3NTY4LCJuYmYiOjE3MTI5MzAzNjgsInN1YiI6InVzZXIiLCJqdGkiOiIyODYxOTNiYTZhYWQ0NDBkM2E5OGYzMjI4MDI3M2ZlZiJ9.ECpkvwb1NZLUyaXK0WprgQAWQtMXsURIUYfet2PVJaY scretlist.txt
得到密钥123456,利用jwt.io加密即可
文件上传
web151
上传后bp改后缀为php即可
在html文件夹下找到flag
web152
这道题后台校验了content-type,所以还是一样上传jpg改后缀即可
web153
利用上传.user.ini文件,令图片马能够被index.php包含执行(这里访问/upload文件夹发现可以访问,说明有一个index.php)
之后上传一个内容为一句话木马的jpg文件
之后蚁剑连接upload/index.php即可(测试了一下上传.htaccess文件好像不行,有没有师傅知道麻烦解惑~