前言
许久没刷buu的题了,这次的我又双叒叕来了!(别问为什么来了,问就是水题来了)
正文
自闭一 upload1
打开题目
然后一看这不是有手就行吗?自己想了一下他的目录,猜测是upload
,因为在源码里看到了类似的东西。所以尝试了一下,结果还真的对了。
接下来就是上传后门文件了。所以首先尝试正常的来了一个
发现结果提示
然后该文件格式,接着尝试发现不对
所以,这是过滤了字符?
于是就直接改了一下,变为
接着上传
然后就是想了一下,结合网上的一些大师傅的经验(也就是类似提醒的wp),知道了一种新的文件上传的方式,叫做文件幻术头
,也就是在你写的一句话前面加上一个图片类型的文件头,然后接着百度发现只需要在前面加一个GIF89a
就可以,所以进行尝试
上传成功。
然后路径就是upload后面跟文件名。
接下来就bp抓包
修改文件后缀为phtml
,(至于为什么不选择php等,在我尝试后发现会报错,应该存在过滤的)接着蚁剑连接,搜索flag得到结果
自闭二 HTTP
打开题目,
看到这里直接鼠标右键查看源码,发现了一个.php
文件,
访问之后发现
花里胡哨的一大堆没用,看到提示意思是说这个请求不是https://www.Sycsecret.com
发出的。所以就直接抓包,修改头信息。
添加referer
信息
这里提示使用Syclover
进行浏览,所以再次修改
得到
提示只能本地访问,所以xff
信息改为:127.0.0.1
,访问得到flag
自闭三 admin
打开题目,上面提示
给我吓了一跳,就打开吧,然后进去
因为题目名字是admin,所以我就尝试了一下admin+123登录,结果,就很,
WHAT!!!我还没开始就已经结束了?这,果然是最快的男人(tui),既然这样就按照正常步骤解一下吧,刚开始想着会不会是密码蛮力爆破,然后没尝试,因为buu存在请求次数。所以就换了一个思路。
正常注册了一个账号,然后进入修改密码的页面(因为之前在登陆页面找了没有,就来到了密码修改页面),发现了注释的网页链接<!-- https://github.com/woadsl1234/hctf_flask/ -->
,所以百度该链接,直接得到了这个题目的源码,然后找到这个东西
if request.method == 'POST':
name = strlower(form.username.data)
进行了名字的小写转换,也就是说注册的是大写会自动转换成小写,所以就无法通过注册大写admin来操作了。接着在登录,注册,修改页面都发现了这个函数。但是这个函数并不是python自带的,而是作者自己定义的,看一下作者定义这个函数的地方。
def strlower(username):
username = nodeprep.prepare(username)
return username
使用的是 nodeprep.prepare函数
,这个函数是用Twisted
模块导入,而且查看项目时发现这个项目的Twisted版本
相对于当时题目发布的时间是落后的,所以这里肯定有问题。
就利用Unicode编码转换。
这里有一个在线网站
可以自动生成需要的字符。
也就是说这个自定义函数的工作流程就是
ᴬdmin->Admin->admin
所以注册之后,修改密码,直接用admin+修改之后的密码
进行登录,得到flag。
然后看了大师傅的博客之后发现还有另外两种解题方法。
session伪造
这方面由于自身并不强,所以没办法进行详细的解释。
由于这个题现在知道了是利用flask,所以就直接百度了解了一下flask的一些原理,
知道了flask是把session存在客户端的,而且只经过base64编码和用密钥签名,虽然没有签名不可以伪造session,但是有很多信息我们可以直接从session解码找出来。
然后就随便注册了一个账户登录接着利用bp抓包,
发现session值,利用了base64加密。
然后就利用脚本解密,得到
然后就把其中的name项修改为admin再进行加密。得到
.eJw9kEGLwjAQhf_KMmcPtraXggclWlyYlCypJbmI2mqSdtylKlsj_vfNuounYd6Dj_feHTaHvjkbyC79tRnBxtaQ3eFtBxlwtja8Kr-1w0j5WaQZppy9W0281bTulBRDIeeOs9VEu9oUOUYFK1N0xqhKxEX-0SppLNK_zpadll2LFe_QL0lRmWCsLSecFLK22i0JpUgxFgPPy1jL2cDlPkaHN12VN6yC7rVBf0y4rA33q_AvEuXVFB4j2J_7w-by2TanV4UQ-YZMjNGrMWdluHPCfE0hPqGbW52LKKAT7n4rqFTTIsHZ9ImztD02L1KTf9md-HNOWwoGbGuyJxjB9dz0z90gGsPjB_2NbJ4.X8J7Cg.NQcbminT5MN3zUM9NApKSNakd58
然后用这个替换掉抓包时的cookie值
总结
初次了解到session伪造
,感觉就很神奇,有点那种csrf漏洞攻击的味道,同样是利用cookie而不是进行攻击。等下次研究一下flask
再详细的记录下来
结束语
博客水完了,但是在水的同时同样感受到了自己知识上的不足,已经对于做题方面的不老到,这些有待于提高。