实验吧-web-天网管理系统

本系列文集:实验吧-Write up --将持续更新 觉得还不错请给个喜欢,感谢!

打开题目查看源码,发现如下提示,考察PHP弱类型
详情查看:PHP弱类型总结

图片.png

这里要为用户名传入一个字符串,并且它经过md5加密后要等于0。
在用户名处输入QNKCDZO,得到如下提示
图片.png

访问提示目录,得到如下提示
图片.png

代码审计一波

 $unserialize_str = $_POST['password']; #post方式提交password值
  $data_unserialize = unserialize($unserialize_str);#将password值经过"反序列化"得到一个数组
  if ($data_unserialize['user'] == '???' && $data_unserialize['pass'] == '???') {
  print_r($flag);#数组里的user和pass都等于某个值时就打印flag。
  }

要得到flag需满足:

1.post方式提交password值
2.将password值经过"反序列化"得到一个数组
3.要求数组里的user和pass都等于某个值时就打印flag。

不知道???到底是什么,因此无法考虑用php函数构造这样的值。

但是还有一个提示: "伟大的科学家php方言道:成也布尔,败也布尔" ,bool类型的true跟任意字符串可以弱类型相等。因此我们可以构造bool类型的序列化数据 ,无论比较的值是什么,结果都为true。
详细介绍点击:PHP序列化和反序列化
  构造password值为: a:2:{s:4:"user";b:1;s:4:"pass";b:1;}

图片.png

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容