后台登陆(实验吧) Write_up

后台登录

格式:flag:{xxx}

解题链接:http://ctf5.shiyanbar.com/web/houtai/ffifdyop.php

打开链接,如下:

在这里插入图片描述

打开源代码:
在这里插入图片描述
1554709114989

其中最重要的一句就是:

sql = "SELECT * FROM admin WHERE username = 'admin' and password = '".md5(password,true)."'";

首先解释一下md5这个函数:

在这里插入图片描述

​ 这里的参数为TRUE,大致意思就是对你输入的密码进行32位md5加密后,再进行十六进制和字符串之间的转化。

实例化:

在这里插入图片描述

这道题的思路应该是构造一个'or'xxx'的密码,只要后面的字符串为真即可。那么可以根据32位16进制的字符串来查找‘or’对应的16进制是276f7227,所以我们的目标就是要找一个字符串取32位16进制的md5值里带有276f7227这个字段的,在276f7227这个字段后面紧跟一个数字(除了0)1-9,对应的asc码值是49-57,转化为16进制就是31-39,也就是含有276f7227+(31-39)这个字段,就可以满足要求。

​ 比如说:276f722736c95d99e921722cf9ed621c正是ffifdyop的md5转义。但是这个ffifdyop又是怎么出来的?

​ 其实就是最开始打开那个php链接的名字。(这种谜底就在谜面上的题真的很烦人有趣)

​ 看了很多评论,好像e58也可以,试了一下,,是真的。

​ e58经过MD5函数后输出为:Ïc±R%’-')è5m© ,估计是xxx'-'xxx的形式,然后让password变为一个可以查询到密码。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值