BUUCTF一周挑战(一)

[HCTF 2018]WarmUp

题目提醒是PHP代码审计。
开题滑稽。。。
在这里插入图片描述
F12看一看发现了source.php, 那就看看吧
在这里插入图片描述
就看到有两个文件,source.php看过了,看看hint.php
在这里插入图片描述
出现如下界面
在这里插入图片描述
继续往下看吧
在这里插入图片描述
这个if语句要求传入的file变量:非空、类型为字符串、能够通过checkFile()函数校验,满足这三个条件即可包含file中的文件

在这里插入图片描述
对checkFile()函数进行审计,第一、二、三个if语句都不可利用,而在第四个if语句中,先进行url解码再截取,因此我们可以将?经过两次url编码,在服务器端提取参数时解码一次,checkFile函数中解码一次,仍会解码为’?’,仍可通过第四个if语句校验。(’?‘两次编码值为’%253f’),又因为ffffllllaaaagggg每个字母重复了四次,暗示了穿越4层目录(没读懂暗示也没关系,一层一层试就是了),构造url:

……/source.php?file=source.php%253f../../../../../ffffllllaaaagggg

[极客大挑战 2019]Havefun

好水的一道题。。。
在这里插入图片描述
直接传递一个cat=dog参数就出来了。。。
在这里插入图片描述

[GXYCTF2019]Ping Ping Ping

在这里插入图片描述
既然题目都叫ping了,那就ping一下吧
在这里插入图片描述
传递一下ip参数
在这里插入图片描述
正常请求,ls看一下
在这里插入图片描述
发现flag.php,cat一下
在这里插入图片描述
空格被过滤了,用$IFS$1代替空格,还是没用。于是试试index.php
在这里插入图片描述
可以看到都过滤了啥,flag也被过滤了,。
大佬说构建这样的playload, 其中Y2F0IGZsYWcucGhw是cat flag.php的base64 的编码。

echo$IFS$1Y2F0IGZsYWcucGhw|base64$IFS$1-d|sh

在这里插入图片描述
还可以这样构造playload:

?ip=127.0.0.1;cat$IFS$1`ls`

dalao这样解释的:

  1. 方法名叫内联执行
  2. 方法:将反引号内命令的输出作为输入执行

然后F12就出来啦
在这里插入图片描述

[BJDCTF2020]Easy MD5

随便输入,发现有提示,需要绕过MD5进行注入了。。。在这里插入图片描述
百度说:需要输入ffifdyop。至于为什么输入这个,因为这个经过md5编码后返回的原始二进制不是普通的二进制(因为raw为true),而是’or’6\xc9]\x99\xe9!r,\xf9\xedb\x1c 这种。这样的话就会和前面的形成闭合,构成万能密码;
变成这样:

select * from 'admin' where password=''or'6.......'

在这里插入图片描述
考点,记着!
就输入ffifdyop试试看吧
在这里插入图片描述
需要绕过那个弱类型比较,
大佬又说这MD5有两种绕过方法:
(1)找出md5值都是两个0e开头的开头的。原理是php里面在做 == 的时候会先把两边的类型转成一样的,因为是0e开头,php会认为它是科学技计数法,而0的多少次方都是0。
举例:
QNKCDZO
s155964671a
s1091221200a
等等…
(2)数组绕过。原理是md5等函数不能处理数组,导致函数返回Null。而Null是等于Null的,导致了绕过。(题目中就传入 ?a[]=1&b[]=2 )

那我就试试数组绕过。在这里插入图片描述
这回出现了强类型比较,数组绕过依然可行!


这一周就挑战了4道,拉垮拉胯拉胯

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值