论剑场web21解题

这道题包含了文件包含、代码审计、和反序列化。

1、查看源码:

发现这个file_get_contents函数读取的是前端发送的数据,正常来讲这个函数是读取文件的,还有就是它通过GET接收了一个file,然后把class.php包含进去了,然后我们试试文件包含,给user传一个admin,才能使文件包含成立,然后试一下文件包含漏洞,看看能不能爆出源码。

这里简单解释下为什么这么构造文件包含的惯用套路代码是 ?参数=php://input&file=指定的php文件(xx.php)

而php://read=convert.base64-encode/resource=则是编码设置,以base64显示,去掉了就不行

得到:


base64解码得到:


同理去解码class.php,得到:


有两个if语句,先满足第一个,让$user的值为admin,然后再让第二个if为False,就能成功的包含class.php了。

进行代码分析,知道flag有可能在f1a9.php中,这个unserialize();这是个反序列化函数,我们可以利用这个函数,传入参数导致调用index.php中的class类,然后读取f1a9.php中的内容。

构造payload:O:4:"Read":1:{s:4:"file";s:8:"f1a9.php";}

简单解释下这个payload,O:4:"Read"指4个字符的对象Read,s:8:"f1a9.php"指8个字符的字符串f1a9.php


将payload传入参数

得到:


检查源码,我的火狐右键检查源码无效,直接检查器查看即可:

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

推荐阅读更多精彩内容

  • WEB安全漏洞中,与文件操作相关的漏洞类型就不少,在大部分的渗透测试过程中,上传文件(大、小马)是必不可少的一个流...
    CanMeng阅读 604评论 1 7
  • 记hackeme做题 hide and seek 查看源代码,搜索flag,看到flag guestbook 简单...
    Aluvion阅读 3,368评论 0 2
  • WEB2 看源代码得flag 文件上传测试 找一张图片上传,截包改后缀名为.php得flag 计算题 F12修改输...
    a2dd56f6ad89阅读 18,546评论 0 2
  • 偶然看到这样一段话:有的人25岁就死了,只是到75岁才埋葬。我们究竟是活了365天,还是只活了一天,然后把这一天重...
    木牙青阅读 575评论 0 1
  • 一个团队的成功成长,离不开每个人都共同努力,少了谁都不能很好地运转起来,一个团队犹如连环,每一项工作都是紧紧相扣的...
    子脩阅读 116评论 0 0