cftshow web学习记录(二)

萌新计划,这次更新web16-21

web16:

审计代码发现我们只要满足:

if(md5("ctfshow$c")==="a6f57ae38a22448c2f07f3f95f49c84e"){
            echo $flag;

满足这一句的条件就可以:

先来看看mad5函数的作用:

 这个函数使用来计算字符的MD5散列,他可以选择 十六进制或者二进制输出格式

分析if(md5("ctfshow$c")==="a6f57ae38a22448c2f07f3f95f49c84e")这一句我们可以知道我们要令ctfshow$c加密后的散列值是a6f57ae38a22448c2f07f3f95f49c84,所以我们只需要对a6f57ae38a22448c2f07f3f95f49c84这串值进行解密,然后传入适当的变量参数即可

 解密得到ctfshow36d,然后我们就可以构造payload从而得到flag:

/?$c=36d

得到flag:

ctfshow{c6b14d75-0b76-448b-a6ec-c2742ef06fa7}

web17:

 这一题我们要用到一个新的方式--日志文件包含

首先我们抓个包看看:

 发现用的是nginx,我们去找找nginx的默认日志文件目录:

网上搜索一番我找到两个目录地址:

/var/log/nginx/access.log
/var/log/nginx/error.log

访问第一个结果如上图所示

然后我们直接POST上传一个马试试(在该目录下):

上传后发现页面正常,然后我们用蚁剑测试一下

发现返回数据为空,百度了一下, 发现这里的日志记录了user-agent头,所以我们需要抓包然后再user-agent头里面添加一句话木马:

 然后连接:

 连接成功,访问得到flag:

web18:

原理同上,抓包然后再user-agent里面添加一句话木马

使用蚁剑连接,然后查看文件就可以得到flag

 然后接下来的web19-21都可以用这个解法,所以接下来的解法我就不去展示了

虽然有了解法,但是我们还需要思考一下这题是否会有其他的解法呢?每一题多过滤的一个关键字是用来防止什么函数的呢?

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夏~辰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值