BUUweb笔记

  1. BUU CODE REVIEW 11传送门
  2. [HCTF 2018]WarmUp1 传送门

BUU的做题笔记

BUU CODE REVIEW 11传送门

审计代码可以发现想要得到flag必须满足

1.pleaseget等于1

2.pleasepost等于2

3.md51和md52的md5值相等且md51和md52的值不相等

4.反序列化obj

payload

pleasepost=2&md51[]=1&md52[]=2&obj=O:3:"BUU":2:{s:7:"correct";s:0:"";s:5:"input";R:2;}

序列化构造方法

[HCTF 2018]WarmUp1 传送门

查看页面源代码

访问source.php

查看源码

! empty //要求变量不为空
is_string  //要求传参的数值为字符型的
emmm::checkFile //将传递进来的值传到emmm这个类的checkFile这个函数里

总结就是传参进来的file为字符型就引用这个数值的文件否则就是执行图片代码

接下来看emmm类里的checkFile函数

! isset //要求传递的变量存在
!is_string //要求为字符串
in_array($page, $whitelist) //要求传递进来的值与$whitelist的值匹配
mb_substr($page,0,mb_strpos($page . '?', '?')) //取传递进来的值的第一位开始到出现?结束如果没?则全部

可以看到$whitelist的值只有source.php和hint.php

访问

http://c3a077b0-eb2a-4aed-99af-463e018bd390.node3.buuoj.cn/source.php/?file=hint.php

得到提示

flag在ffffllllaaaagggg里面

构造获取flag的语句

payload

http://c3a077b0-eb2a-4aed-99af-463e018bd390.node3.buuoj.cn/?file=hint.php?../../../../../ffffllllaaaagggg

虽然在checkFile函数中对file的值进行了一系列处理,但是并没有影响到file真正的值,因为在使用处理后的file进行白名单匹配的时候,都是使用了一个新的变量接受file的值,而并没有直接影响file本来的值,所以file的值依旧为

file=hint.php?../../../../../ffffllllaaaagggg

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 1012482327@qq.com

文章标题:BUUweb笔记

本文作者:亖 玖

发布时间:2021-03-17, 14:38:32

最后更新:2022-12-08, 11:05:43

原始链接:https://sijiu.ren.com/2021/03/17/BUUweb%E7%AC%94%E8%AE%B0/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录
×

喜欢就点赞,疼爱就打赏