buu学习之旅(一)

前言

许久没刷buu的题了,这次的我又双叒叕来了!(别问为什么来了,问就是水题来了)

正文

自闭一 upload1

打开题目
题目场景
然后一看这不是有手就行吗?自己想了一下他的目录,猜测是upload,因为在源码里看到了类似的东西。所以尝试了一下,结果还真的对了。upload目录
接下来就是上传后门文件了。所以首先尝试正常的来了一个
第一次
发现结果提示第一次提示
然后该文件格式,接着尝试发现不对第二次尝试结果
所以,这是过滤了字符?
于是就直接改了一下,变为第一次修改之后
接着上传结果
然后就是想了一下,结合网上的一些大师傅的经验(也就是类似提醒的wp),知道了一种新的文件上传的方式,叫做文件幻术头,也就是在你写的一句话前面加上一个图片类型的文件头,然后接着百度发现只需要在前面加一个GIF89a就可以,所以进行尝试
GIF文件头
上传结果
上传成功。
然后路径就是upload后面跟文件名。
接下来就bp抓包结果
修改文件后缀为phtml,(至于为什么不选择php等,在我尝试后发现会报错,应该存在过滤的)接着蚁剑连接,搜索flag得到结果
flag

自闭二 HTTP

打开题目,题目样式
看到这里直接鼠标右键查看源码,发现了一个.php文件,
.php文件
访问之后发现访问之后
花里胡哨的一大堆没用,看到提示意思是说这个请求不是https://www.Sycsecret.com发出的。所以就直接抓包,修改头信息。
修改第一次
添加referer信息
修改第二次
这里提示使用Syclover进行浏览,所以再次修改第三次
得到
第三次结果
提示只能本地访问,所以xff信息改为:127.0.0.1,访问得到flag
flag

自闭三 admin

打开题目,上面提示提示
给我吓了一跳,就打开吧,然后进去题目
因为题目名字是admin,所以我就尝试了一下admin+123登录,结果,就很,flag
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值得到flag

总结

初次了解到session伪造,感觉就很神奇,有点那种csrf漏洞攻击的味道,同样是利用cookie而不是进行攻击。等下次研究一下flask再详细的记录下来

结束语

博客水完了,但是在水的同时同样感受到了自己知识上的不足,已经对于做题方面的不老到,这些有待于提高。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值