HGAME 2019 WEB week2

1.easy_php

在这里插入图片描述
题目的标题给出了提示,查看robots.txt
在这里插入图片描述
再查看http://118.24.25.25:9999/easyphp/img/index.php,得到源码。
在这里插入图片描述
由题目可知$img = $_GET['img'],我们需要传入一个名为img的变量,其中$img = str_replace('../', '', $img),会将$img中的../替换为空,这种替换方式可以用双写../....//进行绕过。接着include_once($img.".php")为我们解决问题提供了思路,我们可以利用文件包含漏洞进行任意文件读取。payolad:http://118.24.25.25:9999/easyphp/img/index.php?img=php://filter/read=convert.base64-encode/resource=....//flag

2.php trick

这道题结合了多种php函数的漏洞,由浅入深,学到了不少东西。
在这里插入图片描述

1.step1和step2要求str1不能等于str2但是md5值要相等,我们注意到md5($str1) != md5($str2)中用到的是!=我们可以找两个md5值开头两位是0e的字符串,利用科学记数法即可进行绕过。
2.step3和step4的要求和上面的类似,但是判断md5值时用到的是!==我们可以传入两个值不相同的数组进行绕过。
3.step5中的strpos($_SERVER['QUERY_STRING'], "H_game") !==false要求我们的url中不能存在H_game但我们的str5获取的变量名就是H_game,百度到了一个php的小特性。
在这里插入图片描述
因此我们只需要修改H_gameH.game即可进行绕过
step6:is_numeric($str5)要求str5不能为数字,可以利用传入数组进行绕过。
step7:$str5<9999999999要求str5大于9999999999,我们直接传入一个以科学计数法表示的数9e9即可。
step8: (string)$str5>0将str5字符串化后的值不能大于0,此时我们的str5已经是一个数组了,(string)$str5的返回值为Array,已经满足了条件。
step9和step10考察了php中parse_url()函数的作用解析url并返回其组成部分,这是我在网上找到的例子。
在这里插入图片描述
但是我们的目标是访问admin.php。要利用parse_url和curl对域名的解析差异,构造http://@118.24.3.214@www.baidu.com/admin.php即可满足需求
在这里插入图片描述
得到提示
在这里插入图片描述
将url修改为http://@127.0.0.1:80@www.baidu.com/admin.php得到源码
在这里插入图片描述
看到file_get_contents($filename),文件包含漏洞进行对flag.php的读取url=http://@127.0.0.1:80@www.baidu.com/admin.php/?filename=php://filter/read=convert.base64-encode/resource=flag.php
在这里插入图片描述

3.PHP Is The Best Language

在这里插入图片描述
首先以post方式设置变量$door$door作为明文,$secret作为密钥重新对$secert进行赋值。但是我们并不知道$secret的具体数值。
在这里插入图片描述
接着$gate也被明文为以post方式传入的$key,密钥为上文修改的$secret重新赋值,同样的我们还是不知道密钥的值具体是多少。因此$gate的值也不知道具体是多少。
在这里插入图片描述
但是我们传入的变量$gate需要和加密过的$gate的值相同。这个时候我们就需要利用hash_mac函数的一个漏洞,就是如果传入的明文为数组的时候,返回的值为NULL。也就是说我们传入的$door变量如果是一个数组,那么$secret变量的值也就被修改为了已知的NULL。
在当时做这道题时,接下来的if语句没能成功地进行绕过
在这里插入图片描述
在看完官方的wp之后才知道,存在一次md5加密后值开头为0e再次加密后md5值开头依旧是0e的的字符串(如7r4lGXCH2Ksu2JNT3BYM),这样就可以利用php弱类型相等进行绕过了,最后的payload为
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值